活动图
概述
- 活动图是一种描述系统行为的图,它用于展现参与行为的类所进行的各种活动的顺序关系。
基本组成元素
动作状态
动作状态是指执行原子的、不可中断的动作,并在此动作完成后通过完成转换转向另一个状态的状态。 特点是原子的,瞬时的,不可中断的。在一张活动图中可以多次出现。活动状态
活动状态可以分解成其他子活动或动作状态,由于它是一组不可中断的动作或操作的组合,所以可以被中断。活动状态可以有入口动作和出口动作,也可以有内部转移。它是活动状态的一个特例,如果某个活动状态只包括一个动作,那么它就是一个动作状态。动作流
所有动作状态之间的转换流称之为动作流。分支与合并
分支一般用于表示对象类所具有的条件行为。
一个分支有一个入转换和两个带条件的出转换,出转换的条件应当是互斥的,这样可以保证只有一条出转换能够被触发。
一个合并有两个带条件的入转换和一个出转换,合并表示从对应的分支开始的条件行为的结束。分叉与汇合
分叉用于将动作流分为两个或者多个并发运行的分支,而汇合则用于同步这些并发分支,以达到共同完成一项事务的目的。泳道
泳道将活动图中的活动化分为若干组,并把每一组指定给负责这组活动的业务组织即对象。
泳道区分了负责活动的对象,明确地表示了哪些活动是由哪些对象进行的。
每个活动只能明确地属于一个泳道。对象流
对象流是动作状态或者活动状态与对象之间的依赖关系,表示动作使用对象或者动作对对象的影响。
建模步骤
识别要对其工作流描述的类或对象。
确定工作流的初始状态和终止状态,明确工作流的边界。
对动作状态或活动状态建模。
对动作流建模。
对对象流建模。
对建立的模型进行精化和细化。
举例介绍
状态图
概述
- 状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action)。一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机(State Machine Diagram),重点在与描述状态图的控制流。
- 状态有Opened、Closed、Locked。
- 事件有 Open、Close、Lock和Unlock。
基本组成元素
- 状态(States)
- 转移(Transitions)
- 事件标记(Trigger):是转移的诱因,可以是一个信号,事件、条件变化(a change in some condition)和时间表达式。
- 警界条件(Guard Condition):当警界条件满足时,事件才会引发转移(Transition)。
- 结果(Effect):对象状态转移后的结果。
- 自身转移(Self-Transitions)
状态可以有返回自身状态的转移,称之为自身转移(Self-Transitions)
组合状态
嵌套在另外一个状态中的状态称之为子状态(sub-state),一个含有子状态的状态被称作组合状态(Compound States). 如下图,【Check PIN】是组合状态,【Enter PIN】是子状态。
历史状态
历史状态是一个伪状态(Pseudostate),其目的是记住从组合状态中退出时所处的子状态,当再次进入组合状态,可直接进入这个子状态,而不是再次从组合状态的初态开始。
- 并发状态
状态图可以分为区域,而区域又包括退出或者当前执行的子状态。说明组合状态在某一时刻可以同时达到多个子状态。如下图刹车系统,同时进入前刹车【Applying Front Brakes】状态和后刹车【Applying Rear Brakes】状态。
举例介绍
以学生选课系统为例
1. 确定状态图的状态实体————学生
2. 确定这个状态实体都有哪些状态。
3. 创建相关事件完成状态图。
时序图
概述
时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。时序图中显示的是参与交互的对象及其对象之间消息交互的顺序。时序图中包括的建模元素主要有:对象(Actor)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等等。
基本组成元素
角色(Actor)
系统角色,可以是人、及其甚至其他的系统或者子系统对象(Object)
对象包括三种命名方式:
第一种方式包括对象名和类名;
第二中方式只显示类名不显示对象名,即表示他是一个匿名对象;
第三种方式只显示对象名不显示类名。生命线(Lifeline)
生命线在顺序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间控制焦点(Focus of Control)
控制焦点是顺序图中表示时间段的符号,在这个时间段内对象将执行相应的操作。用小矩形表示,如下图。
消息(Message)
同步消息=调用消息(Synchronous Message)
消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。异步消息(Asynchronous Message)
消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。返回消息(Return Message)
返回消息表示从过程调用返回自关联消息(Self-Message)
表示方法的自身调用以及一个对象内的一个方法调用另外一个方法。
Combined Fragments
Ø Alternative fragment(denoted “alt”) 与 if…then…else对应
Ø Option fragment (denoted “opt”) 与 Switch对应
Ø Parallel fragment (denoted “par”) 表示同时发生
Ø Loop fragment(denoted “loop”) 与 for 或者 Foreach对应
举例介绍
用例图
概述
用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。
基本组成元素
参与者(Actor)
表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。
用例(Use Case)
用例就是外部可见的系统功能,对系统提供的服务进行描述。用椭圆表示。
子系统(Subsystem)
用来展示系统的一部分功能,这部分功能联系紧密。
用例图中关系
用例图中涉及的关系有:关联、泛化、包含、扩展。
如下表所示:
- 关联(Association)
表示参与者与用例之间的通信,任何一方都可发送或接受消息。
【箭头指向】:指向消息接收方
泛化(Inheritance)
就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。
【箭头指向】:指向父用例
包含(Include)
包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤。
【箭头指向】:指向分解出来的功能用例
- 扩展(Extend)
扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。
【箭头指向】:指向基础用例
举例介绍
协作图
概述
协作图(Collaboration Diagram /Communication Diagram,也叫合作图)是一种交互图(interaction diagram),显示某组对象如何为了由一个用例描述的一个系统事件而与另一组对象进行协作的,使用协作图可以显示对象角色之间的组织关系。
基本组成元素
协作图的构成有角色,对象,连接,消息。具体含义同时序图。
协作图表现的是对象在空间上的联系,所以不存在时序图中的生命线和激活器。