状态图

合集下载

UML状态图课件

UML状态图课件
终止状态在一个状态图中可以有多个,它 用一个套有一个实心圆的空心圆表示。
5 判定
判定在状态图中的位置:工作流在此处按 监护条件的取值而发生分支。
判定用空心小菱形表示。
因为监护条件为布尔表达式,所以通常条 件下的判定只有一个入转换和两个出转换。
根据监护条件的真假可以触发不同的分支 转换。
然而处于不同状态下的对象会通过不同的 动作对同一事件做出不同的反应。
示意图:
状态图
1 状态
状态由一个带圆角的 矩形表示。
状态图标可以分为: ① 名称 ② 内部转换
名称
entry/ exit/
2 转换
转换用带箭头的直线表示,一端连接源状态即转 出的状态,箭头一端连接目标状态即转入的状态。
如图所示:
准备
常见的三个活动是:
entry/ 进入教室 do/ 打开投影 exit/ 宣布上课
1、入口动作(entry ) :进入某一状态时执行的动作。
2、动作(do):系统处于该状态时要发生的动作。
3、出口动作 (exit ):离开某一状态时执行的动作 。
子状态(substate)
某些状态存在于另一个状态之中,因此它们被称为 子状态。子状态以两种形式出现:顺序子状态和并 发子状态。
状态图
讲授内容
状态图基本表示 状态、事件、转移、活
动 状态图练习 状态图知识点小节
什么是状态图
按电灯的开关时,电灯改变了它的状态 按遥控器的调频按钮时,电视机的状态由显
示一个频道的节目变为显示另一个频道的节 目 经过一段时间,洗衣机由洗涤变为漂洗状态 夏天树叶绿了,秋天变黄了 如何表示这些变化呢?
作业
自学历史状态

状态图怎么画

状态图怎么画

状态图怎么画
状态图怎么画 1
(如果已经了解,可以直接跳到第二部分)
状态图(UML 1.x规范中的称呼),是一种展示状态机的图,在UML 2.x中则称为状态机图。

所谓状态机是一种行为,用来描述一个对象在其生命周期中的各种状态和状态转换。

主要由五部分组成,分别是状态、转换、事件、动作和活动:•状态:表示对象的生命周期中的一种条件/情况,有初态和终态之分
•事件:表示在某一时间与空间下所发生的有意义的事情•动作:表示一个可执行的原子操作,是UML能够表达的
最小计算单元
•活动:表示状态机中的非原子执行,一般由一系列动作
组成
状态图怎么画 2
1)打开亿图图示,依次选择“新建>软件和数据库>软件>UML 图>+”,新建画布的同时,软件会直接调出UML相关的符号库;
或者直接新建一张空白画布,然后在左侧符号库栏搜索关键词“状态图”调出相应图形符号;
2)从左侧符号库拖拽合适的符号到画布上,根据各种状态顺序及状态的转换
3)状态、转换、动作和其他信息的备注。

简单三步,大功告成。

大家可以自己体验下>>>。

状态图

状态图

状态图:用于描述一个对象,再其生存期间的动态行为,表现一个对象多经历的状态序列,引起状态迁移的事件,以及状态转译而伴随的动作。

状态(state):对象生命周期中的一个条件或状态,在此期间对象将满足某些条件、执行某些活动或等待某些事件。

子状态:嵌套在另外一个状态中的状态(如:NewState2,NewState3)组合状态:一个含有子状态的的状态(如:NewState)子状态之间的关系:(1)or关系:在某一时刻仅可达到一个字状态(2)and关系:组合状态中在某一时刻可同时达到多个子状态历史状态(history state):一个伪状态,记住从组合状态中退出时所处的子状态。

