UML学习笔记之顺序图

来源:互联网 发布:战地1优化设置 编辑:程序博客网 时间:2024/06/05 04:41

顺序图:

         用来显示参与者如何以一系列顺序的步骤与系统的对象交互的模型。

         顺序图是两种交互图之一(另一种是协作图)。顺序图建模以时间顺序安排的对象交互,并且把用例行为分配给类。用例可以用顺序图进一步阐明和实现。顺序图可以用来演示某个用例最终产生的所有路径。

顺序图的组件:

l  活动对象(object active):活动对象可以是系统的参与者或者任何有效的系统对象。图形用带有“生命线”的矩形表示。

l  消息(message):用来说明顺序图中不同活动对象之间的通信。消息说明了对象之间的控制流,对象是如何交互的,以及什么条件会改变控制流。消息是顺序图活动对象之间通信的惟一方式。

l  创建对象和销毁对象:创建对象用create消息,销毁对象用destroy消息

l  使用状态:状态属于对象,直接在对象的生命线上存在。状态可以在顺序图中的任何消息之前设置和存在,也可以由顺序图中的其他对象设置。在astah中是StateInvariant

l  在顺序图中,有两种方式可以修改控制流:分支和从属流。控制流的改变是由于不同的条件导致控制流走向不同的道路。

l  分支流(Branching):分支允许控制流走向不同的对象,分支前消息开始位置是相同的,分支的消息的结束“高度”也是相等的。说明,在下一步中,分支其中之一会执行。Astah 没有找到这个功能。

l  从属流(Alternative flow):控制流还可以根据条件,转变到同一个对象的不同的生命线上。Astah 没有找到这个功能。

l  控制矩形(Control Rectangle):表示在控制矩形占据的对象的生命线期间对象参与消息序列。当对象的生命线被控制矩形完全占据的时候说明,对象参与到顺序图中建模的这个消息序列。控制矩形还用来指示某个对象具有控制权,当前正在处理某种信息,或者正在等待处理某种信息。活动是对象具有焦点的时期。

l  建模时间:需要指示出一个对象到另一个对象之间的消息不是瞬间完成的,要建模消息需要一段时间才能完成或执行,需要向消息发送目标稍微倾斜来绘制消息。对消息的时间约束使用注释框,其中的时间约束放在花括号中,注释框放在要应用约束的消息旁边,例如,{sendTime<5 seconds}astah中没有这个(也许是免费版没有此功能)。还可以建模持续时间。时间约束是指,单个消息执行的最大范围。持续时间是指,一组消息执行的最大时间范围。

l  建模迭代:通过建模迭代,我们可以设计forwhile循环。将整个参与迭代的消息组用一个方框框起来,在方框右下角标注控制条件以及多重性。例如:“*[while more dirty files exist]”。

l  建模递归:子控制矩形作为初始控制矩形的一部分,消息调用从初始控制矩形到子控制矩形。

l  建模高级消息:给消息加参数和返回值,指定消息序列。

 

如何使用消息进行通信:

u  消息可以包含条件,限制它们只在满足条件时才能发送。在astah中,有两个东西可以设置条件,一个是用constraint来设置,另一个使用guard来设置(感觉guard与教程更像)。消息条件只允许消息在条件为True时发送。使用条件指示在什么时候发送什么消息。

u  使用不同类型的消息:

a)         同步消息(Synchronous):同步消息用于过程化的系统流,其中一个功能块接着一个功能块执行。同步意味着一次一个。

b)         异步消息(Asynchronous):异步消息用于控制流在完成前不需要中断的情况。异步意味着一次多个。

c)         返回(Return

d)         简单消息(Flat):在astah中没有这个

 

顺序图关注于系统中涉及到的对象和参与者,以及它们是如何彼此交互的。活动图主要关注于从一个活动到另一个活动的功能和步骤。

 

如何建模顺序图:

1)         确定需要建模的工作流。(一个用例会有很多工作流)

2)         从左到右布置对象

3)         添加消息和条件以便创建每一个工作流

4)         绘制总图以便连接各个分图。

原创粉丝点击