《大象 Thinking in UML》学习笔记(七)——UML核心视图之动态视图:活动图、时序图

动态视图
动态视图是描述事物动态行为的,不能独立存在,必须特指一个静态视图或UML元素,说明在静态视图规定的事物结构下它们的动态行为。

活动图
《大象 Thinking in UML》学习笔记(七)——UML核心视图之动态视图:活动图、时序图
活动图描述了为了完成某一个目标需要做的活动以及这些活动的执行顺序。
UML中有两个层面的活动图,一种用于描述用例场景,另一种用于描述对象交互。

活动图实际上描述的是业务流程,是一种过程化的分析方法,因此在使用活动图时候,要随时保持清醒的头脑,活动图只是我们用来描述业务目标的达成过程并借此来发现对象的工具,不是我们的分析目标,也不是编程的依据,它只是对象的应用场景之一。

用例活动图
用例表达了参与者的一个目标,用例场景则描述了如何来达到这个目标,而活动图用来描述用例场景,也就是业务流程。
《大象 Thinking in UML》学习笔记(七)——UML核心视图之动态视图:活动图、时序图

对象活动图
对象活动图用于展示对象的交互。
《大象 Thinking in UML》学习笔记(七)——UML核心视图之动态视图:活动图、时序图

泳道
活动图描述了业务流程中活动的执行顺序,却没有描述出执行业务流程的职责;而在面向对象的分析观点里,业务的执行过程不是重要的,对象职责才是最重要的。所以引入了泳道技术。
泳道代表了一个特定的类、人、部门、层次等对象的职责区。将登机的用例活动图加入泳道以后,可以得到:
《大象 Thinking in UML》学习笔记(七)——UML核心视图之动态视图:活动图、时序图

业务场景建模
在实际情况中,客户的业务通常是以业务流程的形式存在的,所以我们经常以业务主角作为泳道,以从业务主角出获取的业务用例作为活动来编排活动图。这样的好处有:
帮助发现业务用例
帮助检查业务用例粒度
帮助检查业务主角
帮助检查业务用例

用例场景建模
在获取业务用例之后,我们经常以业务主角和业务工人作为泳道、以工作单元作为活动来编排活动图来描述用例场景。这样的好处有:
帮助发现概念用例
帮助发现角色
帮助发现业务实体
帮助建立领域模型


时序图
《大象 Thinking in UML》学习笔记(七)——UML核心视图之动态视图:活动图、时序图
时序图用于描述按时间顺序排列的对象之间的交互模型
时序图中包含对象和主角实例,以及说明它们如何交互的消息,主要用来确定对象的职责和接口。

业务模型时序图
业务模型时序图用于为领域模型中的业务实体交互建模,目标是实现业务用例。
《大象 Thinking in UML》学习笔记(七)——UML核心视图之动态视图:活动图、时序图

概念模型时序图
概念模型时序图是依据业务模型场景采用分析类来重新绘制一遍,目标同样是实现业务用例。
因为分析类本身代表了系统原型,所以这时的时序图已经有了实现的影子。
《大象 Thinking in UML》学习笔记(七)——UML核心视图之动态视图:活动图、时序图

设计模型时序图
设计模型时序图使用设计类作为对象绘制,目标是实现概念模型中的某个事件流,一般以一个完整交互为单位,消息细致到方法级别。
因为设计模型时序图工作量实在太大,不需要为每一个交互都绘制时序图,但一定要有足够的概念模型时序图来支撑需求与实现之间的过渡。