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 建模迭代:通过建模迭代,我们可以设计for和while循环。将整个参与迭代的消息组用一个方框框起来,在方框右下角标注控制条件以及多重性。例如:“*[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) 绘制总图以便连接各个分图。
- UML学习笔记之顺序图
- UML学习笔记 顺序图
- UML学习之顺序图
- UML学习笔记(五)--顺序图
- UML顺序图笔记
- UML之顺序图
- UML之顺序图
- UML之顺序图
- UML 学习笔记二 顺序图和协作图
- UML笔记5--顺序图
- UML学习笔记之活动图
- UML学习笔记之协作图
- UML学习笔记之序列图
- UML学习笔记之协作图
- UML学习笔记之活动图
- UML建模之顺序图
- UML从零开始之顺序图
- 【UML】-九种图之顺序图
- Valgrind 使用简单说明
- 如何看系统的指标
- OpenCV2.2+VC2005 error LNK2019错误解决办法
- C++ STL 排序 查找 集合操作
- linux内存管理之非连续物理地址分配(vmalloc)
- UML学习笔记之顺序图
- OpenCV2.2+VC2005 fatal error C1083: Cannot open include file:'opencv2/core/core_c.h': No such file or directory
- 我学会的第一句英语
- c语言函数
- 函数名: bar画一个二维条形图
- assert() 函数用法
- 业内的一些个事
- ImageMagick convert命令
- 将任意一个对象中的所有String类型 的成员变量所对应字符串中的“b”改成“a”(利用反射)