EA&UML日拱一卒--序列图(Sequence Diagram)::交互和交互使用
EA&UML日拱一卒--序列图(Sequence Diagram)::交互和交互使用
画时序图就和写作文一样,经常会遇到一发而不可收的情况,结果就是得到一个巨大的时序图。这种情况下,作者首先会因为完成了一件大工程而感到自豪,可是一旦他把完成的时序图拿给别人看或者是需要维护的时候就开始意识到问题了,这样的时序图既难理解又难维护。
如果是写代码的话,可以通过定义函数和调用函数来解决这个问题,时序图也提供了类似的手段:交互和交互使用。
交互(interaction)
交互描述了在一个上下文中为了执行一个任务,消息在角色之间是如何交换的。交互描述了行为的模式。
----UML参考手册(第二版)
中文本身相信都能看懂,但想知道说什么却不是那么容易。让我们换一种说法。
实例
下面以电车速度控制为例说明,首先看下面的时序图。
电车司机设定加速度上下限,目标速度以后,调用startControlPattern启动指定模式的速度控制,当目标达成或出现异常情况时,结束控制并反馈结束的原因。
定义交互
首先拖动工具箱中的【Interaction】图标到时序中。
接下来在【Interation】属性对话框中各个属性页输入必要的信息。
【General】属性页
输入交互名SpeedControl。
【Behavior】属性页
选择返回值的类型为FinishReason(需要事先定义数据类型)。
【Parameters】属性页
定义max_acc,max_dec,speed一共3个参数。它们相当于函数的形参。
按下【确定】按钮并调整interation框的大小后,时序图就会变成下面这个样子。
外层方框的左上角文字为【int SpeedControl(,,)】,其中的int不是表示整数,而是interation的缩写。
交互使用
定义交互以后自然就是使用交互。
步骤
首 先将定义过Interaction的时序图拖动到使用该交互的时序图,这时会出现如下对话框,这里选【Interaction Occurrence】。在UML中,交互发生(interaction occurrence)和交互使用(interaction use)的含义是一样的。
设定方法
通过随后出现的【Interaction Occurrence】对话框中的各个属性页来进行设定。
【General】属性页
指定调用上下文中的实际名称。本例输入ConstantSpeedControl。这个名称相当于函数调用时的别名。
【Call】属性页
点 击【Behavior】项目右侧的【...】按钮,选择前面定义的SpeedControl交互以后,在【ReturnValue】项目中输入 FinishReason,在AttributeName项目中输入finish_reason。这个finish_reason相当于函数调用时用来接 受返回值的变量。
【Arguments】属性页
为Interation的每个参数指定调用上下文中的变量名。输入的内容相当于定义函数调用时的实参。
按下【确定】按钮以后,调用侧的时序图变成下面这样。
图中明确表明的实参,形参的对应关系,返回值赋值操作等信息。实参应该在使用该交互前指定,返回值可以在调用以后使用。这里省略。
总结
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~