状态图

上传人:xy****7 文档编号:118702007 上传时间:2019-12-23 格式:PPT 页数:42 大小:3MB
返回 下载 相关 举报
状态图_第1页
第1页 / 共42页
状态图_第2页
第2页 / 共42页
状态图_第3页
第3页 / 共42页
状态图_第4页
第4页 / 共42页
状态图_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《状态图》由会员分享,可在线阅读,更多相关《状态图(42页珍藏版)》请在金锄头文库上搜索。

1、4.2.2 状态图 概述 状态 用于描述一个对象在其生存期间的动态行为,表现对象 响应事件所经历的状态序列以及伴随的动作。 状态图(State Machine Diagram) 用来显示状态,一个状态可用多张状态图描述。 概述 状态图与交互图的区别: 交互图不显示对象所有可能的动态行为,只显示特定交 互(一个具体的用例)中对象的行为。 状态图可以显示对象所有的动态行为。 状态图与活动图的区别: 状态图只建模一个对象的行为,活动图可以建模多个 对象的活动 活动图中也允许建模特定活动中对象的某个状态 基本组成 状态 转换 事件、动作 基本组成(例如刷pos机) 状态 什么是状态(state) 对象

2、生命期中的某个条件或状况,在此期间对象将满足 某些条件、执行某些活动或等待某些事件。 理解 对象在任何时候都会处于某种状态中,所有对象都有状 态。 对象所处的状态决定了它如何响应所检测到的事件或所 接收的消息。 通常,事件使对象从一个状态转向另一个状态(即状态 的转移) 状态 几种类型: 初态 终态 中间状态 组合状态 历史状态 1、初态和终态 初态(start state) 显示状态图中状态的执行(execution)的开始。 一个状态只能有一个初态,因为每一个执行都是从相 同的地方开始的。如果一个状态用多张图描述,则多 张图用同一个初态; 嵌套状态中可以使用新的初态; 终态(End Sta

3、te) 表示一个最后的或者终端状态; 终态的数目可以不确定。 2、一般状态 中间状态的组成: 状态名(name) 进入/退出动作(entry/exit action) 内部转换(internal transition) 不导致状态改变的转换,不会执行 entry 和 exit 动作。 子状态(substate) 嵌套在另外一个状态中的状态。 延迟事件(deferred event) 延迟到下一状态中处理的事件。 lighting entry/ turnO n d o / b l an k F i v e T i m e s e v e n t /po w e r o f f / p o w e

4、 r S u p p l y S el f e x i t / tu r n O f f 2、一般状态 延迟事件 是一种特殊的事件,它是指该事件不会触发状态的转 换,当对象处于该状态时事件不会丢失,但会被延迟执 行。 例如,当E-mail程序中正在发送第一封邮件时,用户下 达发送第二封邮件执令就会被延迟,但第一封邮件发送 完成后,这封邮件就会被发送。这种事件就属于延迟事 件 3、复合状态 含有子状态的状态被称为复合状态。 包括顺序和并发的复合状态 两种表示方法: 3、复合状态 顺序复合状态图(表示方法1) 3、复合状态 顺序复合状态图(表示方法2) 3、复合状态 并发复合状态图 4、子状态 将

5、子状态单独定义,并对其进行命名(通常以大 写字母开头),然后在需要使用的地方来引用它 4、子状态 例: 5、历史状态 History state 一种伪状态。可以存储退出组合状态时所处的子状态, 则返回组合状态时可以直接回到相应的子状态。它用一 个包含字母“H”的小圆圈表示。 5、历史状态 例 当从状态“结账”和“显示购物车”返回子状态“ 显示索引信息”时,将进入的是离开时的历史状态。 也就是说,转到购物或结账区之后,再回到“浏览目录” 的页面时,其中的内容是不变的,仍然保留原来的信 息。 6、入口点和出口点 入口点 状态内的一个外部可见的伪状态,外部转换可以将它作 为目标,从而被有效连接到指

6、定状态上。 出口点 状态内的一个外部可见的伪状态,外部转换可以将它作 为源,代表状态内的一个终点。 转换 Transition 两个状态之间的一种关系,表示对象在第一个状态中执 行一定的动作,并在某个特定事件发生而且满足某个条 件时进入第二个状态。每个转换只允许一个事件,一个 事件只允许一个动作 转换的五要素 源状态 目标状态 触发事件 监护条件 动作 转换类型 描述语法 外部转换 对事件做出响应,引起状态变化或自 身转换,同时引发一个特定动作,如 果离开或进入状态将引发进入转换、 离开转换 事件(参数)监护条 件/活动 内部转换 对事件做出响应,并执行一个特定的 活动,但并不引起状态变化或进

7、入转 换、离开转换 事件(参数)监护条 件/活动 进入转换 当进入某一状态时,执行相应活动entry/活动 退出转换 当离开某一状态时,执行相应活动exit/活动 1、复杂转换 2、各种转换的区别 进入和退出转换: 当进入一个状态时,执行某个动作;或当退出某个状态 时,执行什么动作。这时就可以使用进入和退出转换来 表示 内部转换: 用来处理一些不离开该状态的事件,内部转换只有 一个源状态而没有目标状态,因此转换激发的结果并不 改变状态本身。如果一个内部转换带有动作,动作也要 被执行,但是由于没有状态改变发生,因此不需要执行 入口和出口动作。 事件 Event 是对一个时间和空间上占有一定位置的

