- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
状态图的建立步骤 ? 1〉确定状态机的上下文,它可以是一个类、子系统或整个系统。 ??? 2〉选择初始状态和终结状态。 ??? 3〉发现对象的各种状态。状态属性,行为(确定事件和动作) ??? 4〉确定状态可能发生的转移。注意分出从一个状态可能转移到那些状态,对象的哪些行为可引起状态的转移并找出触发状态转移的事件。 ??? 5〉把必要的动作加到状态或转移上。 ??? 6〉复合状态、子状态、历史状态等概念组织和简化一个复杂的状态机。 ??? 7〉分析状态的并发和同步情况。 ??? 8〉绘制状态图。 ??? 9〉确认每一个状态在某个时间组合之下都是可到达的。确认没有一个死端状态,对象不能从该状态转移出来。 源目标 无预订 部分预订 预订完 预订关闭 无预订 预订() 不直接转换 关闭() 部分预订 退订(),使预订人=0 预订(),无空座 关闭() 预订完 不直接转换 退订() 关闭() 预订关闭 无转换 无转换 无转换 绘制状态图 绘制状态图 细化状态内的活动与转换 绘制状态图 使用复合状态 状态图应用 用途 对对象生命周期建模: 主要描述对象能够响应的事件、对这些事件的影响以及过去对当 前行为的影响 对反应型对象建模: 这个对象可能处于的稳定状态、从一个状态到另一个状态之间 的转换所需的触发事件,以及每个状态改变时发生的动作 状态图既可以用来表示一个业务领域的知识,也可以 用来描述设计阶段对象的状态变迁 状态图应用 订单处理系统 状态图应用 复合(rose) 状态图应用 复杂图 (售票机) 状态图案例分析 一个电子商务系统在订单发生时经过的状态变化。 状态图案例分析 订单成立状态 主要有: 订单成立 订单取消(Guard:会员订单-缴款期限已过期) 备货中(Guard:已付款、订单成立、库存量足够) 出货中(Effect:扣除商品可接单量及移除购物车中的购买资料) 出货确认(Guard:实际配达日及发票代码、号码均不为空值) 出货完毕(Guard:实际配达日不为空) 出货失败 订单成立(Guard:出货完毕,已付款、鉴赏期结束日期 小于等于 [系统日期]) 状态图案例分析 分析: 1、购物车生成订单进入状态【订单成立】 2、系统检测订单已经付款并且库存量足够,则进入状态【备货中】 3、物流发货,进入状态【发货中】,状态转移为【发货中】后,需要做的操作有“扣除商品可接单量及移除购物车中的购买资料” 4、发货完毕后,状态分为【出货确认】和状态【出货失败】,如果状态是【出货失败】,则【结束】,如果状态为【出货确认】,则进入下一步。 5、配货人员填写实际配达日期,进入状态【出货完毕】。 6、如果”已付款、鉴赏期结束日期 小于等于 [系统日期]”,则【订单成立】。 * * * 4.2.2 状态图 概述 状态 用于描述一个对象在其生存期间的动态行为,表现对象 响应事件所经历的状态序列以及伴随的动作。 状态图(State Machine Diagram) 用来显示状态,一个状态可用多张状态图描述。 概述 状态图与交互图的区别: 交互图不显示对象所有可能的动态行为,只显示特定交 互(一个具体的用例)中对象的行为。 状态图可以显示对象所有的动态行为。 状态图与活动图的区别: 状态图只建模一个对象的行为,活动图可以建模多个 对象的活动 活动图中也允许建模特定活动中对象的某个状态 基本组成 状态 转换 事件、动作 基本组成(例如刷pos机) 状态 什么是状态(state) 对象生命期中的某个条件或状况,在此期间对象将满足 某些条件、执行某些活动或等待某些事件。 理解 对象在任何时候都会处于某种状态中,所有对象都有状 态。 对象所处的状态决定了它如何响应所检测到的事件或所 接收的消息。 通常,事件使对象从一个状态转向另一个状态(即状态 的转移) 状态 几种类型: 初态 终态 中间状态 组合状态 历史状态 1、初态和终态 初态(start state) 显示状态图中状态的执行(execution)的开始。 一个状态只能有一个初态,因为每一个执行都是从相 同的地方开始的。如果一个状态用多张图描述,则多 张图用同一个初态; 嵌套状态中可以使用新的初态; 终态(End State) 表示一个最后的或者终端状态; 终态的数目可以不确定。 2、一般状态 中间状态
文档评论(0)