状态图和活动图
时序图、活动图、状态图、协作图的区别

时序图、活动图、状态图、协作图的区别时序图时序图用于描述对象之间的传递消息的时间顺序, 即用例中的行为顺序.当执行一个用例时, 时序图中的每条消息对应了一个类操作或者引起转换的触发事件.在 UML 中, 时序图表示为一个二维的关系图, 其中, 纵轴是时间轴, 时间延竖线向下延伸. 横轴代表在协作中各个独立的对象. 当对象存在时, 生命线用一条虚线表示, 消息用从一个对象的生命线到另一个对象的生命线的箭头表示. 箭头以时间的顺序在图中上下排列.ATM 用户成功登陆的时序图时序图中的基本概念对象: 时序图中对象使用矩形表示, 并且对象名称下有下划线. 将对象置于时序图的顶部说明在交互开始时对象就已经存在了. 如果对象的位置不在顶部, 表示对象是在交互的过程中被创建的.生命线: 生命线是一条垂直的虚线. 表示时序图中的对象在一段生命周期内存在. 每个对象底部中心的位置都带有生命线.消息: 两个对象之间的单路通信. 从发送方指向接收方. 在时序图中很少使用返回消息.激活: 时序图可以描述对象的激活和钝化. 激活表示该对象被占用以完成某个任务. 钝化指对象处于空闲状态, 等待消息. 在 UML 中, 对象激活时将对象的生命线拓宽为矩形来表示的. 矩形称为计划条或控制期. 对象就是在激活条的顶部被激活的. 对象在完成自己的工作后被钝化.对象的创建和销毁: 在时序图中, 对象的默认位置是在图的顶部. 这说明对象在交互开始之前就已经存在了. 如果对象是在交互过程中创建的, 那么就应该将对象放到中间部分. 如果要撤销一个对象, 在其生命线终止点处放置 “ X” 符号.练习:孙中山的……活动图在 UML 中, 活动图本质上就是流程图. 它用于描述系统的活动, 判定点和分支等.活动图中的基本概念动作状态: 原子的, 不可中断的动作, 并在此动作完成之后向另一个动作转变. 在 UML 中动作状态用圆角矩形 表示, 动作状态所表示的动作写在圆角矩形内部.分支与合并: 分支在软件系统中很常见. 一般用于表示对象类所具有的条件行为. 用一个布尔型表达式的真假来判定动作的流向. 条件行为用分支和合并表达.在活动图中, 分支用空心小菱形 表示. 分支包括一个入转换和两个带条件的出转换, 出转换的条件应该是互斥的, 须保证只有一条出转换能够被触发. 合并包含两个带条件的入转换和一个出转换.状态图状态图: 通过建立对象的生存周期模型来描述对象随时间变化的动态行为.状态图中的基本概念状态: 用圆角矩形表示. 状态名称表示状态的名字, 通常用字符串表示. 一个状态的名称在状态图所在的上下文中应该是唯一的.转换: 用带箭头的直线表示. 一端连着源状态, 一端连着目标状态.初始状态: 每个状态图都有一个初始状态. 此状态代表状态图的起始位置. 初始状态只能作为转换的源, 不能作为转换的目标, 并且在状态图中只能有一个. 初始状态用一个实心圆表示.终止状态: 模型元素的最后状态, 是一个状态图的终止点. 终止状态在一个状态图中可以有多个.协作图协作图(也叫合作图)是一种交互图.时序图主要侧重于对象间消息传递在时间上的先后关系, 而协作图表达对象间的交互过程及对象间的关联关系。
UML中的活动图和状态图的区别与实际应用案例解析