8、有意义的事情的 规格说明。 事件触发状态的转移 四类主要事件 信号事件 调用事件 变化事件 时间事件 1、信号事件 信号(signer)事件 所谓信号,是指由一个对象异步地发送、并由另外一个 对象接收的一个已命名的对象。 信号事件表示对象接收到某个信号。 信号可以作为状态中一个状态转换的动作而被发送, 也可作为交互中一个的消息发送。 1、信号事件 2、调用和变化事件 调用(call)事件 表示一个操作的调度。请求调用另一个对象的操作。 一般是同步调用。 变化(change)事件 用关键字When,后面跟布尔表达式。 When(temperature 120) / alerm() 3、时间事件

9、时间(time)事件 满足某一时间表达式的情况的出现,例如到达某一时间 或经过了某一时间段。用关键字After或When表示。 总结:借书例子所展示的关 键元素:初始状态、最终状 态、转移、事件、条件。 UML中状态被赋予4个特定 事件 entry指进入(激活)状态时 要执行的动作(或者方法) Do指对象状态保持不变时 持续执行的动作(或者类方 法),它不会因为event停止 ; event事件指对象接收到某 个事件时件执行的动作,这 个动作不会导致对象状态的 变化,可以通过绘制一条返 回状态自身的转移来表示动 作的执行结果; exit指活动在退出(结束)时 要进行的动作 状态图 状态图显示一

10、个状态机 建模:状态机对模型元素的动态行为进行建模, 就是对系统行为中受事件驱动的方面进行建模 业务阶段:通常使用状态图来说明业务角色或业 务实体可能的状态导致状态转换的事件和状 态转换引起的操作 状态机用于描述实体类对象的整个生命周期内 的状态变迁以获得对这个实体的理解,同时获 得系统和实体对象相互影响的关系 状态图 设计实现:对于类对象所有可能的状态, 状态图都显示它可能接收的消息、将执行 的操作和在此之后类的对象所处的状态 状态机主要用于描述对象的状态变化以确定 何种行为改变了对象状态,以及对象状态变 化对系统的影响 状态图通常只用于描述单个对象的行为,如 果要描述对象间的交互,最好采用

11、时序图或 协作图 状态图的建立步骤 1确定状态机的上下文,它可以是一个类、子系统或整个系统。 2选择初始状态和终结状态。 3发现对象的各种状态。状态属性,行为(确定事件和动作) 4确定状态可能发生的转移。注意分出从一个状态可能转移到 那些状态,对象的哪些行为可引起状态的转移并找出触发状态转移 的事件。 5把必要的动作加到状态或转移上。 6复合状态、子状态、历史状态等概念组织和简化一个复杂的 状态机。 7分析状态的并发和同步情况。 8绘制状态图。 9确认每一个状态在某个时间组合之下都是可到达的。确认没 有一个死端状态,对象不能从该状态转移出来。 源目标无预订部分预订预订完预订关闭 无预订预订()

12、不直接转换关闭() 部分预订退订(),使预订人=0预订(),无空座关闭() 预订完不直接转换退订()关闭() 预订关闭无转换无转换无转换 绘制状态图 绘制状态图 细化状态内的活动与转换 绘制状态图 使用复合状态 状态图应用 用途 对对象生命周期建模: 主要描述对象能够响应的事件、对这些事件的影响以及过去对当 前行为的影响 对反应型对象建模: 这个对象可能处于的稳定状态、从一个状态到另一个状态之间 的转换所需的触发事件,以及每个状态改变时发生的动作 状态图既可以用来表示一个业务领域的知识,也可以 用来描述设计阶段对象的状态变迁 状态图应用 订单处理系统 状态图应用 复合(rose) 状态图应用

13、复杂图 (售票机) 状态图案例分析 一个电子商务系统在订单发生时经过的状 态变化。 状态图案例分析 订单成立状态 主要有: 订单成立 订单取消(Guard:会员订单-缴款期限已过期) 备货中(Guard:已付款、订单成立、库存量足够) 出货中(Effect:扣除商品可接单量及移除购物车中的购买资料 ) 出货确认(Guard:实际配达日及发票代码、号码均不为空值) 出货完毕(Guard:实际配达日不为空) 出货失败 订单成立(Guard:出货完毕,已付款、鉴赏期结束日期 小于等 于 系统日期) 状态图案例分析 分析: 1、购物车生成订单进入状态【订单成立】 2、系统检测订单已经付款并且库存量足够,则进入状态【备货 中】 3、物流发货,进入状态【发货中】,状态转移为【发货中】后 ,需要做的操作有“扣除商品可接单量及移除购物车中的购买资料” 4、发货完毕后,状态分为【出货确认】和状态【出货失败】, 如果状态是【出货失败】,则【结束】,如果状态为【出货确认】, 则进入下一步。 5、配货人员填写实际配达日期,进入状态【出货完毕】。 6、如果”已付款、鉴赏期结束日期 小于等于 系统日期”,则【订 单成立】。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号