第9章 状态图和活动图
状态图和活动图-文档资料
历史状态
CD Player,running状态被打断到power on状态,再转 回到running状态时,希望直接进入历史状态
转移
Transition
转移是两个状态间的一种关系,表示对象将在当前状态中 执行动作,并在某个特定事件发生或某个特定的条件满足 时进入后继状态。
什么是状态(state)
状态是在对象的生命期中的某个条件或状况, 在此期间对象 将满足某些条件、执行某些活动或等待某些事件.
理解
对象在任何时候都会处于某种状态中,所有对象都有状态
对象所处的状态决定了它如何响应所检测到的事件或所接收 的消息。
通常,事件使对象从一个状态转向另一个状态(即状态的转 换)
(1)入口动作 入口动作表示对象进入某个状态所要执行的动作。 入口动作用“entry/要执行的动作”表示。
(2) 出口动作 出口动作表示对象退出某个状态所要执行的动作。 出口动作用“exit/要执行的动作”表示。
活动
当对象处于一个状态时,它一般是空闲的,在等待一个事件 的发生。但是某些时间,对象正在执行一序列动作,即,对 象做着某些工作,并一直继续到被某个外部事件的到来,才 中断这些工作,我们把对象处于某个状态时进行的一序列动 作称为活动。
每个转移只允许有一个事件触发,一个事件只允许有一个 动作
转移的五要素(注意格式)
如果对象处于某个状态进行一些动作,可能会需要一些时间, 我们可以用活动来描述这一序列动作。表示活动的方法是, 在状态的转换分栏中添加一行“活动描述”,其格式为“do/ 动作名”。
活动用来描述对象处于某个状态时,对象进行的一序列动作。
UML中的活动图和状态图的区别与实际应用案例解析
UML中的活动图和状态图的区别与实际应用案例解析UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它提供了一套丰富的图形符号和规范,帮助开发人员更好地理解和设计软件系统。
在UML中,活动图和状态图是两种常用的图形表示方式,用于描述系统中的活动流程和对象状态。
本文将探讨这两种图形的区别,并通过实际应用案例来解析它们的具体应用。
活动图是一种用于描述系统中活动流程的图形表示方式。
它主要由活动(Action)、控制流(Control Flow)和决策节点(Decision Node)等元素组成。
活动图可以清晰地展示系统中的各种活动以及它们之间的关系和顺序。
活动图通常用于描述业务流程、系统交互和软件系统中的算法等。
例如,在一个在线购物系统中,我们可以使用活动图来描述用户选择商品、添加到购物车、填写订单信息、确认支付等流程。
通过活动图,我们可以更好地理解和设计系统中的各个步骤,从而提高系统的可靠性和可维护性。
与活动图相比,状态图主要用于描述系统中对象的状态和状态之间的转换。
状态图由状态(State)、转移(Transition)和事件(Event)等元素组成。
状态图可以清晰地展示对象在不同状态之间的转换和触发条件。
状态图通常用于描述系统中的状态机、对象的生命周期和系统中的并发操作等。
例如,在一个自动售货机系统中,我们可以使用状态图来描述售货机的工作状态,如待机状态、售货状态和故障状态等。
通过状态图,我们可以更好地理解和设计系统中对象的状态变化,从而提高系统的可靠性和性能。
活动图和状态图在应用上有一些区别。
活动图主要用于描述系统中的活动流程,强调活动之间的顺序和关系。
它更适合于描述系统中的业务流程和交互流程等。
而状态图主要用于描述系统中对象的状态和状态之间的转换,强调对象状态的变化和触发条件。
它更适合于描述系统中的状态机和对象的行为。
下面通过一个实际应用案例来进一步解析活动图和状态图的具体应用。
Rational Rose建模 第9章 状态图
构成状态图的元素
动作
动作(action)通常是一个简短的计算处理过程或一组 可执行语句。动作也可以是一个动作序列,即一系列 简单的动作。动作可以给另一个对象发送消息、调用 一个操作、设置返回值、创建和销毁对象。 动作是原子性的,所以动作是不可中断的,动作和动 作序列的执行不会被同时发生的其他动作影响或终止。 动作的执行时间非常短,所以动作的执行过程不能再 插入其他事件。如果在动作的执行期间接收到事件, 那么这些事件都会被保存,直到动作结束,这时事件 一般已经得到值。
创建项目中的状态图
2. 确定状态图中实体的状态
对于一个学生账号来说,它的状态主要包括: 初始状态 终止状态 可选课状态 不可选课状态 账号被删除状态
何谓状态图
2. 为什么要使用状态图
状态图的作用主要体现在以下几个方面: (1)状态图清晰的描述了状态之间的转换顺序,通过状态的转换顺 序也就可以清晰的看出事件的执行顺序。如果没有状态图我们就 不可避免的要使用大量的文字来描述外部事件的合法顺序。 (2)清晰的事件顺序有利于程序员在开发程序时避免出现事件错序 的情况。 (3)状态图清晰的描述了状态转换时所必须的触发事件、监护条件 和动作等影响转换的因素,有利于程序员避免程序中非法事件的 进入。 (4)状态图通过判定可以更好的描述工作流因为不同的条件发生的 分支。
构成状态图的元素
2. 转换
转换用于表示一个状态机的两个状态之间的一种关系, 即一个在某初始状态的对象通过执行指定的动作并符 合一定的条件下进入第二种状态。 在这个状态的变化中,转换被称作激发。在激发之前 的状态叫做源状态,在激发之后的状态叫做目标状态。 简单转换只有一个源状态和一个目标状态。复杂转换 有不止一个源状态和(或)有不止一个目标状态。
UML图详解(八)——状态机(状态图和活动图)
UML图详解(⼋)——状态机(状态图和活动图)⼀、概念状态图和活动图是状态机的两种表现形式。
利⽤状态机可以精确地描述对象的⾏为。
从对象的初始状态起,开始响应事件并执⾏某些动作,这些事件引起状态的转换;对象在新状态下⼜开始响应事件和执⾏动作,如此连续进⾏直到终结状态。
⼆、状态图状态图(State Diagram)=状态(State)+迁移(Transition)⼀个状态图描述⼀个状态机。
状态图表现从⼀个状态到另⼀个状态的控制流。
<1>状态图的语法1>除了状态中的初始状态(实⼼圆)和终⽌状态(⽜眼形状),其它状态⽤⼀个圆⾓矩形表⽰转换表⽰状态间可能的路径,⽤箭头表⽰事件/动作写在由它们触发引起的转换上<2>状态2>状态⼀般是给定类对象中的⼀组属性值,在其所在的上下⽂中应该唯⼀,但可以匿名。
在对系统建模时,我们可以只关⼼那些明显影响对象⾏为的属性以及由他们表达的对象状态,⽽不⽤理睬那些于对象⾏为⽆关的状态。
表⽰⽅式:状态由⼀个带圆⾓的矩形表⽰。
应⽤标签标⽰状态的内部活动。
语法:标签/活动表达式UML提供的标签:1. entry:当进⼊⼀个状态的时候被⾃动触发,该活动在状态中其它任何活动之前被⾃动触发。
2. do:当状态处于激活时执⾏do活动,do活动在进⼊活动之后执⾏,并且⼀直运⾏到它本⾝完成为⽌。
3. exit:当离开⼀个状态的时候被⾃动触发,该活动在该状态结束之前、所有其它活动都完成后被触发。
状态可以嵌套状态图,此时状态称为组成状态,否则为简单状态。
⼊⼝事件表⽰⼀个⼊⼝的动作序列,它在进⼊状态时执⾏。
⼊⼝事件的动作是原⼦的,并且先于⼈和内部活动或转换。
出⼝事件表⽰⼀个出⼝的动作序列,它在退出状态时执⾏。
出⼝事件也是原⼦的,它跟在所有的内部活动之后,但是先于所有的出⼝转换。
1. 简单状态(Simple State)2. 复合状态(Composite State)复合状态可以有多组状态图,每组⽤虚线分割开来。
状态图和活动图
状态图: 用来描述一个对象在其生命周期中所 表现出来的状态和行为。
当在系统建模过程中需要描述某个事物或对 象的不同状态,以及状态之间转移的事件和动 作时,用状态图。
但状态图并不是对每一个对象都需要的。
实例1:图书馆中“图书”的状态图 图书馆中的图书从被购买入馆开始可能经 历哪些基本状态的转换?
状态图描述一个实体基于事件反应的动态行为,显 示了该实体如何根据当前所处的状态对不同的时间做出 反应的。创建UML状态图基于以下目的:研究类、角色、 子系统、或组件的复杂行为。
状态图的例子:
一个机器 的状态图:
一个发货单 的状态图:
7.1.2 状态图的要素
事件
开始 状态
转移
状态
货品发货的状态图
结束 状态
第 章 状态图和活动图
7
第 章 状态图和活动图
7
7.1 状态图
7.1.1 什么是状态图 7.1.2 状态图的要素 7.1.3 状态图的作用
7.1.1 什么是状态图
1. 状态图的概念
状态图(statechart diagram): 用来描 述一个特定的对象所有可能的状态,以及 由于各种事件的发生而引起的状态之间的 转移和变化。
简单 活动
复合 活动
2 活动流
活动流(ActionFlow): 描述活动之间的有向关系,反 映一个活动向另外一个活动之间的转移。用带箭头的实 线表示。
活动流
3 分支
分支: 表示从一个活动按照某种条件转移到几个不 同的活动。
分支
合并
4 分叉和汇合
分叉和汇合: 表示并发的同步行为,用同步杆表示。 分叉表示一个控制流被多个控制流替代,替代后的控制 流是并发的。汇合与分叉含义相反
UML状态图和活动图ppt课件
1
课程目标
• 掌握状态图的定义、符号 • 掌握状态图的动作和事件 •掌握状态图的建模方法 •掌握活动图的定义、符号、条件 •掌握活动图的建模方法
2
本讲内容
• 状态图的定义、符号 • 状态图的动作和事件 • 状态图的建模方法 • 活动图的定义、符号、条件 • 活动图的建模方法
3
3
状态图的定义
12
状态图的符号
下面的示例演示了银行帐户中的转移及其有效状态,如下图 所示。
13
状态图的符号
3.决策点 决策点在建模状态图时提供了方便,因为它通过在中心位 置分组转移到各自的方向,从而提高了状态图的可视性,如下
图所示。
14
状态图的符号
4.同步 状态图中使用同步条是为了说明并发工作流的分叉与联合
表达式。如下图所示。
条件 19
练习: 阅读一个电梯系统的状态图 步骤:
1)标识出状态。 2)标识出转移。 3)标识出事件和动作。
20
21
状态图的建模方法
状态图建模需要执行以下步骤: 1)标识出需要进一步建模的实体。 2)标识出每一个实体的开始状态和结束状 态。 3)确定与每一个实体相关的事件。 4)从起始状态开始创建状态图。
22
状态图的建模方法
1.标识出需要进一步建模的实体 首先要标识出哪些实体需要使用状态图进
一步建模。状态图应该用于复杂的实体,而不 必用于具有复杂行为的实体。对于有复杂行为 的实体,使用活动图可能会更加适合。具有清 晰、有序的状态实体最适合使用状态图进一步 建模。后面将会建模一个Grade对象,尤其是 它的保存功能。
下图所示。
27
状态图的建模方法(续)
练习: 建模航班状态图 创建一个状态图来描述航班如何从提出申请、 制定航班计划、售票、起飞、飞行、到着陆的状态
统一建模语言及其建模工具第9章
接它们的线表示。
类图与对象图关系剖析
类与对象的关系
类是对象的抽象,而对象是类的实例。类定义了对象的结构和行为,而对象则是类定义的具体实现。
类图与对象图的关系
类图是描述系统静态结构的蓝图,而对象图则是这个蓝图在某一时刻的具体实现。类图中的类和关系定义了系统的结 构和行为,而对象图则展示了这些定义在实际运行中的情况。
02 组成元素
通信图主要由对象、链接和消息等元素组成。
03 表示方法
在通信图中,每个对象用一个带有名称的小圆圈 表示;对象之间的通信关系用链接表示,链接上 标注消息;消息的发送者和接收者用箭头表示。
顺序图与通信图在系统设计中的应用
描述系统动态行为
顺序图和通信图可以用来描述系统的动态行为,包括对象 之间的交互和通信过程,以及系统的执行流程。
案例:某企业建模工具选型过程
01
需求分析
企业需要对软件系统进行建模,包括类图、时序图、用例 图等多种UML图。同时,企业需要建模工具具备定制和扩 展功能,以满足特定需求。
02 03
工具评估
企业对多种建模工具进行评估,包括Rational Rose、 Visual Paradigm和StarUML等。在评估过程中,企业对 工具的功能、易用性、性价比和技术支持等方面进行了综 合考虑。
UML是OMG(Object Management Group)制定 的标准建模语言,得到了广 泛的支持和应用。
UML使用图形符号和工具来 表示软件系统的结构和行为 ,使得复杂系统更易于理解 和沟通。
UML适用于各种软件开发方 法和过程,包括面向对象、 敏捷和迭代开发等。
UML核心元素
事物(Things)
接着,我们将详细介绍 最后,我们将介绍一些 通过本章的学习,读者
解析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中图符不一样。
uml建模-状态图和活动图
l 使用状态图的最常见的是对反应型对象、尤其是对类、 用例或整个系统的实例的行为建模。反应型对象是指 这个对象可能处于的稳定状态、从一个状态到另一个 状态之间的转换所需的触发事件,以及每个状态改变 时发生的动作。反应型对象具有如下的特点:
活动图的符号集与状态图中使用的符号集类似。像状态图 一样,活动图也从一个连接到初始活动的实心圆开始。 活动是通过一个圆角矩形(活动的名称包含在其内)来 表示的。活动可以通过转换线段连接到其他活动,或者 连接到判断点,这些判断点连接到由判断点的条件所保 护的不同活动。结束过程的活动连接到一个终止点(就 像在状态图中一样)。活动图中的基本要素包括状态、 转移、分支、分叉和汇合、泳道、对象流等。
l ⑹把动作附加到这些转换上,并且附加到这些状态上; l ⑺考虑通过使用子状态、分支、汇合和历史状态,来简化状态图; l ⑻核实所有的状态都是在事件的某种组合下可达的; l ⑼核实不存在死角状态,即不存在那种不能转换出来的状态; l ⑽通过手工或通过使用工具跟踪状态机,核对所期望的事件序列以及它
们的响应。
::new book 借书
::availห้องสมุดไป่ตู้ble 还书
::delete
一个图书对象从它的起始点 开始,首先是“新书”状态
(new book),然后是“可 以借阅”(available)的状 ::borrowed 态,如果有读者将书借走, 则该书的状态为“已借出”
状态(borrowed),如果图 书被归还图书馆,图书的状 态又变为“可以借阅”状态 。图书馆如果放弃该图书对 象的收藏,则图书对象处于
第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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.1 状态图概述
9.1.1 状态机
状态机视图是一个类对象所可能经历的所有历程的 模型图。状态机由对象的各个状态和连接这些状态 的转换组成。 状态机视图通过对类和对象的生存周期建立模型来 描述对象随时间变化的动态行为。 状态机主要用于描述类的行为。 状态机是一个类的对象所有可能的生命历程的模型。 状态机是一个对象的局部视图 。
9.2 状态图元素
变化change事件 –用关键字When,后面跟布尔表达式 –When(temperature>120)/alerm() –变化事件的意图是要频繁测试表达式,只要表 达式由假变为真,事件就会发生。
9.2 状态图元素
时间(time)事件 –时间事件是指在绝对时间或在某个时间间隔内发生的 事情所引起的事件。 –例如到达某一时间或经过了某一时间段。用关键字 When 或After表示。
9.2 状态图元素
接收到input信号 这一事件发生
9.2 状态图元素
调用call事件 •表示一个操作的调度。请求调用另一个对象 的操作
•信号是一个异步事件,而调用事件一般是同 步的。也就是说,当对象调用另一对象的操作 时,控制就从发送者传送到接收者,该事件触 发转换,完成操后,接收者转换到一个新的状 态,控制返还给发送者。
9.2 状态图元素
CD Player
需要stop状态吗?
9.2 状态图元素
中间状态的组成(除初态终态外,最常见 的状态) •状态名(name) •入口/出口动作(entry/exit action) •内部转化(internal transition) •子状态(substate) •延迟事件(deferred event)
9.4 状态图应用
9.4.1 状态分析 • 接下来分析转换事件: 参加高考:高考后进入“学前”状态 录取:学生被录取后变成“在校”的学生 生病:学生长时间生病则进入“休学”状 态 康复:学生再回到学校转为“在校”状态 完成学业:学生毕业进入“毕业”状态 学籍处理:学生被学籍处理,进入“退学” 状态
在校
降级 一年级 降级 升级 二年级
升级
三年级 降级 升级 降级 四年级
9.4 状态图应用
Hale Waihona Puke 步骤 寻找主要的状态 确定状态之间的转换 细化状态内的活动与转换 用组合/嵌套状态来展开细节
航班预定系统(无预定,预定关闭, 部分预定,预定完)
9.4 状态图应用
9.4 状态图应用 细化状态内的活动与转换
通过测试
9.4 状态图应用
9.4.1 状态分析 首先需要找到与系统中对象相关的转换事件 通过以下几个方面来寻找转换事件 哪些事件可以创建或删除对象 哪些事件可以定义或修改属性值 哪些事件可以创建或结束与其他对象的关 系 哪些事件可以导致对象状态的转换 根据事件找到状态
9.4 状态图应用
9.4.1 状态分析 • 举例:学生学习过程状态 • 首先分析事件: 参加高考 录取 生病 康复 完成学业 学籍处理
9.2 状态图元素
什么是状态(state) •状态是指在对象的生命周期中满足某些条件、 执行某些活动或等待某些事件时的一个条件或 状况。 •万事俱备,只欠东风 •学生正在上课 •网络购物,订单等待处理
9.2 状态图元素
理解 •对象在任何时候都会处于某种状态 中,所有对象都有状态 •对象所处的状态决定了它如何响应 所检测到的事件或所接收的消息。 清醒-(被批评)-生气 醉酒- (被批评)-无反应 •通常,事件使对象从一个状态转向 另一个状态(即状态的转换)
9.2 状态图元素 动作 –可执行的原子计算 –不可中断,其执行时间可忽略不计 –当转换被引发时,它对应的动作被执行。它一 般是一个简短的处理过程。 两种特殊动作(只要进入或离开该状态一定会执行 该动作) –入口动作(entry) • 进入状态时执行的动作 –退出动作(exit) • 退出状态时执行的动作
9.4 状态图应用 使用复合状态
9.4 状态图应用
订单处理系统
9.4 状态图应用
9.4 状态图应用
练习1 电水壶:on和off两个状态,初态off,烧 坏则转换到终态。trunOn事件发生时,判 断水壶是否有水,若没有水,则仍处于 off状态,若有水,则turnOn事件引起烧 水活动,使状态从off转入on,水开,则 从on转入off状态
9.2 状态图元素
9.2.4 转换 对象从一个状态改变成另一个状态称为 转换 。 当状态发生转换时,称转换被激活。 转换激活前,对象为源状态。 激活后,对象为目标状态。
9.2 状态图元素 转换的五要素(注意格式) –源状态 –目标状态 –触发事件 • 如果箭头上不带任何事件名,表示是一个自 动转换,当与源状态相关的活动完成时就会 自动触发。 –监护条件 –动作
9.4 状态图应用
9.4 状态图应用
练习2 进程 •就绪 运行 阻塞三个状态 •初态就绪; 程序运行结束后终态 •就绪状态获得CPU时间片转为运行态;运 行态时间片用完转为就绪态;运行态不满 足所需资源转为阻塞态,阻塞态若资源满 足则回到就绪态
9.4 状态图应用
9.4 状态图应用
–图书馆管理系统中的还书业务 –还书业务的动态行为是由:空闲 (idle)、图书查找(finding)、还书 (reversion)、失败(Failure)、归 还成功(Success)5种状态及激活相互 转换的事件。 请根据分析运用UML绘制还书的状态图。
9.2 状态图元素
状态名(name) 是可以把该状态和其他状态区分开的 字符串;状态也可能是匿名的,即没有 名称。
9.2 状态图元素
内部转换(internal transition) •不导致状态改变的转换,不会执行 entry和exit动作 •内部转换和自转换的区别: 前门-入口,后门-出口 不出去,只在内部发生的转换-内 部转换 从后门出去,又从前门进来-自转 换,自转换会引起entry和exit动作 的执行
9.2 状态图元素 初态 start state •显示状态图中状态机执行(execution)的开始 •一个状态机只能有一个初态,因为每一个执行都 是从相同的地方开始的。如果一个状态机用多张 状态图描述,则多张图用一个初态, Rose中只允 许画一个初态,其它地方拖动使用 •嵌套状态中可以使用新的初态
9.2 状态图元素
两种表示方法 顺序子状态 • 如果一个组成状态的子状态对应的对象 在其生命期内的任何时刻都只能处于一个 子状态,即多个子状态之间是互斥的,不 能同时存在,这种子状态称为顺序子状态。 并发子状态 •有时组合状态有两个或者多个并发的子 状态机,此时称组成状态的子状态为并发 子状态。
9.2 状态图元素
名字域
不能附加到 转换上。
9.2 状态图元素
9.2.3 事件
“事件”指发生在时间和空间某点上的 且能够引起某些动作执行的事情 事件可以是内部事件也可以是外部事件 四类事件: 调用事件 信号事件 改变事件 时间事件
9.2 状态图元素 信号signer事件 •所谓信号,是指由一个对象异步地发送,并由另外一 个对象接收的一个已命名的对象。 •信号事件表示对象接收到某个信号。 •信号间可以有泛化,信号可以是其他信号的子信号, 它们继承父信号的属性,并可以触发包含信号类型的 转换。
9.1 状态图概述
9.1.2 状态图概述
状态图主要由起点、终点和状态组成,各状态由转 移连接在一起 。 状态图适合于描述跨越多个用例的单个对象的行为。 状态图由状态、事件和转换三个主要元素构成。
参加高考 学前 录取 学籍处理 在校 生病
退学
康复
完成学业
休学
毕业
9.1 状态图概述
状态图与顺序图的区别 •顺序图不显示对象所有可能的动态行为, 只显示特定交互场景(一个具体的用例) 中对象的行为。 •状态图可以显示对象所有的动态行为。 •笔 完整 折断两种状态,是由谁折断? 只能由顺序图看出
9.2 状态图元素
• 终态 end state •表示最后的或者终端状态; •终态数目可以不确定,也可以没有。 •电扇 坏了/没坏,但拆下闲置
9.2 状态图元素
9.2.2 状态 对象的状态始终是由其属性和关联决定 状态图中的状态表示的是给定类对象的 一组属性值 状态图中状态用圆角矩形表示
状态名称
9.2 状态图元素
9.2 状态图元素
9.2 状态图元素
外部转换,自转 换也是外部转换 外部转换
9.2 状态图元素
9.2.5 复合状态和子状态
复合状态是包含有子状态即嵌套状态的 状态
外借
正常
借书
在库中 还书
过期
9.2 状态图元素
组合/嵌套状态 含有子状态的状态被称为组合或嵌套状态
去掉运行这个大的 为何不在组合中 状态行吗? 加初态、终态? 行,但效果不好 可以将任一子状 态作初态 隐藏子状态,简 化模型复杂度, 增强清晰性
9.2 状态图元素
9.2.2 状态 • 状态详细描述
状态名称 入口动作
输入密码
entry / pwd.reset() exit / pwd.test() clear / pwd.reset() help / display help
出口动作
内部转换
延迟事件 内部活动
print / defer do / suppress echo
9.5 活动图概述
活动图是用来描述达到一个目标所实施一系 列活动的过程,描述了系统的动态特征。 活动图主要由起点/终点、活动、分支、分岔 /汇合、泳道等元素组成。 示例:学生作业处理过程
9.2 状态图元素 子状态(substate) 嵌套在另外一个状态中的状态 空调:停止、运行状态,运行状态中可 嵌套制 冷、制热、除湿等子状态 延迟事件(deferred event) 是指在该状态下暂不处理,但将推 迟到该对象的另一个状态下排队处 理的事件