当再次进入组合状态时,可直接进入这个状态,而不是再次从组合状态的初始状态(需要负荷状态选择State/activitu history 选项)转移:对象将在第一个状态中执行一定的动作,并在某一个特定事件发生而且某个特定的警戒条件满足是进入第二个状态描述转移的格式:<事件特征标记> [<警戒条件>] / <动作>事件(enent):在一个时间和空间上占有一定位置的有意义的事情的详细说明调用事件(call event):调用事件表示的是对操作的调度格式:<事件名>(<逗号分隔的参数列表>)变化事件(change event):如果一个布尔表达式中的变量发生变化,使得布尔表达式的值相应的变化,从而满足某些条件(关键词when表示)时间事件(time event):妈祖某一时间表达式的情况的出现(关键词after、when)信号事件(signal event):对象接收到了信号,该信号触发状态的迁移后面的内容不是太重要:创建历史状态ss。

状态图和顺序图

状态图和顺序图
的。 • 交互图中大量的消息是异步消息。 • 异步消息的接收者必须是一个主动对象。
27
异步方式
• 异步方式的时间问题。 • 因为供应商不需要等待
销售商(存储价格)的处 理所以节省了2秒钟时 间。
28
异步方式
• 在许多情况下客户端 与服务器联系后,并 不需要等待应答或不 需要立即应答。
• 客户建立异步联系后 (只需建立对异步回 答的监听)可以做自 已另外的事情。
receiveSoda(selection)
用例“买饮料”的最理想场景建模的顺序图31
饮料销售机
:Customer
:Front
:Register
:Dispenser
accept(cash,selection) getCustomerInput(cash,selection) checkAvailability(selection) Sold Out
状态图
(state diagram) 主要内容:
• 1 什么是状态图,如何使用 • 2 如何使用事件、动作和保护条件
1
状态图的应用概念
• 行为元素:能够展示UML模型如何随时 间变化。
• 状态图:对象生命周期中各个时期的状 态以及引起变化的事件。
捕获系统动态行为(面向事件的)
2
状态图的应用概念
• 对于一个在一段时间内连续运行的软件 系统,一定是由许多对象在不断地交互, 在交互过程中只有对象在不断改变状态 其交互才具有意义,并且对用户具有价 值。
updateReserve(cash,selection)
releaseSoda(selection) receiveSoda(selection)
饮料销售机的一般顺序图(部分) 34

第6章 状态机图

第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活动图:◆流程图常被用来建立算法模型◆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章状态图和活动图课件

第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 什么是状态图
状态图主要用于描述一个对象在其生存期 间的动态行为,表现一个对象所经历的状 态序列,引起状态转移的事件,以及因状 态转移而伴随的动作。

第7章 状态图和活动图

第7章 状态图和活动图

图7.1 图书馆书籍的状态图
一个图书对象从它的起始点 开始,首先是“新书”状态 (new book),然后是“可 以借阅”(available)的状 态,如果有读者将书借走, 则该书的状态为“已借出” 状态(borrowed),如果图 书被归还图书馆,图书的状 态又变为“可以借阅”状态 。图书馆如果放弃该图书对 象的收藏,则图书对象处于 “删除”状态(delete),最 后到达“终止”状态。
7.2.1 活动图概述
在用例模型中,可以利用文本来描述用例的业务流程, 但如果业务流程较为复杂的话,则可能会难以阅读和 理解,这时需要用更加容易理解的方式(图形)来描 述业务过程的工作流,在UML中将这类描述活动流程 的图形称为活动图(Activity Diagram)。 活动图被设计用于简化描述一个过程或者操作的工作步 骤。活动用圆角矩形表示,接近椭圆。一个活动中的 处理一旦完成,则自动引起下一个活动的发生。箭头 表示从一个活动转移到下一个活动。和状态图类似, 活动图中的起点用一个实心圆表示,终点用一个实心 圆外加一个圆圈表示。在一个活动图中,只有一个起 始状态,可以有零个或多个终止状态。
第7章 状态图和活动图
7.1状态图
状态图,用于UML中建立动态模型,主要描述系
统随时间变化的行为,这些行为是用从静态视图中抽 取的系统的瞬间值的变化来描述的。在对象的生命期 建模中,状态图显示了一个状态机,展示的是单个对 象内从状态到状态的控制流。状态图通过对类的对象
的生存周期建立模型来描述对象随时间变化的动态行
7.2.7分叉和汇合
对象在运行时可能会存在两个或多个并发运行的控制流, 为了对并发的控制流建模,UML中引入了分叉与汇合的概 念。分叉用于将动作流分为两个或多个并发运行的分支, 而汇合则用于同步这些并发分支,以达到共同完成一项事 务的目的。 在UML中使用分叉和汇合表示并行发生的事件流。分叉表 示把一个单独的控制流分成两个或多个并发的控制流。一 个分叉可以有一个进入转移和两个或多个输出转移,每一 个转移表示一个独立的控制流。 汇合表示两个或多个并发 控制流的同步发生,一个汇合可以有两个或多个进入转移 和一个输出转移。分叉和汇合应该是平衡的。分叉和汇合 在图形上都使用同步条来表示,同步条通常用一条粗的水 平线表示。

