第6章-系统动态建模—状态模型01.418

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.3 状态迁移的触发与描述 ➢ 6.3.1 状态的迁移触发 ➢ 6.3.2 引起状态迁移触发的事件 ➢ 6.3.3 引起状态迁移触发的条件 ➢ 6.3.4 触发状态迁移的动作表达式 ➢ 6.3.5 状态迁移的分类
6.1 状态图的基本组成成分 ➢ 6.1.1 对象状态的基本描述图符 ➢ 6.1.2 状态的迁移 ➢ 6.1.3 一个无人职守电梯升降的状态图
出现某一事件:引起迁移的事件在迁移线上 ➢ 当原状态的对象收到一个事件,并且满足当前条件 时,首先执行引起迁移的事件中的动作,然后迁移 到新的状态,执行新状态中的内部动作
自动触发:迁移线上没有标识触发迁移的事件
如果内部活动正在进行,有一个转移被触发,此时内部活 动会被终止,然后执行活动的出口动作。
状态 状态指对象的生命周期中满足某些条件、执行某些活动或者 等待某些事件时的状况或情况。
人:青年、中年、老年 电话机:通话、闲置
思考:对象的状态通过什么体现出来?一个对象有多少种 状态?
注意:状态本质上就是对象属性的值,状态的变化 就是属性值的变化。
在由对象的全部属性值集合 所构成的笛卡儿积中,尽管 每一个元素均可广义地称为 对象的一个状态,但软件开 发者需要认识的是这个笛卡 儿积上的每一个等价集合, 即使对象的操作呈现相同行 为规则的属性值的集合。把 每一个等价集称为对象的一 种状态。
6-5 一个设备使用状况的状态图
6-6 描述设备(车床)状况的嵌套状态图
6.2.2 简单状态与嵌套状态
简单状态对应一个动作,而嵌套状态中的每个被嵌套的状 态图都对应于该嵌套状态内正在进行的一个活动。
动作:一组可执行的语句,动作具有以下特征: ➢ 迁移性:与状态迁移有关; ➢ 原子性:这组语句不可中断; ➢ 连续性:一组语句必须连续执行,直到完 毕。
6.1 状态图的基本组成成分 6.2 状态的分类与描述 6.3 状态迁移的触发与描述 6.4 活动图与状态图的比较 6.5 动态状态模型建模案例-信贷管理子系统 补充: 使用rose画状态图
6.1 状态图的基本组成成分 ➢ 6.1.1 对象状态的基本描述图符 ➢ 6.1.2 状态的迁移 ➢ 6.1.3 一个无人职守电梯升降的状态图
历史指示器用来记录状态图内部的历史状态,用里面 标有H (history)的圆圈表示。
历史计数器是一个伪状态。
6-9 带有历史指示器的软件安装过程状态图
为什么要建模状态图
状态图除了可以用于描述对象接收事件触发时的行为状态外, 它还可以用于许多其他情况。
例如,状态图可以用来说明基于用户输人的屏幕状态改变,也 可以用来说明复杂用例的状态进展情况。
接合。下图所示为并发杆的标记符。
5.状态长式图符
一个状态的图符由状态名、状态变量和内部活动3个部 分组成。 ➢ 状态名:一个状态图中,状态名唯一;可以由匿名 状态名 ➢ 状态变量:是状态图所描绘的类的属性(任选项) ➢ 活动:列出了该状态时要执行的事件和动作(任选 项),
活动的3个标准事件
entry:指明进入状态时的特定动作,前面加上entry和 “ / ”。不可中断。
可建模状态图的对象有: •类 •用例 •子系统 •整个系统
6.1 状态图的基本组成成分 ➢ 6.1.1 对象状态的基本描述图符 ➢ 6.1.2 状态的迁移 ➢ 6.1.3 一个无人职守电梯升降的状态图
6.2 状态的分类与描述 ➢ 6.2.1 对象的状态属性 ➢ 6.2.2 简单状态与嵌套状态 ➢ 6.2.3 状态的顺序迁移-顺序状态 ➢ 6.2.4 状态的并发迁移与同步-并发状态与同步 ➢ 6.2.5 嵌套状态中的历史状态指示器
4
初始状态
如果无效 则重复状态 1
状态1
如果有效 则转换状态 2
状态2
最终状态
状态图
实体的生存期比较复杂时,需要状态图对类的所有实例的 生命周期建模。
大多数面向商业的应用中的类不需要状态图 以下情况经常使用状态图
➢ 动态模型中产生或接收大量信息的类 ➢ 界面类 ➢ 实时系统中的类
主要内容
➢ 开始状态和结束状态标记符是指示模型的开始和结束状 态的特殊标记符。模型中的开始状态是一个实心点。结束 状态是带有圆圈的实心点。
➢ 模型不必同时具有开始和结束状态,因为模型可以总是 运行,从不停止。
➢ 一个状态图只能有一个初态,状态图中也可以包含多 个结束状态,每一个都表示一个模型能够终止的点。
6.1 状态图的基本组成成分 ➢ 6.1.1 对象状态的基本描述图符 ➢ 6.1.2 状态的迁移 ➢ 6.1.3 一个无人职守电梯升降的状态图
6.2 状态的分类与描述 ➢ 6.2.1 对象的状态属性 ➢ 6.2.2 简单状态与嵌套状态 ➢ 6.2.3 状态的顺序迁移-顺序状态 ➢ 6.2.4 状态的并发迁移与同步-并发状态与同步 ➢ 6.2.5 嵌套状态中的历史状态指示器
第六章 系统动态建模—状态模型
本章目的:
●了解对象状态变化和活动变化的描述方式 ●掌握UML绘制状态图的方法 ●掌握状态模型中并发行为的描述方法 ●掌握用状态图和活动图建立对象动态行为模
型的方法和步骤
模型表示系统静态和动态的行为。 这种表示形式可为同一系统提供不同的视角
系统结构方面
系统的过程和行为的集合
6.2 状态的分类与描述
6.2.1 对象的状态属性
广义上讲,对象属性的任何不同值的组合就是对象的一 个状态,全部状态的集合描述了一个对象的状态空间。
对于确定对象的状态有重要意义的属性就是状态属性。 状态属性的特征是: ➢ 一般具有少量的可选值 ➢ 属性值的转换有一定的限制
在建立状态模型时,要正确地找到一个对象的全部状态 属性,并根据它们的值划分对象的状态
状态图的描述图符
状态图由状态、迁移和事件组成。联合使用状态和 转移可以更好地建模它们,有时需要包含决策点和同步 条来显示更高层次的细节信息。
1、 状态 状态图中共有3种独立的状态标记符,如下图所示
基本状态显示为圆角图形。状态的名称放在矩形中。这 种标记符代表模型中满足条件的一个点。例如,诊断机 的状态示例可能包含开、关、诊断和空闲等。标准状态 的名称指示满足了什么条件,如下图所示。
前进和低速 后退和低速
前进和高速 后退和高速
6-6 描述设备(车床)状况的嵌套状态图
6.2.3 状态的顺序迁移-顺序子状态
顺序状态也称为不相交状态,表明状态图中的状态并 没有并发迁移现象,状态之间的迁移是串行的,即一 个接一个地顺序迁移。
顺序状态可以和嵌套状态接合在一起使用。
6.2.4 状态的并发迁移与同步并发子状态
6.2 状态的分类与描述 ➢ 6.2.1 对象的状态属性 ➢ 6.2.2 简单状态与嵌套状态 ➢ 6.2.3 状态的顺序迁移-顺序状态 ➢ 6.2.4 状态的并发迁移与同步-并发状态与同步 ➢ 6.2.5 嵌套状态中的历史状态指示器
6.3 状态迁移的触发与描述 ➢ 6.3.1 状态的迁移触发 ➢ 6.3.2 引起状态迁移触发的事件 ➢ 6.3.3 引起状态迁移触发的条件 ➢ 6.3.4 触发状态迁移的动作表达式 ➢ 6.3.5 状态迁移的分类
2.迁移 迁移用来显示从一个状态到另一个状态的处理流。转移
使用从一个状态到另一个状态的开放箭头来标记,如下图 所示。
3.决策点(条件判定) 决策点在建模状态图时提供了方便,因为它通过在中
心位置分组转移到各自的方向,从而提高了状态图的可 视性,如下图所示。
4.同步 状态图中使用并发杆是为了说明并发工作流的分劈和
活动:一组可执行的动作,活动具有以下特征: ➢ 有限性:完整的活动有一定的期限; ➢ 非原子性:这组动作可因某一事件发生而中断。
简单状态:不内含嵌套状态 状态 嵌套状态(组合状态):嵌套了其他状态
子状态:被嵌套的状态
简单状态:A 嵌套状态:B 子状态: C D
为什么会出现子状态?
a:T
(xi,yj)
入口动作与出口动作是不可终止的。
事件的处理顺序
• 当与某个转换关联的事件发生时,执行的顺序为:
✓ 若当前状态下的某个活动正在执行,则终止该活动 ✓ 执行出口动作 ✓ 执行和引起转换的事件相关的动作 ✓ 执行新状态下的入口动作 ✓ 开始执行新状态下的活动
思考:以下动作发生的先后顺序?
6.1.3 一个无人职守电梯升降的状态图
一个状态也可以有多个并发的子状态,并发子状态之 间用虚线分隔,用虚线分隔的每一个区域表示一个并 发的子状态,它有一个名字,并有一个内部的状态图。
按销售合同生产和销售产品的并发子 状态图
6-8 采用同步并发迁移图符描述的并发子状态图
6.2.5 嵌套状态中的历史状态指示器
有时,当离开一个嵌套状态后,又需要重新进入该状 态,但希望直接进入到上次离开该嵌套状态时的最后 一个子状态,而不想从该子状态图的开始状态进入。
6.2 状态的分类与描述 ➢ 6.2.1 对象的状态属性 ➢ 6.2.2 简单状态与嵌套状态 ➢ 6.2.3 状态的顺序迁移-顺序状态 ➢ 6.2.4 状态的并发迁移与同步-并发状态与同步 ➢ 6.2.5 嵌套状态中的历史状态指示器
6.3 状态迁移的触发与描述 ➢ 6.3.1 状态的迁移触发 ➢ 6.3.2 引起状态迁移触发的事件 ➢ 6.3.3 引起状态迁移触发的条件 ➢ 6.3.4 触发状态迁移的动作表达式 ➢ 6.3.5 状态迁移的分类
动态模型的组件
协作图
状态图
动态模型 的组件
顺序图
活动图
状态图(State Diagram)
状态图是系统分析的一种常见工具, 用于描述系统或单独对象的外部可见行为。
UML中的状态图主要用于建立类或对象的动态行为模型, 表现一个对象所经历的状态序列,引起状态或活动转移的 事件,以及因状态或活动的转移而伴随的动作。
设备使用状况的状态图例子
根据以下描述,完成一个设备使用情况的状态图
➢ 一个正常使用的设备如果损坏,将送去维修,修好后 可重新投入使用,否则就将报废。
➢ 正常使用的设备如果是多余的,将被闲置,闲置的设 备随时可重新使用,但闲置超过一定年限后将被报废。
➢ 正常使用的设备在启动后将从待机然后提速至正常运 行,减速后回到待机。
exit:指明退出状态时的特定动作, 前面加上exit和“ / ”。 不可中断。
do:指明在该状态中执行的动作, 前面加上do和“ / ”。 活动是可中断行为,可以在对象处于该状态时运行完毕,也 可以在对象转入另一状态时中断。
6.1.2 状态的迁移
一个对象从一个状态改变成另一个状态称为状态迁移 状态的迁移用连接这两个状态的实箭线表示。在状态的迁
当x取值为“未借出”时, y的任何取值都"或关系"和"与关系"两种关系。 或关系说明在某一时刻仅可到达一个子状态。例如,
一个处于行驶状态的汽车,在"行驶"这个复合状态中 有向前和向后两个不同的子状态,在某一时刻汽车要 么向前,要么向后。
子状态的关系
与关系说明复合状态中在某一时刻可同时到达多个子 状态(称为并发子状态)。具有并发子状态的状态图称为 并发状态图。
对象a的全部状态由属性x、y的取值的排列组合形成。 但有时候当x取一个值xk时,y的任何取值都没有意义。
(xk,y1)
(xk,y2)
(xk,yn)
book1 : Book
属性x表示是否借出(x=已借出,未借出) 属性y表示是否超期(y=超期,正常)
(已借出,超期) (已借出,正常) (未借出,超期) (未借出,正常)
移箭线上写上引起该迁移的事件、条件和动作。 当事件发生时,动作发生,执行从一个状态到另一个状态
的迁移,称为迁移点火或状态触发。
迁移
迁移描述对象在两种状态间的转变。当某个特定事件发生 并且满足特定的条件,对象操作特定的动作,进入另一个 状态。
•源状态 •目标状态 •触发事件 •监护条件 •动作
引起状态迁移的原因
6.3 状态迁移的触发与描述 ➢ 6.3.1 状态的迁移触发 ➢ 6.3.2 引起状态迁移触发的事件 ➢ 6.3.3 引起状态迁移触发的条件 ➢ 6.3.4 触发状态迁移的动作表达式 ➢ 6.3.5 状态迁移的分类
6.1 状态图的基本组成成分
6.1.1 对 象 状 态 的 基 本 描 述 图 符
相关文档
最新文档