




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、UML Unified Modeling Language统一建模语言Lecture六 状态机/图,杜育根 ,2,Outline,状态机 状态图 本讲重点 事件 状态 转移 状态图,3,事件、信号,事件 Event 是对一个在时间和空间上占有一定位置的有意义的事情的描述 一个事件是一次激励的发生,该激励导致状态的转移 UML 对4种事件进行建模 状态的一次变化 信号 调用 时间事件和变化事件 信号 Signal 信号是消息的类元,或类型 消息是一个具名的对象,它由一个对象异步地发送给另一个对象接收 信号是一个异步事件,4,事件、信号,时间事件 和 变化事件 时间事件 是表示一段时间的推移 用关
2、键字after 后面跟着时间表达式 用关键字at 表示某个绝对时间点上发生的时间事件 变化事件 表示状态的一个变化或某些条件得到满足的事件 用关键字 when后跟一个布尔表达式,当条件满足,则引发变化事件,5,1. 状态图,状态图建模的语境 状态机主要用于描述:对象的行为必须响应异步消息 它的当前行为依赖于过去的历史信息 简单、独立的行为,或当前的行为并不依赖它们的过去 时,不需要用一个状态机建模,如:对象的创建、撤销 建模准则: 建模具有复杂行为并依赖于状态的对象而不是建模跟状态无关的对象 如电话对于按下某个按钮的反应,依赖于手机当前的状态 在过程控制、设备控制、协议处理和通信领域等,通常有
3、许多的依赖于状态的对象。,6,1. 基本概念,使用交互图建模共同工作的 对象群体的 行为 使用状态机,可以 对 单个对象的 或单个 系统的行为建模 描述对象在其生命期中,由事件所引起的状态序列变化以及对这些事件的响应。 注意: 活动图是强调 从活动到活动的控制流 状态图是强调 对象潜在的状态和这些状态之间的转移,7,1. 基本概念,定义 状态(state): 是对象的生命期中的一个条件或状况 在此期间,对象可以响应事件、执行某活动等 状态机(state machine) :说明对象在它的生命期中响应事件所经历的状态序列以及它们对那些事件的响应。 状态图(state diagram):状态图可视
4、化表示状态机。状态图强调从状态到状态的转移。 事件(event): 是对一个在时间和空间上占有一定位置的有意义的事情的描述。 在状态机的语境中,一个事件是一个激励的发生,它能够触发状态的转移。 转移/迁移(transition): 是两个状态之间的一种关系。它指明对象在某个状态中执行一定的动作,并当特定事件发生或特定的条件满足时进入下一个状态。,8,1. 基本概念,UML 状态的的图形表示 圆角 的矩形 初态、终态 转态迁移:带箭头的线 迁移的文字标记的格式如下: 触发事件触发条件/变迁动作 迁移的文字标记的三个部分以及文字标记本身都是可以省略的,初态,终态,9,2. 状态的迁移,状态有以下几
5、个部分组成: 1)名称(name) 每个单词首字母大写 2)进入/退出动作(entry/exit action) 3)内部转换(internal transition): 不离开该状态,处理相关事件 4)子状态 (substate) 5)延迟事件 (deferred event),10,2. 状态的迁移,迁移 在事件的刺激、触发下,对象从一个状态进入另一个状态。,一个迁移由5部分组成 源状态 source state 事件触发器 event trigger 监护条件 guard condition 效应(effect) 可执行的动作 目标状态 自身转移 如 switchOnNoPower 已经
6、退出Black状态,然后满足条件又进入Black状态,自身转移 不同于内部转移,11,3. 高级状态和迁移,高级状态和迁移 进入动作(entry/.) 每当进入该状态时,就执行它的进入动作 退出动作(exist/.) 每当离开该状态时,就执行它的退出 注意:进入和退出动作 不可以有监护条件 如c+,构造函数 和析构函数,12,3. 高级状态和迁移,高级状态和迁移 内部转换 内部转换不同于 自身转换 内部转换只执行内部的动作, 不执行进入/退出动作 Do 活动 当对象处于某一个状态时,执行的活动 UML 用特殊的do 转换来表示 延迟事件 处于状态A, 来了事件e, 在A中不处理。当系统到了状态
7、B时,处理消息e。,13,4. 子状态机,子状态是嵌套在另一个状态中的状态,14,4. 子状态机,15,4. 子状态机,非正交子状态:转态不相交,一次只能处于一个子系统 正交子状态 在一个语境中,并发地执行两个或多个状态机,16,4. 子状态机,分岔和汇合 分岔:从一个外部状态直接迁移到一个或多个正交状态 从带有正交区域的组合状态内的任一状态离开的迁移导致控制离开所有的其它正交区域 例如,发生错误,从而迫使所有并行计算都被中断,17,5. Example,18,5. Example:特定字符串处理 状态机,对反应型对象建模 其全部动作都附加到转移上的状态机,称为米利机(Mealy Machin
8、e) 课本p257, 图25-2, 该机器被设计成能分析与语法相匹配的字符流: string ; (Note: 消息体;),19,代码生成,class MessageParser public boolean put(char c) switch (state) case Waiting: if (c = ) state = GettingBody; else token.append(c); break; case GettingBody : 。 ,20,案例:Application Manager,21,案例:Application Manager,AM will keep each ap
9、plications state: Application has these stable states: Created Initialized Activated Focused And these transient state: INITIALIZING ACTIVATING DEACTIVATING FOCUSGAINING FOCUSLOSING TERMINATING,22,案例:Application Manager,23,案例:Application Manager:状态表,24,案例:Application Manager:状态表,25,Source code for:
10、givefocus,void iams_in_req_givefocus_ind( const eAM_APPLI AppID, const eAM_CAUSE cause ) eAM_STATE State = cAM_SS_NONE; iams_get_app_curr_state(AppID, ,26,6. 练习一,用状态图来表示 销售处理 状态: WaitingForSale EnteringItems WaitingForPayment AuthorizingPayment,27,用状态图来表示:销售处理,练习二,会员管理的状态图 可能的状态有:登录后台管理系统,会员管理模块,会员删除状态,会员修改状态,会员权限状态,数据更新页面,错误页面。,29,小结,事件(Event),是指对一个在时间和空间上占据一定位置的有意义的事情的规格说明。 事件包括信号、调用、时间推移或状态改变。 状态(State)是指在对象的生命周期中满足
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 熔炉内衬材料选择与应用考核试卷
- 3-11全加器电子课件教学版
- 水产加工品安全风险管理与质量控制措施考核试卷
- 游艺用品生产项目管理与风险控制考核试卷
- 电视机制造业的售后服务体系建设考核试卷
- 滚动轴承的超声波检测技术考核试卷
- 辽宁省高二会考语文作文
- 教学工作参考总结高中语文教学年终工作参考总结
- 小学二年级寒假数学口算练习题
- 针刺伤的防护与应急处理 2
- GB/T 20899.1-2019金矿石化学分析方法第1部分:金量的测定
- 太阳能光伏发电原理及其应用
- GB 150-1998钢制压力容器
- 工程联系单(模板)
- 2023年海南省财金集团有限公司招聘笔试模拟试题及答案解析
- 耳聋与人工耳蜗植入术课件
- 公司奖项申请表(个人)
- 机油滤清器工作原理剖析
- 工程施工资源配置计划施工资源配置计划
- 高中美术教案3-12地域的永恒魅力1
- 安全生产管理组织机构设置图
评论
0/150
提交评论