UML中的活动图和状态图的区别与实际应用案例解析UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它提供了一套丰富的图形符号和规范,帮助开发人员更好地理解和设计软件系统。
在UML中,活动图和状态图是两种常用的图形表示方式,用于描述系统中的活动流程和对象状态。
本文将探讨这两种图形的区别,并通过实际应用案例来解析它们的具体应用。
活动图是一种用于描述系统中活动流程的图形表示方式。
它主要由活动(Action)、控制流(Control Flow)和决策节点(Decision Node)等元素组成。
活动图可以清晰地展示系统中的各种活动以及它们之间的关系和顺序。
活动图通常用于描述业务流程、系统交互和软件系统中的算法等。
例如,在一个在线购物系统中,我们可以使用活动图来描述用户选择商品、添加到购物车、填写订单信息、确认支付等流程。
通过活动图,我们可以更好地理解和设计系统中的各个步骤,从而提高系统的可靠性和可维护性。
与活动图相比,状态图主要用于描述系统中对象的状态和状态之间的转换。
状态图由状态(State)、转移(Transition)和事件(Event)等元素组成。
状态图可以清晰地展示对象在不同状态之间的转换和触发条件。
状态图通常用于描述系统中的状态机、对象的生命周期和系统中的并发操作等。
例如,在一个自动售货机系统中,我们可以使用状态图来描述售货机的工作状态,如待机状态、售货状态和故障状态等。
通过状态图,我们可以更好地理解和设计系统中对象的状态变化,从而提高系统的可靠性和性能。
活动图和状态图在应用上有一些区别。
活动图主要用于描述系统中的活动流程,强调活动之间的顺序和关系。
它更适合于描述系统中的业务流程和交互流程等。
而状态图主要用于描述系统中对象的状态和状态之间的转换,强调对象状态的变化和触发条件。
它更适合于描述系统中的状态机和对象的行为。
下面通过一个实际应用案例来进一步解析活动图和状态图的具体应用。
6.状态机图(状态+活动)

课堂练习(电梯系统的状态图)
带有复杂转换的状态图
补充说明(状态图)
适用情况:
适用于描述跨越多个用例的单个对象行为 不适合描述多个对象之间的行为协作 故需与其他技术(类图、对象图)结合使用
注意事项:
不要花费大量时间和精力为系统中的每个类都 画对应的状态图 开发人员只关心关键类的行为,只需为这些类 建立状态图,帮助理解所研究的问题
方法二:
先对活动进行全局的分析 再将活动分配各具体的对象
建议:
两种方法各有利弊 根据个人习惯和具体情况而定
分类(1.简单活动图)
分类(1.简单活动图)
分类(2.标识泳道的活动图)
泳道(SwimLane):用于有效 地标识每个活动的实施者。 表示方法:
用一条垂直的线将活动分开 每个泳道都有一个唯一的名称 每个活动节点、分支必须只属 于一个泳道;而转换,分叉与 汇合是可以跨泳道的。
状态机图(State machine Diagram)
状态(state):
定义对象在其生命周期中的一种条件或状况 比如:满足某些条件、执行某些活动或等待某些事件 例子:灯的开闭、人的梦醒、学生的课上与课下
理解
状态的存在:对象在任何时刻都会处于某种状态之中 状态的转移:事件使对象从一个状态转向另一个状态 当面对所检测到的事件或所接收到的消息时,对象所 处的状态不同,做出的反应也不同
细化状态内的活动与转换
状态图(航班预订3)
使用复合状态
课堂练习
绘制电脑工作时的状态转换图
课堂练习
绘制手机工作时的状态转换图
课堂练习(电梯系统的状态图)
电梯开始处于空闲状态(idle),当有人按下按钮要求使用电梯时 (事件is required发生),电梯进入运行状态(run)。如果电梯的 当前楼层比想要的楼层高时(监护条件[currentFloor>desiredFloor] 成立),电梯进入下降状态(moving down);反之,如果电梯的当 前楼层比想要的楼层低时(监护条件[currentFloor<desiredFloor] 成立),电梯进入上升状态(moving up);如果电梯的当前楼层与 想要的楼层相同时(监护条件[currentFloor=desiredFloor]成立), 电梯门打开(door open)。在电梯上升或下降期间,每经过一个楼 层就判断监护条件[currentFloor=desiredFloor]是否成立,若不成 立,继续移动,若成立,就进入停止状态(stop),15秒后,电梯门 自动打开(door open),2分钟后,电梯门自动关上(door close), 如果有更多的电梯使用要求,进入运行状态(run),反之,则进入 空闲状态(idle)。
UML状态图和活动图