UML 状态图 StateChart Diagram

UML 状态图 StateChart Diagram

A、State Diagram(状态图)、State Machine Diagrams(状态机图)状态机图是说明一个元素(通常是类)能在不同状态之间变动。

状态机图的其它方面进一步描述和解释其运动和行为。

状态图主要用来描述对象、子系统、系统的生命周期。

通过状态图可以了解到一个对象所能到达的所有状态以及对象收到的事件(收到消息,超时,错误,条件满足)对对象状态的影响等。

状态所有对象都有状态,状态是对象操作的前一次活动的结果。

类的状态由类中的指定属性来说明。

事件当某些事情发生时对象的状态发生改变,我们称改变对象状态的事情为事件。

B、状态图的模型元素B.1、Initial(起点)初始态Initial元素是伪状态用于表明一个复合状态的默认状态。

可以在每一个复合状态的区域有一个初始顶点。

B.2、Final(终点)终态B.3、State(状态)State描述一些不变条件成立的情形。

这个条件可以是静态的(等待某个事件)也可以是动态的(正在执行一组活动)。

状态建模通常用于阐述类。

你可以适用State的operation(操作)来定义enter(进入)、internal(内部)、exit(退出)动作。

State 也可以有Attributes(属性)。

B.3、State Machine(状态机)状态机是一组相关状态元素的容器。

你可以创建状态机图的各个部分。

B.4、Synch(同步)Synch状态用于描述状态机的并发部分同时发生。

在同步发生后Synch状态的新兴过滤路径将合并。

B.5、Choice(选择)Choice伪状态用于组成复制过滤路径,例如:在状态机图中一个过滤的路径取决于一个动态的运行时的条件。

这个运行时的条件是由状态机路径选择决定的。

B.5、Junction(汇合)Junction伪状态用于设计复杂过滤路径。

一个Junction可以用来汇合或组合多个过滤路径为一个过滤路径。

另外一个Junction可以把一个进来的路径分割成多个路径。

UML的状态图图解及应用

UML的状态图图解及应用

状态图可以帮助理解系统的行 为和状态转换过程
状态图可以用于描述系统的动 态行为和状态转换关系
状态图的组成
状态:表示系统在某个时间点的状态
动作:状态转换过程中执行的操作
转换:表示系统从一个状态到另一个状 态的变化
事件:触发状态转换的条件
监护条件:状态转换的附加条件
状态图:表示系统状态和状态转换的图 形表示
UML的状态图图解及应用
汇报人:XX
UML状态图的概述 UML状态图的图解 UML状态图的应用场景 UML状态图的实践案例 UML状态图的优缺点
UML状态图的发展趋势和未来展望
UML状态图的概述
状态图的定义
UML状态图是一种描述系统状 态和状态转换的图形工具
状态图描述了系统在不同状态 下的行为和转换关系
添加标题
添加标题
添加标题
添加标题
技术融合:与其他建模技术相结合, 如BPMN、SysML等
标准更新:UML标准不断更新,以 适应新的技术和应用需求
未来展望
应用领域:UML状态图将在软件开发、系统设计等领域得到更广泛的应用
技术发展:随着人工智能、大数据等技术的发展,UML状态图将更加智能化、高效化
标准制定:UML状态图将逐渐成为国际标准,为软件开发提供更统一的规范
转换的表示
转换:从一个状态到另一个状态的变化 转换条件:触发转换的事件或条件 转换动作:在转换过程中执行的操作 转换目标:转换后的目标状态
动作的表示
动作名称:在箭头上方或下 方标注动作名称
动作表示:使用箭头表示动 作,箭头指向目标状态
动作条件:在箭头上方或下 方标注动作条件
动作结果:在箭头上方或下 方标注动作结果
业务过程建模

