软件体系结构-UML行为建模
软件体系结构-UML行为建模
用例图
用例图列出系统中的用例和系统外的参与者,并示哪个参与者参与了哪个用例的执行,用于静态建模阶段
识别用例形式检查:执行者使用系统用例
步骤:
- 识别执行者:用于帮助确定系统边界
- 识别用例:注意粒度,不能过大过小
- 绘制用例图
- 书写用例文档
- 检查用例模型
用例图中的关系:
-
执行者和用例之间是关联关系
-
执行者之间有泛化关系
-
用例之间有包含关系
用例A和用例B都有C这个行为
-
用例之间有扩展关系
B在A的基础上扩展了东西
-
用例之间有泛化关系(尽量少用)
扩展与包含:
- 如果用例B是用例A的某些子功能,且知道A何时调用B,则称A包含B
- 如果用例A与用例B相似,但用例B的功能比用例A多,则称用例B扩展了用例A
书写用例文档:
- 前置、后置条件必须是系统能检测到
- 前置条件必须是用例开始前能检测到的
用例追踪矩阵:
顺序图
UML顺序图一般用于确认和丰富一个使用情境的逻辑。
顺序图将交互关系表现为一个二维图,纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色,类元角色的活动用生命线表示。
顺序图的元素:
-
消息:调用消息,返回消息(虚线),自身消息
-
消息:创建消息,销毁消息
-
消息:同步消息,异步消息(注意箭头)
-
交互片段
通信图
通信图是由协作图发展而来的。与顺序图不同,通信图主要关注,参与交互的对象通过连接组成的结构。
交互概览图
交互概览图通过类似于活动图方式,描述交互之间的流程,给出交互控制流的概览。
时序图
时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。
时序图中,每个消息都有与其有关联的信息,准确描述了何时发送消息,消息的接收对象会花多长时间收到该消息,以及消息的接收对象需要多少时间处于某个特定状态。(看起来比顺序图高级一点,但网上很多资料说顺序图也称时序图)
顺序图中显示的,是参与交互的对象及其对象之间消息交互的顺序。时序图中包括的建模元素,有对象(Actor)、生命线(Lifeline)、控制焦点(Focusof control)、消息(Message)等等。
状态图
状态图(State Diagram)用来描述一个特定对象的所有可能状态及其引起状态转移的事件。通常用状态图来描述单个对象的行为,它确定了由事件序列引出的状态序列,但并不是所有的类都需要使用状态图来描述它的行为,只有那些具有重要交互行为的类,才会使用状态图来描述。一个状态图包括一系列对象的状态及状态之间的转换。
状态图组成元素:
-
初始状态:用实心圆圈表示
-
可以有多个终止状态,用实心圆圈外套一个圆圈表示
-
可以有多个状态框:每个状态框中有两格:上格放置状态名称,下格说明处于该状态时,系统或对象要进行的活动。
-
状态之间的连线:转移,上面标有过渡事件:事件名[条件] / (下一个状态的)动作名
-
复合状态(复合状态机)
-
带有同步条的状态图:
活动图
活动图(Activity Diagram)用来表示系统中各种活动的次序,它的应用非常广泛,既可用来描述用例的工作流程,也可以用来描述类中某个方法的操作行为。
活动图是一种描述工作流的方式,它用来描述采取何种动作、做什么(对象状态改变)、何时发生(动作序列)以及在何处发生**(泳道)**
活动图组成元素:
-
起始活动
实心圆饼来表示
-
终止活动
用实心圆点外加一个小圆圈(或叉 X )来表示
-
活动
活动用一个圆角矩形表示,其内部的文本串用来说明采取的动作
-
转移/流
箭头表示
-
决策
用菱形符号来表示判定
-
守护条件
箭头上(转移)可能会有守护条件
-
同步条件
横线表示
-
泳道
用于划分活动图






