已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
UML状态机图1. 状态机图的作用状态机图是用来为对象的状态及造成状态改变的事件建模。UML的状态机图主要用于建立对象类或对象的动态行为模型,表现一个对象所经历的状态序列,引起状态或活动转移的事件,以及因状态或活动转移而伴随的动作。状态机图也可用于描述Use Case,以及全系统的动态行为。状态机图表示一个模型元素在其生命期间的情况:从该模型元素的开始状态起,响应事件,执行某些动作,引起转移到新状态,又在新状态下响应事件,执行动作,引起转移到另一个状态,如此继续,直到终结状态。 2. 状态机图的基本元素状态机图的基本元素包括:状态、转移、事件、伪状态和复合状态。状态图由状态(state,圆角矩形)与转换(transition,连接状态的箭头)组成。引起状态改变的触发器(trigger)或者事件(event)沿着转换箭头标示。如图所示灯光有2个状态:off与on。当lift switch或者lower switch事件被触发时,灯光状态会改变。图表 1 状态图的基本元素状态图通常有初始伪状态(initial pseudostate)和最终状态(final state),分别表示状态机的开始和结束。初始状态用实心圆表示,终止状态用牛眼表示。图表 2状态图中的初始伪状态与最终状态2.1 状态(state)状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况。一个状态通常包括名称、进入/退出活动、内部转换、子状态和延迟事件等五个部分组成。图表 3 带分栏的状态在状态图的下面部分可以标识内部活动,包括事件和动作(event/action)。Entry和exit事件是标准的,任何一个进入状态的转换都将会调用entry动作,任何一个退出状态的转换都将会调用exit动作,而且也可以添加自己的事件。与do行为不同,进入和退出行为是无法被中断的。图表 4状态的内部行为例如,咖啡机正在煮咖啡的状态(Brewing),并且可以把行为写在状态内。图表 5状态中do的行为细节内部转换(Internal transition)是对事件做出响应,并执行一个特定的活动,但并不引起状态变化或进入转换、离开转换,用来处理一些不离开该状态的事件。内部转换的表示方法riggerguard/behavior,并且被列在状态内。2.2 转换(transition)转换以箭头显示,描述状态从源状态到目标状态的改变。转换描述(transition description)描述引起状态改变的情况。完整的转换描述表示法是触发器监护条件/转换行为(triggerguard/behavior),每个元素都是可以选择的。图表 6状态图为触发器、监护条件和转换行为之一建模触发器(trigger)是能够引起转换的事件,在图表5处理用户输入的系统里,keystroke触发器可引发系统状态从Gathering input改变到Processing input。监护条件(guard)是允许或封锁转换的一个Boolean条件。如果条件为真,接受该转换;否则,封锁该转换,停留在原状态。示例中,在按键盘键后,触发器运行,如果该输入少于要求的长度,guard可以用来封锁该转换。转换行为(transition behavior)是转换发生时所执行的连续活动。例如,状态从Gathering input改变到Processing input时执行submit input的动作。图5也显示状态可以转换成自身,即self-transition。2.3 伪状态(Pseudo State)伪状态指在一个状态机中具有状态的形式,同时具有特殊行为的顶点。它是一个瞬时状态,用于构造转换的细节。当伪状态处于活动时,状态机还没有完成从运行到完成的步骤,也不会处理事件。伪状态用来连接转换段,到一个伪状态的转换意味着会自动转换到另一个状态而不需要事件来触发。伪状态包括:初始状态、入口点、出口点、选择和合并、结合和分叉、连接、终止和历史状态。入口点是状态内的一个外部可见的伪状态,外部转换可以将它作为目标。包含入口点的状态将成为转换的有效目标状态,在UML中,用状态符号边框的空心圆表示。出口点也是状态内的一个外部可见的伪状态,外部转换可以将它作为源,它代表状态内的一个终态,在UML中,用状态符号边框的十字交叉圆表示。图表 7入口点与出口点选择伪状态用来强调由Boolean条件决定接下来执行哪个转换,根据节点后的警戒条件动态计算选择转换路径,在UML中,用菱形表示,其输出必须包含警戒条件且不能有触发器。合并表示两个或者多个可选的控制路径汇合在一起,在UML中用菱形表示。图表 8选择伪状态分叉和结合伪状态表示分叉成并行状态,然后再结合在一起。在UML中,用一段粗线表示。图表 9分叉与结合伪状态连接是状态机中表示整体转换为部分的一种伪状态。在UML中,连接用小的实心圆表示。图表 10连接伪状态历史伪状态,用于表示退出所属的复合状态后,它会记录复合状态之前处于活动的子状态。历史伪状态包括浅度历史伪状态和深度历史伪状态。浅度历史伪状态用带字母H的圆表示,深度历史伪状态用带字母H和*的圆表示。2.4 复合状态UML中的复合状态(composite state)允许并发(concurrent)的状态,即处在某个状态的对象同时在做一个或多个事情。每个组成状态包含一个或多个状态图的状态,每个图属于一个区域,各区域以虚线分隔,区域内的状态被称为组成状态的子状态。图表 11复合状态包含一个或多个状态图3. 状态机图的例子图表7表示CD播放器的状态图,包括了不同的状态及转换。通过分析这个例子,观察触发器与监护条件如何用来为不同类型的状态改变建模。如果指定了触发器,但是没有监护条件。当触发器被触动时,接受转换。当press stop发生时,CD播放器从Playing状态变为Stopped状态。如果指定了触发器和监护条件,当触发器被触动,并且监护条件为真时,接受转换。在press play发生,并且播放器中有光盘时,CD播放器才会从Stopped状态转换到Playing状
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2020-2025年注册测绘师之测绘综合能力通关题库(附带答案)
- 2023年5月CCAA统考《认证通 用基础》试题及答案
- 职业性慢性轻度汞中毒的护理
- 2025新疆军垦供销连锁有限公司招聘笔试模拟试卷附答案解析
- 2025广西农村合作金融机构秋季新员工招聘390人笔试备考试卷带答案解析
- 北京市顺义区卫生健康委员会面向应届毕业生招聘事业单位100人参考题库附答案解析
- 2026深圳广电集团校园招聘历年真题汇编及答案解析(夺冠)
- 2026年设备监理师之设备监理合同考试题库含完整答案【必刷】
- 四川省第七地质大队关于2025年下半年公开考核招聘工作人员(17人)备考题库及答案解析(必刷)
- 关于公布甘孜州2025年下半年公开考试招聘中小学、幼儿园教师报考人数历年真题汇编及答案解析(夺冠)
- 国家开放大学学生成绩单
- 湖南省普通高中毕业生登记表
- 完整版全国行政区域身份证代码表(EXCEL版)TextMarkTextMark
- 基于CA6150普通车床的数控化改造
- 第一单元 (作业设计)部编版语文四年级下册
- 脑的动脉课件
- 蜜蜂养殖技术课件
- 辅酶Q10幻灯课件
- 13.Arnold(阿诺德)渲染器
- 婚姻法教学精品课件
- 施工现场工程质量管理标准化实施细则
评论
0/150
提交评论