千家信息网

EA画UML时序图中如何实现交互和交互使用

发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,这篇文章给大家分享的是有关EA画UML时序图中如何实现交互和交互使用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。交互(interaction)交互描述了在一个上下文中为了
千家信息网最后更新 2024年11月27日EA画UML时序图中如何实现交互和交互使用

这篇文章给大家分享的是有关EA画UML时序图中如何实现交互和交互使用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

交互(interaction)

交互描述了在一个上下文中为了执行一个任务,消息在角色之间是如何交换的。交互描述了行为的模式。

中文本身相信都能看懂,但想知道说什么却不是那么容易。让我们换一种说法。

定义一个函数除了需要函数体以外还需要函数声明。函数声明规定了调用函数是需要提供哪些信息,函数的返回值是什么。交互的作用也一样。

实例

下面以电车速度控制为例说明,首先看下面的时序图。

电车司机设定加速度上下限,目标速度以后,调用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的每个参数指定调用上下文中的变量名。输入的内容相当于定义函数调用时的实参。

按下【确定】按钮以后,调用侧的时序图变成下面这样。

图中明确表明的实参,形参的对应关系,返回值赋值操作等信息。实参应该在使用该交互前指定,返回值可以在调用以后使用。这里省略。

感谢各位的阅读!关于"EA画UML时序图中如何实现交互和交互使用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0