状态图和活动图

状态图和活动图
活动图工具支持 正向:若表示工作流程,产生代码困难;若表示 具体算法产生代码容易。 逆向:对类的操作是可能的,从系统得到工作流 程困难。 Rose2003不支持。
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. 状态图

第10章 状态图讲解

第10章 状态图讲解

构成状态图的元素
外部转换
外部转换是一种改变状态的转换,也是最普通最常见的一 种转换。在UML中,它用从源状态到目标状态的带箭头的 线段表示,其他属性以文字串附加在箭头旁。
构成状态图的元素
内部转换
内部转换只有源状态,没有目标状态,不会激发入口和出 口动作,因此内部转换激发的结果不改变本来的状态。如 果一个内部转换带有动作,它也要被执行。内部转换常用 于对不改变状态的插入动作建立模型。要注意的是内部转 换的激发可能会掩盖使用相同事件的外部转换。
状态图的组成
2. 并发组成状态
在一个组成状态中,可能有两个或者多个并发的子状态机, 我们称这样的组成状态为并发组成状态。每个并发子状态 还可以进一步分解为顺序组成状态。
一个并发组成状态可能没有初始状态,终态,或者历史状 态。但是嵌套在它们里的任何顺序组成状态可包含这些伪 状态。
创建状态图
要创建状态图,首先要标识出哪些实体需要使用状态图进 一步建模。虽然我们可以为每一个类、操作、包或用例创 建状态图,但是这样做势必浪费很多的精力。一般来说, 不需要给所有的类都创建状态图,只有具有重要动态行为 的类才需要。
从另一个角度看,状态图应该用于复杂的实体,而不必用 于具有复杂行为的实体。使用活动图可能会更加适合那些 有复杂行为的实体。具有清晰、有序的状态实体最适合使 用状态图进一步建模。
实际就是工作流在此处按监护条件的取值发生 分支,在UML中判定用空心菱形表示。
状态图的概念
2. 状态图的作用
(1)状态图清晰的描述了状态之间的转换顺序,通过状 态的转换顺序也就可以清晰的看出事件的执行顺序。如果没 有状态图我们就不可避免的要使用大量的文字来描述外部事 件的合法顺序。

4、状态图

4、状态图

4.4.5 调用事件
调用事件是一个对象对调用的接收。 调用事件至少涉及两个以上的对象。 调用事件既可以为同步调用,也可以为异 步调用。
4.4.6 修改事件
修改事件依靠特定属性值的布尔表达式所 表示的条件的满足来触发状态的转换。 修改事件表示了一种具有时间持续性的并 且可能是涉及全局的计算过程。
4.4 事件
事件表示在某一特定的时间或空间出现的 能够引发状态改变的一种运动变化。 事件是一个激励的出现,它定义一个触发 子以触发对象改变其状态,任何影响对象 的事物都可以是事件。
4.4 事件
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ 事件种类: 入口事件 出口事件 动作事件 信号事件 调用事件 修改事件 时间事件 延迟事件
Maintaining The train stop
4.5.2 内部转换
内部转换有一个源状态但是没有目标状态,它转 换后的状态仍旧是它本身。 内部转换的激发规则和改变状态的外部转换的激 发规则相同。 内部转换用于对不改变状态的插入动作建立模型。
4.5.2 内部转换
内部转换和自转换(完成转换)不同: ① 自转换是离开本状态后重新进入该状态, 它会激发状态的入口动作和出口动作的执 行。 ② 内部转换自始至终都不离开本状态,所以 没有出口或入口事件,也就不执行入口和 出口动作。
4.4.6 修改事件
监护条件与修改事件的区别: ① 监护条件只是在引起转换的触发器事件触 发时和事件接收者对事件进行处理时被赋 值一次。 ② 修改事件则可以被多次赋值直到条件为真, 多次赋值满足条件后转换也会被激发。
4.4.7 时间事件
时间事件代表时间的流逝。 时间事件既可以被指定为绝对形式(天 数),也可以被指定为相对形式(从某一 指定事件发生开始所经历的时间)。 时间事件可以描述一个通知信息,自进入 状态以来某个时间期限已到,时间事件就 会激发状态的转换

