UML设计模式 5 动态建模(2)-状态模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UML和设计模式
20
不同点
a) 触发一个系统或对象的状态(活动)发生迁
移的机制不同。 状态图:必须有事件触发才能发生迁移。
活动图:活动执行完毕自动发生迁移。 b) 描述多个对象共同完成一个操作的机制不同。 状态图:针对一个系统或某一个对象描述在其 生存期内的行为、所经历的状态序列、引起 状态注意的事件以及相应的动作。 活动图:描述几个对象共同完成一个操作或用 例实例所需的活动。
UML和设计模式 21
对象所处的状态可因某种原因而改变,如:某种事件
发生、满足某一条件、动作执行完毕等。 状态图的迁移上须注明引起迁移的事件、条件或动作。
UML和设计模式
11
描述迁移的语法格式:
事件 [条件] / 动作表达式 发送子句
事件:指已发生并可能引发某种活动的一件事; [条件]:由方括号围起的关系或逻辑表达式; 动作表达式:触发状态迁移时可执行的动作;
状态图:
状态图(Statechart diagram)用于描述一个对象 在其生存周期内的动态行为, 表现一个对象所经历的 状态序列, 引起状态转移的事件(event), 以及因状态转 移而伴随的动作(action).
UML和设计模式
4
5.2 状态图
状态
起始状态
迁移 事件
某机器的状态图
终止状态
UML和设计模式
UML和设计模式 9
Lighting
entry/ turnOn do/ blinkFiveTimes event powerOff/ powerSupplySelf exit/ turnOff event selfTest/ defer
UML和设计模式 10
(2) 迁移
一个对象从某种状态变为另一种状态称为Fra Baidu bibliotek移。
UML和设计模式
15
描述设备(车床)状况的嵌套状态图
UML和设计模式 16
历史状态分为两种:浅历史状态、深历史状态
浅(shallow)历史状态, 只记录最外层组合状态的 历史. 深(deep)历史状态, 可以记录任意深度的组合状态 的历史. 历史状态指示器可以有进入它的状态迁移,但没有 离开它的状态迁移.
权 巍
主要内容
动态建模——状态模型 状态图 活动图与状态图的比较
UML和设计模式
2
5.1 动态建模——状态模型
动态建模
交互建模
状态建模
顺序图
合作图
状态图
活动图
UML和设计模式
3
活动图:
活动图(Activity diagram)用来表示完成一个操作 所需要的活动,或者一个用例场景的活动。是一种流 程图,描述了活动的序列,即系统从一个活动到另一 个活动的控制流。
UML和设计模式
17
(4) 并发的状态
UML和设计模式
18
5.3 活动图与状态图的比较
状态
活动
相同点:
a) 建模的图符基本一致。 b) 描述系统或对象在生存期内的状态或行为。
c) 可描述系统或对象在多进程操作中的并发行为。
d) 可用条件分支描述系统或对象的行为控制流。
UML和设计模式
19
描 述 “ 增 加 课 程 ” 用 例 的 活 动 图
状态名
UML和设计模式
7
一个设备使用状况的状态图
UML和设计模式 8
活动区中的事件和动作的语法: 事件名(参数表)/ 动作表达式
其中,事件可以是UML定义的事件,也可以是用户自
定义的事件。 UML中的常用事件包括:
entry、exit、do:入口、出口事件、状态中执行的事
件 after:“after(时间表达式) / 动作” defer:“事件名 / defer” when:“when(逻辑表达式) / 动作” error:“<<error>>出错事件名”
5
状态图的建模元素
UML和设计模式
6
(1) 状态
状态是对象在其生存期中的一种条件或状况,如进行
某些活动、等待某种事件出现等。 状态通常由其属性值、与其它对象的链接来确定。 对象的状态的数量是有限的。 状态的图符分为长式、短式两种。 其中,状态变量是状态图所描述的类的属性; 活动是在该状态时要执行的事件和动作。
例: when(温度>100)/ 停止加热 / 指示灯熄灭
发送子句:动作的一个特例,说明调用的事件名 (操作)是哪个对象的。
例如:[超时] / self.下降(第一层)
UML和设计模式 12
UML和设计模式
13
两种形式的状态迁移示例
UML和设计模式 14
(3) 嵌套状态、历史状态
状态可以嵌套,在一个状态的图符内部可添加一 个或多个子状态组成的子状态图,称为状态的嵌 套。 历史状态是伪状态,其目的是记住从嵌套的状态 中退出时所处的子状态, 当再次进入嵌套的状态时, 可以直接进入这个子状态, 而不是再从嵌套的状态 的初态开始。