状态图与活动图
状态图和活动图-文档资料
历史状态
CD Player,running状态被打断到power on状态,再转 回到running状态时,希望直接进入历史状态
转移
Transition
转移是两个状态间的一种关系,表示对象将在当前状态中 执行动作,并在某个特定事件发生或某个特定的条件满足 时进入后继状态。
什么是状态(state)
状态是在对象的生命期中的某个条件或状况, 在此期间对象 将满足某些条件、执行某些活动或等待某些事件.
理解
对象在任何时候都会处于某种状态中,所有对象都有状态
对象所处的状态决定了它如何响应所检测到的事件或所接收 的消息。
通常,事件使对象从一个状态转向另一个状态(即状态的转 换)
(1)入口动作 入口动作表示对象进入某个状态所要执行的动作。 入口动作用“entry/要执行的动作”表示。
(2) 出口动作 出口动作表示对象退出某个状态所要执行的动作。 出口动作用“exit/要执行的动作”表示。
活动
当对象处于一个状态时,它一般是空闲的,在等待一个事件 的发生。但是某些时间,对象正在执行一序列动作,即,对 象做着某些工作,并一直继续到被某个外部事件的到来,才 中断这些工作,我们把对象处于某个状态时进行的一序列动 作称为活动。
每个转移只允许有一个事件触发,一个事件只允许有一个 动作
转移的五要素(注意格式)
如果对象处于某个状态进行一些动作,可能会需要一些时间, 我们可以用活动来描述这一序列动作。表示活动的方法是, 在状态的转换分栏中添加一行“活动描述”,其格式为“do/ 动作名”。
活动用来描述对象处于某个状态时,对象进行的一序列动作。
时序图、活动图、状态图、协作图的区别
时序图、活动图、状态图、协作图的区别时序图时序图用于描述对象之间的传递消息的时间顺序, 即用例中的行为顺序.当执行一个用例时, 时序图中的每条消息对应了一个类操作或者引起转换的触发事件.在 UML 中, 时序图表示为一个二维的关系图, 其中, 纵轴是时间轴, 时间延竖线向下延伸. 横轴代表在协作中各个独立的对象. 当对象存在时, 生命线用一条虚线表示, 消息用从一个对象的生命线到另一个对象的生命线的箭头表示. 箭头以时间的顺序在图中上下排列.ATM 用户成功登陆的时序图时序图中的基本概念对象: 时序图中对象使用矩形表示, 并且对象名称下有下划线. 将对象置于时序图的顶部说明在交互开始时对象就已经存在了. 如果对象的位置不在顶部, 表示对象是在交互的过程中被创建的.生命线: 生命线是一条垂直的虚线. 表示时序图中的对象在一段生命周期内存在. 每个对象底部中心的位置都带有生命线.消息: 两个对象之间的单路通信. 从发送方指向接收方. 在时序图中很少使用返回消息.激活: 时序图可以描述对象的激活和钝化. 激活表示该对象被占用以完成某个任务. 钝化指对象处于空闲状态, 等待消息. 在 UML 中, 对象激活时将对象的生命线拓宽为矩形来表示的. 矩形称为计划条或控制期. 对象就是在激活条的顶部被激活的. 对象在完成自己的工作后被钝化.对象的创建和销毁: 在时序图中, 对象的默认位置是在图的顶部. 这说明对象在交互开始之前就已经存在了. 如果对象是在交互过程中创建的, 那么就应该将对象放到中间部分. 如果要撤销一个对象, 在其生命线终止点处放置 “ X” 符号.练习:孙中山的……活动图在 UML 中, 活动图本质上就是流程图. 它用于描述系统的活动, 判定点和分支等.活动图中的基本概念动作状态: 原子的, 不可中断的动作, 并在此动作完成之后向另一个动作转变. 在 UML 中动作状态用圆角矩形 表示, 动作状态所表示的动作写在圆角矩形内部.分支与合并: 分支在软件系统中很常见. 一般用于表示对象类所具有的条件行为. 用一个布尔型表达式的真假来判定动作的流向. 条件行为用分支和合并表达.在活动图中, 分支用空心小菱形 表示. 分支包括一个入转换和两个带条件的出转换, 出转换的条件应该是互斥的, 须保证只有一条出转换能够被触发. 合并包含两个带条件的入转换和一个出转换.状态图状态图: 通过建立对象的生存周期模型来描述对象随时间变化的动态行为.状态图中的基本概念状态: 用圆角矩形表示. 状态名称表示状态的名字, 通常用字符串表示. 一个状态的名称在状态图所在的上下文中应该是唯一的.转换: 用带箭头的直线表示. 一端连着源状态, 一端连着目标状态.初始状态: 每个状态图都有一个初始状态. 此状态代表状态图的起始位置. 初始状态只能作为转换的源, 不能作为转换的目标, 并且在状态图中只能有一个. 初始状态用一个实心圆表示.终止状态: 模型元素的最后状态, 是一个状态图的终止点. 终止状态在一个状态图中可以有多个.协作图协作图(也叫合作图)是一种交互图.时序图主要侧重于对象间消息传递在时间上的先后关系, 而协作图表达对象间的交互过程及对象间的关联关系。
UML中的活动图和状态图的区别与实际应用案例解析
UML中的活动图和状态图的区别与实际应用案例解析UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它提供了一套丰富的图形符号和规范,帮助开发人员更好地理解和设计软件系统。
在UML中,活动图和状态图是两种常用的图形表示方式,用于描述系统中的活动流程和对象状态。
本文将探讨这两种图形的区别,并通过实际应用案例来解析它们的具体应用。
活动图是一种用于描述系统中活动流程的图形表示方式。
它主要由活动(Action)、控制流(Control Flow)和决策节点(Decision Node)等元素组成。
活动图可以清晰地展示系统中的各种活动以及它们之间的关系和顺序。
活动图通常用于描述业务流程、系统交互和软件系统中的算法等。
例如,在一个在线购物系统中,我们可以使用活动图来描述用户选择商品、添加到购物车、填写订单信息、确认支付等流程。
通过活动图,我们可以更好地理解和设计系统中的各个步骤,从而提高系统的可靠性和可维护性。
与活动图相比,状态图主要用于描述系统中对象的状态和状态之间的转换。
状态图由状态(State)、转移(Transition)和事件(Event)等元素组成。
状态图可以清晰地展示对象在不同状态之间的转换和触发条件。
状态图通常用于描述系统中的状态机、对象的生命周期和系统中的并发操作等。
例如,在一个自动售货机系统中,我们可以使用状态图来描述售货机的工作状态,如待机状态、售货状态和故障状态等。
通过状态图,我们可以更好地理解和设计系统中对象的状态变化,从而提高系统的可靠性和性能。
活动图和状态图在应用上有一些区别。
活动图主要用于描述系统中的活动流程,强调活动之间的顺序和关系。
它更适合于描述系统中的业务流程和交互流程等。
而状态图主要用于描述系统中对象的状态和状态之间的转换,强调对象状态的变化和触发条件。
它更适合于描述系统中的状态机和对象的行为。
下面通过一个实际应用案例来进一步解析活动图和状态图的具体应用。
第6章状态图和活动图
2. 事件的描述 事件名称(参数表 事件名称 参数表) 参数表
字符串, 字符串,常为接收对象类中 的一个操作. 的一个操作. 事件的形式参数 ,可以省略
3. 事件的类型 ① 调用事件:是表示对操作的调度.请求调用另一个 调用事件:是表示对操作的调度. 对象的操作,一般是同步调用. 对象的操作,一般是同步调用.
第 章 状态图和活动图
6
6.1 状态图 6.2 活动图 6.3 两种图的比较
1
第 章 状态图和活动图
6
6.1 状态图
6.1.1 什么是状态图 6.1.2 状态图的要素 6.1.3 状态图的作用 6.1.4 绘制状态图
2
6.1.1 什么是状态图
1. 状态图的概念 状态图(statechart diagram): 用来描述 状态图 一个特定的对象所有可能的状态,以及由 一个特定的对象所有可能的状态 以及由 于各种事件的发生而引起的状态之间的转 移和变化. 移和变化.
21
状态的类型
状态的类型 初始状态/结束状态 ① 初始状态 结束状态
初始状态
显示状态图中状态机中的执行的开始. 显示状态图中状态机中的执行的开始. 一个状态机只能有一个初态,因为每一个执行都是从相同的地方开 一个状态机只能有一个初态, 始的.如果一个状态机用多张图描述,则多张图用一个初态; 始的.如果一个状态机用多张图描述,则多张图用一个初态;
事件
20
3. 事件的类型 信号事件:所谓信号,是指由一个对象异步的发送, ④ 信号事件:所谓信号,是指由一个对象异步的发送, 并由另外一个对象接收的一个已命名的对象. 并由另外一个对象接收的一个已命名的对象. 信号事件表示对象接收到某个信号. 信号事件表示对象接收到某个信号. 信号可以作为状态中一个状态转换的动作而被发送, 信号可以作为状态中一个状态转换的动作而被发送, 也可作为交互中一个的消息发送. 也可作为交互中一个的消息发送.
面向对象分析与设计课件第7章 状态图与活动图建模
7.1 状态图的构成元素
统一建模语言中,状态图主要由状态和迁移两大类模型元素组成。对于图中 的每个状态,还定义了状态图主体对象在该状态下需要完成的各个动作及其触发 原因或机制。对于每个迁移,状态图还定义了迁移的触发事件、迁移条件以及迁 移时所要完成的动作。
状态图还对状态进行了多种分类,同时也为这些分类提供了必要的支持。如 把状态按照时间顺序分为初态、终态和中间态。按照状态的层次结构划分为简单 状态、复合状态和子状态。对于子状态,还可以根据它们是否参与了并发活动而 划分为串行子状态和并发子状态。另外,为简单地表达某种复杂语义,状态图中 还定义了历史子状态等这样的特殊模型元素。为了表示不同状态与其行为之间的 关系,UML还为每个状态和迁移定义了若干种相关的动作。
状态名可以是任何一个满足UML命名规则的字符串,其内容 可以由用户指定。
每个动作中,则包含了触发动作的事件、事件参数、守卫 条件以及伴发的动作序列。
7.1.1 状态
所有这些动作可分成入口动作(on Entry)、出口动作(On Exit)、 事件动作(On Event)和动作(Do)等四种类型。
其中,入口动作(on Entry)和出口动作(On Exit)分别指对象在 进入和离开当前状态时需要完成的动作。
7.1.2 转换与事件
例如,在Java语言中,事件处理机制的主要内容如下: 1)事件:一种用于封装事件属性(事件相关信息)的对象,其内容还应 包括为事件响应者提供的服务。 2)事件源:即产生事件的对象。当事件发生时,它负责创建事件信号并 调用事件激活程序,向事件订阅者们发出事件信号(事件对象)。 3)事件响应者:需要对事件做出相应的对象。一个事件可以有多个事件 响应者。
对于任何对象来说,对象的状态取决于它的各种行为不断积累所 产生的结果。在任何给定的时间点,对象的当前状态就包括它所具有 的所有特性、所处的具体情形、满足的条件以及其属性的当前值。
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字样和事件名。
状态图的动作和事件
条件用来描述状态转移的前提。事件用来指示什么触发了转 移,动作用来说明当转移发生时会产生什么情况。事件、条件 和动作是转移的三个选项,其定义格式见下图所示。
解析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中图符不一样。
第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 什么是状态图
状态图主要用于描述一个对象在其生存期 间的动态行为,表现一个对象所经历的状 态序列,引起状态转移的事件,以及因状 态转移而伴随的动作。
uml建模-状态图和活动图
l 使用状态图的最常见的是对反应型对象、尤其是对类、 用例或整个系统的实例的行为建模。反应型对象是指 这个对象可能处于的稳定状态、从一个状态到另一个 状态之间的转换所需的触发事件,以及每个状态改变 时发生的动作。反应型对象具有如下的特点:
活动图的符号集与状态图中使用的符号集类似。像状态图 一样,活动图也从一个连接到初始活动的实心圆开始。 活动是通过一个圆角矩形(活动的名称包含在其内)来 表示的。活动可以通过转换线段连接到其他活动,或者 连接到判断点,这些判断点连接到由判断点的条件所保 护的不同活动。结束过程的活动连接到一个终止点(就 像在状态图中一样)。活动图中的基本要素包括状态、 转移、分支、分叉和汇合、泳道、对象流等。
l ⑹把动作附加到这些转换上,并且附加到这些状态上; l ⑺考虑通过使用子状态、分支、汇合和历史状态,来简化状态图; l ⑻核实所有的状态都是在事件的某种组合下可达的; l ⑼核实不存在死角状态,即不存在那种不能转换出来的状态; l ⑽通过手工或通过使用工具跟踪状态机,核对所期望的事件序列以及它
们的响应。
::new book 借书
::availห้องสมุดไป่ตู้ble 还书
::delete
一个图书对象从它的起始点 开始,首先是“新书”状态
(new book),然后是“可 以借阅”(available)的状 ::borrowed 态,如果有读者将书借走, 则该书的状态为“已借出”
状态(borrowed),如果图 书被归还图书馆,图书的状 态又变为“可以借阅”状态 。图书馆如果放弃该图书对 象的收藏,则图书对象处于
第7章 状态图和活动图
图7.1 图书馆书籍的状态图
一个图书对象从它的起始点 开始,首先是“新书”状态 (new book),然后是“可 以借阅”(available)的状 态,如果有读者将书借走, 则该书的状态为“已借出” 状态(borrowed),如果图 书被归还图书馆,图书的状 态又变为“可以借阅”状态 。图书馆如果放弃该图书对 象的收藏,则图书对象处于 “删除”状态(delete),最 后到达“终止”状态。
7.2.1 活动图概述
在用例模型中,可以利用文本来描述用例的业务流程, 但如果业务流程较为复杂的话,则可能会难以阅读和 理解,这时需要用更加容易理解的方式(图形)来描 述业务过程的工作流,在UML中将这类描述活动流程 的图形称为活动图(Activity Diagram)。 活动图被设计用于简化描述一个过程或者操作的工作步 骤。活动用圆角矩形表示,接近椭圆。一个活动中的 处理一旦完成,则自动引起下一个活动的发生。箭头 表示从一个活动转移到下一个活动。和状态图类似, 活动图中的起点用一个实心圆表示,终点用一个实心 圆外加一个圆圈表示。在一个活动图中,只有一个起 始状态,可以有零个或多个终止状态。
第7章 状态图和活动图
7.1状态图
状态图,用于UML中建立动态模型,主要描述系
统随时间变化的行为,这些行为是用从静态视图中抽 取的系统的瞬间值的变化来描述的。在对象的生命期 建模中,状态图显示了一个状态机,展示的是单个对 象内从状态到状态的控制流。状态图通过对类的对象
的生存周期建立模型来描述对象随时间变化的动态行
7.2.7分叉和汇合
对象在运行时可能会存在两个或多个并发运行的控制流, 为了对并发的控制流建模,UML中引入了分叉与汇合的概 念。分叉用于将动作流分为两个或多个并发运行的分支, 而汇合则用于同步这些并发分支,以达到共同完成一项事 务的目的。 在UML中使用分叉和汇合表示并行发生的事件流。分叉表 示把一个单独的控制流分成两个或多个并发的控制流。一 个分叉可以有一个进入转移和两个或多个输出转移,每一 个转移表示一个独立的控制流。 汇合表示两个或多个并发 控制流的同步发生,一个汇合可以有两个或多个进入转移 和一个输出转移。分叉和汇合应该是平衡的。分叉和汇合 在图形上都使用同步条来表示,同步条通常用一条粗的水 平线表示。
状态图和活动图
34
制作 李文杰
8. 状态图和活动图的比较
状态图和活动图都是对系统动态行为建模,有共 同点又有区别。 1)两者描述的重点不同。状态图描述的是对象的 状态和状态之间的转移,活动图描述的是活动到活动 的控制流。 2)两者使用的场合不同。状态图用于显示一个对 象在其生命周期内的行为,活动图用于描述用例、涉 及多个用例的工作流程和多线程应用。 如果需要描述多个对象间的交互,应该用交互图 (顺序图或协作图)。
一般状态之间的转移是由事件触发的,因此在转移上应标出 事件;否则,表示在源状态的内部活动执行完毕后自动触发 转移。
15
制作 李文杰
2. 状态图中的基本概念
转移 转移格式:[event-signature][[guard-condition]][/ action] 事件特征标记格式:event-name(comma-separated-parameter-list)
put(c)[ c!='<' ] / return false Waiting put(c)[ c=='<' ]
状态图工具支持 正向:根据状态机理论来生成代码 (参考形式语言与自动机资料) 逆向:困难,手工 Rose2003不支持,Poseidon支持。
put( c )[ c!='>' ] / token.append(c);return false
[ temperature> =100 ]
汽体(蒸汽)
4
制作 李文杰
1. 状态图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
组合状态
简单状态:一个不含有嵌套状态的状态 组合状态:如果一个状态内嵌套了若干个
状态,则称该状态为组合状态或超状态 子状态:嵌套在另一个状态中的状态
[未检查完 全部商品]/ 取下一个
检查
do/ 检查商品
发货处理 [ 全部商品已检查完且全部商品都有 ]
[ 全部商品已经检查完,但部分商品缺货 ] 收到商品[ 全部商品都有 ]
办理发货
do/ 启动发货
收到商品 [部分商品
缺货]
等待
什么是活动图
活动图是系统的一种行为视图,它描述参 与行为的对象类的活动的顺序,包括依赖 于条件的行为和并发行为
人
同步条件
判断条件 判定活动
找饮料 [没有咖啡]
[找到咖啡]
[没有可口可乐] [找到可
口可乐]
将咖啡放到 加水到 过滤器中 容器中
把过滤器放 到咖啡炉上
取出
取一听
咖啡杯 可口可乐
活动
点燃 熄灭咖啡炉 咖啡炉
取消 取消
已发货
收到商品 [部分商品
缺货]
检查
do/ 检查商品
[ 全部商品已检查完且全部商品都有 ]
[ 全部商品已经检查完,但部分商品缺货 ] 收到商品[ 全部商品都有 ]
办理发货
do/ 启动发货
[未检查完 全部商品]/ 取下一个
等待
取消 取消
取消
取消
已发货
使用组合状态的优点:避免了转移线交叉, 使图面清晰,简化了状态图,更重要的是 要清楚地表达了状态的结构关系,便于分 清主次,分别对待
在状态图中,事件是一个激励的出现,它 定义一个触发子触发对象改变其状态
在UML中,事件分为4类:调用事件、变化 事件、时间事件、信号事件
调用事件:表示对操作的调度 格式:Event-name’(‘comma-separatedparameter-list’)’
查询 retrieve(Keywords) 数据操作
终结状态用一个圆中套一个实心圆表示
初始状态
终结状态
判定:判定是在状态图中的一个特定的位置, 工作流在此按保安条件的取值而发生分支
判定用空心小菱形表示
制定计划
[人员齐备]
实施
[人员未齐备]
招聘人员
同步:同步可视化地定义了并发工作流的分 劈(fork)与接合(join)
分劈是一个源状态分为两个或两个以上的目标 状态
active1 after(2 seconds) / dropConnection()
idle
when(date=Jan 1,2000)
active2
信号事件:表示对象接收了信号这种情况, 往往会触发状态的转移
在UML中,信号用构造型《signal》表示
信号事件和调用事件的表示格式是一样 的
动作
第八章 状态图与活动图
主讲教师:阿都建华 单位:软件工程系
什么是状态图
UML中的状态图(statechart diagram)主 要用于描述一个对象在其生存期间的动态 行为,表现一个对象所经历的状态序列, 引起状态转移的事件,以及因状态转移而 伴随的动作
状态就是对象生命期中的某个条件或状况, 在此期间对象将满足某些条件、执行某些 活动或等待某些事件
顺序状态与并发状态
顺序状态:组合状态的子状态是一个一个执 行的,不是并成
维修 结束
维修
通话
拨号
挂断
继续
顺序状态与并发状态
并发状态:子状态是并发存在的 两个并发的子状态图用一条虚线分隔
并发状态图:用于描述一个对象在某 个时刻有多个并发的子状态机的情况, 并发状态图是这些子状态图的组合
接合是两个以上的源状态连接为一个目标状态
同步在状态图中用一条粗短线表示,成为同步 杆
目标状态
源状态
源状态 目标状态
目标状态
源状态
状态
状态(state)是指在对象的生命期中的某 个条件或状况,在此期间对象将满足某些 条件、执行某些活动或等待某些事件
状态属性:对确定对象的状态有重要意义的属 性
动作是一个可执行的原子计算,即动作是 不可被中断的,其执行时间是可忽略不计 的
进入动作和退出动作的例子: Entry/setMode(onTrack) Exit/setMode(offTrack)
小结
状态图的基本概念、用途 状态图的图形元素 状态的定义及分类 组合状态的分类 事件、事件的分类、动作
冲调咖啡
倒咖啡
终点
喝饮料
活动图的基本要素
活动; 泳道; 分支; 分叉和汇合; 对象流; 注释体和注释连接。
变化事件:如果一个布尔表达式中的变量发 生变化,使得该布尔表达式的值相应地变化, 从而满足某些条件,则这种事件称为变化事 件 变化事件用关键字when表示
When(temperature>120) /alarm()
idle
时间事件:指满足某一时间表达式的情况的 事件 时间事件用关键字after或when表示
一个状态图表现了一个对象的生存史,着 重描述从一个状态到另一个状态的控制流
状态图:一部电梯的运行方式
状态图的图形元素
状态:用一个带圆角的矩形框表示,可以进一步划
分为3个分隔框:名称框、内部转移框和嵌套状态
图框
名称
名称框:标出状态的名称 内部转移框:规定动作或活动,
内部转移
但不改变对象的当前状态 嵌套状态图:放置被嵌套的子状态图
等待
商品检查
办理订货
付款检查
已付款
拒绝
取消 发货
历史状态
历史状态是一个伪状态,代表上次离开组 合状态时的最后一个活动子状态,当再次 进入这个组合状态时,可直接进入这个子 状态
历史状态用一个含字母“H”的小圆圈表示
活动 停止
选择
恢复
H
中断
暂停
播放
事件
事件是一个有意义的事情的说明,它位于 特定的时间和空间点
嵌套状态图
转移:用实箭线表示,箭尾连接出发状态, 即源状态,箭头连接到达状态,即目标状态 在箭线上可以标示与该转移有关的选项: 事件、保安条件和动作
源状态 事件[保安条件]/动作 目标状态
初始状态:是模型元素的初始状态,代表一 个状态图的起始点,是一个伪状态。
初始状态用一个实心的圆表
终结状态:是模型元素的最后的状态,代表 一个状态图的终止点,是一个伪状态。