陶赫Qt开发学习 2016-09-15
最常用的UML动态图有:顺序图、活动图、状态机图。
一 顺序图
1 顺序图介绍
顺序图显示具体用例(或者是用例的一部分)的详细流程,并且显示了流程中不同对象之间的调用关系,同时还可以很详细地显示对不同对象的不同调用。顺序图描述了对象之间的交互,重点在于描述消息及其时间顺序。
顺序图有两个维度:垂直维度以发生的时间顺序显示消息/调用的序列;水平维度显示消息被发送到的各对象实例。顺序图的关键在于对象之间的消息,对象之间的的信息传递就是所谓的消息发送,消息通常表现为对象调用另一个对象的方法,或方法的返回值,发送者和接收者之间的箭头表示消息。
顺序图的绘制非常简单,顺序图的顶部每个框表示每个类的实例(对象),在框中,类实例名称和类名称之间用冒号或空格来分隔,例如,bill:Boy。如果某个类实例向另一个类实例发送一条消息,则绘制一条具有指向接收类实例的带箭头的连线,并把消息/方法的名称放在连线上面。
对于某些特别重要的消息,还可以绘制一条带箭头的、指向发起类实例的虚线,将返回值标注在虚线上,绘制带返回值的信息可以使得顺序图更易于阅读。
2 顺序图示例
3 顺序图解释
当绘制顺序图时,消息可以向两个方法扩展,消息穿梭在顺序图中,通常应该把消息发送者和接收者相邻摆放,尽量避免消息跨越多个对象。对象的激活期不是其存在期,而是它占据CPU的执行时间,绘制顺序图时,激活期要精确。
阅读顺序也很简单,通常从最上面的消息开始(也就是时间最先开始的消息),然后沿消息方向依次阅读。绘制顺序图主要是帮助开发者对某个用例内部执行清晰化,当需要考察某个用例内部若干对象行为时,应使用顺序图,顺序图擅长表现对象之间的协作顺序,不擅长表现行为的精确定义。
二 活动图
1 活动图介绍
活动图主要用于描述过程原理、业务逻辑以及工作流的技术,很多情况下,活动图与传统的流程图非常相似,区别是活动图支持并发。活动图非常类似于传统的流程图,它也使用圆角矩形表示活动,使用带箭头的实线表示事件。
绘制活动图时以活动为中心,整个活动图只有一个开始活动,可以有多个结束活动,活动图需要将并行活动和串行活动的分离,遇到分支和循环时最好像传统流程图将分支、循环条件明确表示。活动图最大优点在于支持并行行为,并行对于工作流建模和过程建模非常重要。因为有了并行,因此需要进行同步,同步通过汇合来指明。
2 活动图示例
3 活动图解释
如果将这个活动图的两支分开,每支就是一个传统的流程图,每个活动依次向下,遇到分支就使用菱形框来表示条件。与传统图不同的是,活动图可以使用并行分支分出多条并行活动。
三 状态机图
1 状态机图介绍
状态机图表示某个类所处的不同状态和该类的状态转换信息。实际上我们很少绘制状态机图,我们只对“感兴趣的” 类绘制状态机图。也就是说,在系统活动期间具有三个或更多潜在状态的类才需要考虑使用状态机图进行描述。
状态机图的符号集包括5个基本元素:
绘制状态机图时应该保证对象只有一个初始状态,可以有多个终结状态。状态要表示对象的关键快照,有重要的实际意义,无关紧要的状态则无需考虑,绘制状态机图时事件和方法要明确。
2 状态机图示例
3 状态机图解释
上图绘制了病床状态的状态机图。