第9章-状态图和活动图

第9章-状态图和活动图

9.2 状态图元素
子状态(substate) 嵌套在另外一个状态中的状态 空调:停止、运行状态,运行状态中可 嵌套制 冷、制热、除湿等子状态
延迟事件(deferred event) 是指在该状态下暂不处理,但将推 迟到该对象的另一个状态下排队处 理的事件
9.2 状态图元素
名字域
当当发将到时当时s生延别处事,当用转,e时迟的l件于电自f入做灯T作,响状发e该源备该开闪s对 应 态生t关电状灯状事烁象,中时闭源态动态件5,
9.2 状态图元素
• 终态 end state •表示最后的或者终端状态; •终态数目可以不确定,也可以没有。 •电扇 坏了/没坏,但拆下闲置
9.2 状态图元素
9.2.2 状态 对象的状态始终是由其属性和关联决定 状态图中的状态表示的是给定类对象的 一组属性值 状态图中状态用圆角矩形表示
状态名称
在状态内出 现内的部活转动换,
不能附加到
转换上。
9.2 状态图元素
9.2.3 事件
“事件”指发生在时间和空间某点上的 且能够引起某些动作执行的事情 事件可以是内部事件也可以是外部事件 四类事件: ➢调用事件 ➢信号事件 ➢改变事件 ➢时间事件
9.2 状态图元素
信号signer事件 •所谓信号,是指由一个对象异步地发送,并由另外一 个对象接收的一个已命名的对象。 •信号事件表示对象接收到某个信号。 •信号间可以有泛化,信号可以是其他信号的子信号, 它们继承父信号的属性,并可以触发包含信号类型的 转换。
9.2 状态图元素
9.2 状态图元素
9.2 状态图元素
外部转换,自转 换也是外部转换
外部转换
9.2 状态图元素
9.2.5 复合状态和子状态
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

状态图与活动图的区别:
状态图只建模一个对象的行为,活动图可以建模多个 对象的活动 活动图中也允许建模特定活动中对象的某个状态
基本组成
状态 转换 事件、动作
基本组成(例如刷pos机)
状态
什么是状态(state)
对象生命期中的某个条件或状况,在此期间对象将满足 某些条件、执行某些活动或等待某些事件。
6、入口点和出口点
入口点
状态内的一个外部可见的伪状态,外部转换可以将它作 为目标,从而被有效连接到指定状态上。
出口点
状态内的一个外部可见的伪状态,外部转换可以将它作 为源,代表状态内的一个终点。
转换
Transition
两个状态之间的一种关系,表示对象在第一个状态中执 行一定的动作,并在某个特定事件发生而且满足某个条 件时进入第二个状态。每个转换只允许一个事件,一个 事件只允许一个动作
信号可以作为状态中一个状态转换的动作而被发送, 也可作为交互中一个的消息发送。
1、信号事件
2、调用和变化事件
调用(call)事件
表示一个操作的调度。请求调用另一个对象的操作。 一般是同步调用。
变化(change)事件
用关键字When,后面跟布尔表达式。 When(temperature > 120) / alerm()
用途
对对象生命周期建模:
主要描述对象能够响应的事件、对这些事件的影响以及过去对当 前行为的影响
对反应型对象建模:
这个对象可能处于的稳定状态、从一个状态到另一个状态之间 的转换所需的触发事件,以及每个状态改变时发生的动作
状态图既可以用来表示一个业务领域的知识,也可以 用来描述设计阶段对象的状态变迁
状态图应用
一种伪状态。可以存储退出组合状态时所处的子状态,
则返回组合状态时可以直接回到相应的子状态。它用一 个包含字母“H”的小圆圈表示。
5、历史状态

