- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章
状态机图
UML建模 设计与分析-状态机图
本章的主要介绍状态机的含义、作用、构成及其创建和应用。学习要点是:
● 理解状态机及其构成。
● 掌握状态机图中的基本标记符。
● 理解转移的概念。
● 掌握事件和动作的含义及使用。
● 理解子状态机图组合状态。
● 掌握同步状态、历史状态的使用。
通常状态名英文的首字母要大写,并且最好给状态一个以“ing”为结尾的名字。(例如“Dialing”、“Faxing”)。当然有时也无法起这样的名字(例如“Idle”)。
状态机是展示状态与状态转换的图
状态机是一个类的对象所有可能的生命历程的模型。
当对象探测到一个事件后,它依照当前的状态做出反应,反应包括执行一个动作和转换到新状态。
什么是状态图
UML状态机图能够展示这种变化,描述了一个对象所处的可能状态以及状态之间的转移,并给出了状态变化序列的起点和终点。
状态机图也叫状态(state),或状态表( statechart)。
状态机图与类图、对象图和用例图有着本质的不同。前面章节介绍过的这3种图能够对一个系统或者至少是一组类、对象或用例建立模型。而状态图只是对单个对象建立模型。
表征系统变化的方法可以说成是对象改变了自己的状态(state)以响应事件和时间的流逝。例如:
当你拉下电灯的开关时,电灯改变了它的状态,由关变为开。
当你按下远程遥控器的调频按钮时,电视机的状态由显示一个频道的节目变为显示另一个频道的节目。
经过一个适宜的时间后,洗衣机可以由洗涤变为漂洗状态。
状态图机与活动图的区别
状态机图只建模一个对象的行为,活动图可以建模多个对象的活动
活动图中也允许建模特定活动中对象的某个状态
基本组成
状态 (State)
转移 (Transition)
事件 (Event)
活动 (Activity)
动作 (Action)
状态机图中的标识符有:
状态、初始状态、终结状态、转移、判定决策点和同步。
状态机图标记符
下图显示了圆角矩形代表一个状态,状态间带箭头的实线代表状态的迁移(转移)。箭头指向目标状态。图中的实心圆代表状态转移的起点,公牛眼形圆圈代表终点。
状 态
状态是指对象某个时刻存在的方式,如休眠、打印、验证等。
状态的4种形式
添加动作的状态,状态名与动作中间以一条斜线隔开
状 态
状态是对象执行某项活动或等待某个事件时的条件和状况
状态是给定类的对象的一组属性值,这组属性值对所发生的事件具有相同性质的反应。
对象在任何时候都会处于某种状态中,所有对象都有状态。
对象所处的状态决定了它如何响应所检测到的事件或所接收的消息。
通常,事件使对象从一个状态转向另一个状态(即状态的转移)
开始状态
结束状态
一般状态
复合状态
历史状态
状 态
简单(一般)状态
状态名
进入/退出动作
在进入和退出状态时所执行的动作。
entry/动作 exit/动作
内部转换
在不使状态发生变更的情况下进行的转移。
事件名[监护条件]/动作
延迟事件
延迟到下一状态中处理的事件
表示:事件/defer
子状态
嵌套在另外一个状态中的状态
组合状态
包含子状态的状态称为组合状态(Composite State)
将子状态机单独定义,对其进行命名(通常以大写字母开头),然后在需要使用的地方来引用它
例
顺序状态
如果一个组成状态的子状态对应的对象在其生命周期内的任何时刻都只能处于一个子状态,也就是说状态机图中多个子状态是互斥的,不能同时存在,这种子状态被称为顺序状态或互斥状态或不相交状态。在顺序状态中最多只能有一个初态和一个终态。
并发子状态
有时组成状态有两个或多个并发的子状态,此时称组成状态的子状态为并发子状态。
如果并发子状态中有一个子状态机比其它并发子状态先到达终态,先到的将等待,直到所有子状态到达终态。
并发子状态
同步状态
同步状态是连接两个并发状态区域的特殊状态。
组合状态图区域之间是独立的,如果要求对并发区域之间的控制进行同步,就需要同步状态。
历史状态
历史状态用于在复杂的组合中标记转移过后需要返回的状态。
UML状态机图中历史状态分为浅历史状态(历史状态)和深历史状态(详细历史状态)两种。
例
当从状态“结账”和“显示购物车”返回子状态“显示索引信息”时,将进入的是离开时
文档评论(0)