- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
细化状态内的活动与转换 使用复合状态 四、状态机图应用 用途 对对象生命周期建模: 主要描述对象能够响应的事件、对这些事件的响以及过去对当前行为的影响 对反应型对象建模: 这个对象可能处于的稳定状态、从一个状态到另一个状态之间的转换所需的触发事件,以及每个状态改变时发生的动作 状态机图既可以用来表示一个业务领域的知识,也可以用来描述设计阶段对象的状态变迁 订单处理系统 复合(rose) 《UML面向对象建模基础》 状态机图 一、概述 状态机 用于描述一个对象在其生存期间的动态行为,表现对象响应事件所经历的状态序列以及伴随的动作。 状态机图(State Machine Diagram) 用来显示状态机,一个状态机可用多张状态图描述。 状态机图与交互图的区别: 交互图不显示对象所有可能的动态行为,只显示特定交互(一个具体的用例)中对象的行为。 状态机图可以显示对象所有的动态行为。 状态图机与活动图的区别: 状态机图只建模一个对象的行为,活动图可以建模多个对象的活动 活动图中也允许建模特定活动中对象的某个状态 二、基本组成 状态 转换 事件 状态 什么是状态(state) 对象生命期中的某个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。 理解 对象在任何时候都会处于某种状态中,所有对象都有状态。 对象所处的状态决定了它如何响应所检测到的事件或所接收的消息。 通常,事件使对象从一个状态转向另一个状态(即状态的转移) 几种类型: 初态 终态 中间状态 组合状态 历史状态 1、初态和终态 初态(start state) 显示状态图中状态机的执行(execution)的开始。 一个状态机只能有一个初态,因为每一个执行都是从相同的地方开始的。如果一个状态机用多张图描述,则多张图用同一个初态; 嵌套状态中可以使用新的初态; 终态(End State) 表示一个最后的或者终端状态; 终态的数目可以不确定。 2、一般状态 中间状态的组成: 状态名(name) 进入/退出动作(entry/exit action) 内部转换(internal transition) 不导致状态改变的转换,不会执行entry 和exit 动作 子状态(substate) 嵌套在另外一个状态中的状态。 延迟事件(deferred event) 延迟到下一状态中处理的事件。 是一种特殊的事件,它是指该事件不会触发状态的转换,当对象处于该状态时事件不会丢失,但会被延迟执行。 例如,当E-mail程序中正在发送第一封邮件时,用户下达发送第二封邮件执令就会被延迟,但第一封邮件发送完成后,这封邮件就会被发送。这种事件就属于延迟事件 3、复合状态 含有子状态的状态被称为复合状态。 两种表示方法: 顺序复合状态图(表示方法1) 顺序复合状态图(表示方法2) 并发复合状态图 4、子状态机 将子状态机单独定义,并对其进行命名(通常以大写字母开头),然后在需要使用的地方来引用它 EG: 5、历史状态 History state 一种伪状态。可以存储退出组合状态时所处的子状态,则返回组合状态时可以直接回到到相应的子状态。 例 当从状态“结账”和“显示购物车”返回子状态“显示索引信息”时,将进入的是离开时的历史状态。 也就是说,转到购物或结账区之后,再回到“浏览目录”的页面时,其中的内容是不变的,仍保留原来的信息。 6、入口点和出口点 入口点 状态内的一个外部可见的伪状态,外部转换可以将它作为目标,从而被有效连接到指定状态上。 出口点 状态内的一个外部可见的伪状态,外部转换可以将它作为源,代表状态内的一个终点。 转换 Transition 两个状态之间的一种关系,表示对象在第一个状态中执行一定的动作,并在某个特定事件发生而且满足某个条件时进入第二个状态。每个转换只允许一个事件,一个事件只允许一个动作 转换的五要素 源状态 目标状态 触发事件 监护条件 动作 1、复杂转换 2、各种转换的区别 进入和退出转换: 当进入一个状态时,执行某个动作;或当退出某个状态时,执行什么动作。这时就可以使用进入和退出转换来表示 内部转换: 用来处理一些不离开该状态的事件 3、带有复杂转换的状态图 事件 Event 是对一个时间和空间上占有一定位置的有意义的事情的规格说明。 事件触发状态的转移 四类主要事件 信号事件 调用事件 变化事件 时间事件 1、信号事件 信号(signer)事件 所谓信号,是指由一个对象异步地发送、并由另外一个对象接收的一个已命名的对象。 信号事件表示对象接收到某个信号。 信号可以作为状态机中一个状态转换的动作而被发送,也可作为交互中一个的消息发送。 2、调用和变化事件 调用(call)事件 表示一个操作的调度。请求调用另一个对象的操作。 一般
文档评论(0)