当从状态“结账”和“显示购物车”返回子状态“ 显示索引信息”时,将进入的是离开时的历史状态。 也就是说,转到购物或结账区之后,再回到“浏览目录” 的页面时,其中的内容是不变的,仍然保留原来的信 息。
ቤተ መጻሕፍቲ ባይዱ转换的五要素
源状态 目标状态 触发事件 监护条件 动作
1、复杂转换
转换类型 描述 语法
外部转换 对事件做出响应,引起状态变化或自 事件(参数)[监护条 身转换,同时引发一个特定动作,如 件]/活动 果离开或进入状态将引发进入转换、 离开转换
内部转换 对事件做出响应,并执行一个特定的 事件(参数)[监护条 活动,但并不引起状态变化或进入转 件]/活动 换、离开转换 进入转换 当进入某一状态时,执行相应活动 退出转换 当离开某一状态时,执行相应活动 entry/活动
状态图案例分析
分析: 1、购物车生成订单进入状态【订单成立】 2、系统检测订单已经付款并且库存量足够,则进入状态【备货 中】 3、物流发货,进入状态【发货中】,状态转移为【发货中】后, 需要做的操作有“扣除商品可接单量及移除购物车中的购买资料” 4、发货完毕后,状态分为【出货确认】和状态【出货失败】, 如果状态是【出货失败】,则【结束】,如果状态为【出货确认】, 则进入下一步。 5、配货人员填写实际配达日期,进入状态【出货完毕】。 6、如果”已付款、鉴赏期结束日期 小于等于 [系统日期]”,则 【订单成立】。
订单处理系统
状态图应用
复合(rose)
状态图应用
复杂图 (售票机)
状态图案例分析
一个电子商务系统在订单发生时经过的状 态变化。
状态图案例分析
订单成立状态 主要有: 订单成立 订单取消(Guard:会员订单-缴款期限已过期) 备货中(Guard:已付款、订单成立、库存量足够) 出货中(Effect:扣除商品可接单量及移除购物车中的购买资料) 出货确认(Guard:实际配达日及发票代码、号码均不为空值) 出货完毕(Guard:实际配达日不为空) 出货失败 订单成立(Guard:出货完毕,已付款、鉴赏期结束日期 小于等 于 [系统日期])
exit/活动
2、各种转换的区别
进入和退出转换:
当进入一个状态时,执行某个动作;或当退出某个状态 时,执行什么动作。这时就可以使用进入和退出转换来 表示
内部转换:
用来处理一些不离开该状态的事件,内部转换只有 一个源状态而没有目标状态,因此转换激发的结果并不 改变状态本身。如果一个内部转换带有动作,动作也要 被执行,但是由于没有状态改变发生,因此不需要执行 入口和出口动作。
子状态(substate)
嵌套在另外一个状态中的状态。
延迟事件(deferred event)
延迟到下一状态中处理的事件。
lighting entry/ turnO n d o / b l an k F i v e T i m e s e v e n t /po w e r o f f / p o w e r S u p p l y S el f e x i t / tu r n O f f
状态图的建立步骤
1〉确定状态机的上下文,它可以是一个类、子系统或整个系统。 2〉选择初始状态和终结状态。 3〉发现对象的各种状态。状态属性,行为(确定事件和动作) 4〉确定状态可能发生的转移。注意分出从一个状态可能转移到 那些状态,对象的哪些行为可引起状态的转移并找出触发状态转移 的事件。 5〉把必要的动作加到状态或转移上。 6〉复合状态、子状态、历史状态等概念组织和简化一个复杂的 状态机。 7〉分析状态的并发和同步情况。 8〉绘制状态图。 9〉确认每一个状态在某个时间组合之下都是可到达的。确认没 有一个死端状态,对象不能从该状态转移出来。
包括顺序和并发的复合状态
两种表示方法:
3、复合状态
顺序复合状态图(表示方法1)
3、复合状态
顺序复合状态图(表示方法2)
3、复合状态
并发复合状态图
4、子状态
将子状态单独定义,并对其进行命名(通常以大 写字母开头),然后在需要使用的地方来引用它
4、子状态
例:
5、历史状态
History state
2、一般状态
延迟事件
是一种特殊的事件,它是指该事件不会触发状态的转 换,当对象处于该状态时事件不会丢失,但会被延迟执 行。 例如,当E-mail程序中正在发送第一封邮件时,用户下
达发送第二封邮件执令就会被延迟,但第一封邮件发送 完成后,这封邮件就会被发送。这种事件就属于延迟事 件
3、复合状态
含有子状态的状态被称为复合状态。
状态图
设计实现:对于类对象所有可能的状态, 状态图都显示它可能接收的消息、将执行 的操作和在此之后类的对象所处的状态 状态机主要用于描述对象的状态变化以确定 何种行为改变了对象状态,以及对象状态变 化对系统的影响 状态图通常只用于描述单个对象的行为,如 果要描述对象间的交互,最好采用时序图或 协作图
事件
Event
是对一个时间和空间上占有一定位置的有意义的事情的 规格说明。 事件触发状态的转移
四类主要事件
信号事件 调用事件 变化事件 时间事件
1、信号事件
信号(signer)事件
所谓信号,是指由一个对象异步地发送、并由另外一个
对象接收的一个已命名的对象。 信号事件表示对象接收到某个信号。
4.2.2 状态图
概述
状态
用于描述一个对象在其生存期间的动态行为,表现对象 响应事件所经历的状态序列以及伴随的动作。
状态图(State Machine Diagram)
用来显示状态,一个状态可用多张状态图描述。
概述
状态图与交互图的区别:
交互图不显示对象所有可能的动态行为,只显示特定交 互(一个具体的用例)中对象的行为。 状态图可以显示对象所有的动态行为。
理解
对象在任何时候都会处于某种状态中,所有对象都有状 态。 对象所处的状态决定了它如何响应所检测到的事件或所 接收的消息。 通常,事件使对象从一个状态转向另一个状态(即状态 的转移)
状态
几种类型:
初态 终态 中间状态 组合状态 历史状态
1、初态和终态
初态(start state)
显示状态图中状态的执行(execution)的开始。 一个状态只能有一个初态,因为每一个执行都是从相 同的地方开始的。如果一个状态用多张图描述,则多 张图用同一个初态;
嵌套状态中可以使用新的初态;
终态(End State)
表示一个最后的或者终端状态;
终态的数目可以不确定。
2、一般状态
中间状态的组成:
状态名(name) 进入/退出动作(entry/exit action) 内部转换(internal transition)
不导致状态改变的转换,不会执行 entry 和 exit 动作。
3、时间事件

时间(time)事件
满足某一时间表达式的情况的出现,例如到达某一时间 或经过了某一时间段。用关键字After或When表示。
总结:借书例子所展示的关 键元素:初始状态、最终状 态、转移、事件、条件。 UML中状态被赋予4个特定 事件
entry指进入(激活)状态时
要执行的动作(或者方法) Do指对象状态保持不变时 持续执行的动作(或者类方 法),它不会因为event停止; event事件指对象接收到某 个事件时件执行的动作,这 个动作不会导致对象状态的 变化,可以通过绘制一条返 回状态自身的转移来表示动 作的执行结果; exit指活动在退出(结束)时 要进行的动作
状态图
状态图显示一个状态机
建模:状态机对模型元素的动态行为进行建模, 就是对系统行为中受事件驱动的方面进行建模
业务阶段:通常使用状态图来说明业务角色或业 务实体可能的状态——导致状态转换的事件和状 态转换引起的操作
相关文档
最新文档