状态图的建模方法(续)
因此,Grade对象的状态图具有如下描述保存功 能的开始状态和结束状态:
Information Entered 开始状态。 Destroy 结束状态。
状态图的建模方法(续)
3.确定与每一个实体相关的事件
事件用来最终完成实体的功能。要想确定实体的事件,需要 知道事件的任务。对于Grade对象,它的任务是保存分数。进一 步了解事件的任务之后,就可以确定Grade对象的事件包括接受 数据、成功地保存数据和不成功地保存数据。
活动图的符号
如果一个处理在其他处理之前到达了联结,它将会等待, 直到所有的处理都准备好之后才会向联结传递控制权。
活动图的符号
左例演示了分叉中的一 个处理时间长于另一个的 情况。当然,这完全是由 每一个处理中的活动数假 定的。由于我们不知道每 一个活动有多长,因此不 能保证哪一个首先完成。 为此,我们在让用户访问 应用程序之前插入了一个 联结,以便确保两个独立 的处理彼此连接在一起。
在确定活动名称时应该恰当地命名,选择准确描述所发生 动作的几个词。例如,Save File或者 Create New Document 就是比较恰当的活动名称,而Run或者Update 对读者而言是不 完整的名称。
活动图的符号
2. 操作
可以用操作在活动中增加更多详细的步骤。操作是活动中执 行的小步骤。在下列情况下发生: • 进入活动时发生的操作,标有entry字样。 • 活动进行时发生的操作,直到离开活动,标有do字样。 • 离开活动时发生的操作,标有exit字样。 • 特定事件发生时的操作,标有event字样和事件名。
状态图的动作和事件
条件用来描述状态转移的前提。事件用来指示什么触发了转 移,动作用来说明当转移发生时会产生什么情况。事件、条件 和动作是转移的三个选项,其定义格式见下图所示。
第6章 状态机图

14
例1:子状态之间“or”关系的例子。
例2:子状态之间“and”关系的例子。
15
History State(历史状态)
History State: A pseudostate whose activation restores the previously active state within a composite state. 使用历史状态,可以记住从组合状态中退出时 所处的子状态,当再次进入组合状态时,可直 接进入到这个子状态,而不是再次从组合状态 的初态开始。
7
状态(State)
定义:A state is a condition or situation during the life of an object during which it satisfies some condition, performs some activity, or waits for some event. 一个状态是指在对象的生命期中的一个条件或 状况,在此期间对象将满足某些条件、执行某 些活动或等待某些事件。
22
说明: 在UML中,事件分为四类: (1) Call event (调用事件) (2) Change event (变化事件) (3) Time event (时间事件) (4) Signal event (信号事件)
23
(1) Call event: The event of receiving a call for an operation that is implemented by actions on state machine transitions. Call event的语法格式如下: 事件名 ( [逗号分隔的参数列表] ) 其中参数列表中的参数格式为: 参数名:类型 例:
解析uml活动图和状态图的作用和区别

本文和大家重点讨论一下UML活动图和状态图的概念,这两种图都有各自的特点和作用,那么他们之间有什么区别和联系呢,请看本文详细介绍。
UML活动图和状态图一、UML活动图:◆流程图常被用来建立算法模型◆UML活动图与流程图类似,不同在于它支持并行活动.◆缺点:不能清楚的表示二、作用:1、描述一个操作的执行过程中所完成的工作或者动作2、描述对象内部的工作3、描述用例的执行4、处理多线程5、显示如何执行一组相关的动作,以及这些动作如何影响周围对象三、以下情况不用UML活动图1、显示对象之间的合作2、显示对象在其生命周期内的运转情况。
这两点是通过序列图和协作图完成的。
四、UML活动图的基本要素:◆活动状态◆活动状态之间的转移(箭头)◆判断(决策点)◆保证条件◆同步条:活动之间的同步◆起点和终点--起点有且只有一个,终点可以有n个。
五、泳道:用于对UML活动图中的活动进行分组,用于描述对象之间的合作关系。
----所谓泳道技术,就是将活动用线分成一些纵向区域,这些纵向区域称为泳道。
UML状态图一、状态图:◆描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转换。
例如呼叫中心系统。
◆状态图符--状态:矩形(四角圆弧)--转移--起点--终点1、状态机:◆一种行为:描述了一个对象或一个交互在生命周期内响应事件所经历的状态序列。
◆单个类或者一组类之间协作的行为可以用状态机来描述◆一个状态机涉及到一些其他元素,包括状态、转换、事件2、状态:在对象的生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件活状况。
1)名称2)进入协作和退出动作3)内部转换4)子状态5)延迟事件3、转换:两个状态之间的一种关系,表示对象将在第一个状态中执行一定的动作并在某个特定事件发生而某个特定条件满足时进入第二个状态。
1)源状态2)事件触发3)监护条件4)动作5)目标状态例子:电话机状态图二、UML活动图与状态图的区别:状态:行为的结果活动:行为的动作在uml中图符不一样。
第五课时:状态图、活动图和协助图

活动图(activity diagram)
活动图(activity diagram) 泳道
• 泳道将活动图中的活动化分为若干组,并把每一组指 定给负责这组活动的业务组织即对象。 • 泳道区分了负责活动的对象,明确地表示了哪些活动 是由哪些对象进行的。 • 每个活动只能明确地属于一个泳道。 • 泳道用垂直实线绘出,垂直线分隔的区域就是泳道。 在泳道上方可以给出泳道的名字或对象(对象类)的 名字,该对象(对象类)负责泳道内的全部活动。 • 泳道没有顺序,不同泳道中的活动既可以顺序进行也 可以并发进行,动作流和对象流允许穿越分隔线。
状态图(state diagram) 入口动作和出口动作
• 入口动作和出口动作表示进入或退出这个状态所要执行的 动作。 • 入口动作用“entry/要执行的动作”表达,而出口动作用 “exit/要执行的动作”表达。
状态图(state diagram) 简单状态
• 简单状态是指不包含其他状态的状态。 • 简单状态没有子结构,但它可以具有内部转换、入口动作 和出口动作等。
线表示,箭头的方向指向转入的方向。
活动图(activity diagram)
分支与合并
• • • • 分支一般用于表示对象类所具有的条件行为。 条件行为用分支和合并表达。 在活动图中分支与合并用空心小菱形表示。 一个分支有一个入转换和两个带条件的出转换,出转换的 条件应当是互斥的,这样可以保证只有一条出转换能够被 触发。 • 一个合并有两个带条件的入转换和一个出转换,合并表示 从对应的分支开始的条件行为的结束。
第8章状态图和活动图课件

▪ 终止状态在一个状态图中可以有多个。
初态和终态
▪ 一个状态图只能有一个初态,但可以有多 个终态或没有终态
组合状态
Idle 维护
插卡 取消
Maintenance
Active
Validating [继续]
Selecting
entry/ 读卡 exit/弹出卡
➢ 有些对象出现在很多顺序图中,在每个顺序图中都有 很多的箭头(消息)指向它,每条消息都是对该对象 发出的命令,这些命令可以引起对象的变化,即出现 在很多交互中并且是交互的目标的对象应该用状态图 来表示
➢ 例如,剧院的showSheat对象,用于显示剧院的座位 列表,该对象被创建的时机各种各样,如演出被安排 的时候、被客户选中的时候、用户取消座位时等。每 个时机创建该对象的规则都不同。
动作
contact
Tracking
Engaging
8.2.4 转换
警戒条件
➢ 警戒条件是触发转换必须满足的条件,它是一 个布尔表达式。
➢ 从一个状态引出的多个转换可以有同样的触发 器事件,但每个转换必须有不同的警戒条件。
转换组成: ① 源状态 ② 目标状态 ③ 触发事件 ④ 警戒条件 ⑤ 动作 转换种类: ① 外部转换 ② 内部转换 ③ 完成转换 ④ 复合转换
8.5 活动图的基本概念
活动图的组成元素:
① 活动(Activity) ② 动作流(Action Flow) ③ 分支(Branch)与合并(Merge) ④ 分叉(Fork)和汇合(Join) ⑤ 泳道(Swimlane) ⑥ 对象流(Object Flow)
8.1 什么是状态图
状态图主要用于描述一个对象在其生存期 间的动态行为,表现一个对象所经历的状 态序列,引起状态转移的事件,以及因状 态转移而伴随的动作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业3 状态图和活动图相关练习
练习一:
问题描述:为简易微波炉(只有一个按钮)建模状态图
此系统状态图如下:
练习二:
问题描述:建立手机的状态图(空闲、拨号、响铃、通话中)
此系统状态图如下:
练习三:
问题描述:一个销售系统,对其中的实体sale类创建一个状态图,用来描述如何接受订单、处理订单、记入货存清单并且成功完成处理。
这里给出以下主要状态:
(ReceivedEmptyOrder、ValidOrder、Processing、Processed、Cancelled)
此系统状态图如下:
练习四:
问题描述:针对简易电梯,建立状态图 此系统状态图如下:
练习五:
问题描述:根据下图的图书馆管理系统还书用例建模该用例的活动图。
此系统活动图如下:
练习六:
问题描述:建立顾客在银行“开户”的活动图
此系统活动图如下:
练习七:
问题描述:建立仓库管理员“进货”的活动图(运用对象流技术) 此系统活动图如下:
练习八:
问题描述:画出顾客进入商店买东西的活动图 此系统活动图如下:。