- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验七 状态图 《软件工程》第四版 状态图 状态图描述一个实体在事件刺激下的动态行为。 它包含实体所有可能的状态、在每个状态下能够响应的事件以及事件发生时的状态变迁与响应动作。 用来描述一个类的典型对象、软件系统或系统的行为。 相关概念 状态: 对象的状态对应于对象的属性构成的一个约束条件,或对象的具有统一行为模式的某个生命周期阶段。 事件: 在对象的生命周期中某个时刻点上发生的,值得关注的针对该对象的一种瞬时刺激或触动。 消息型事件:消息名[(参数表)] 信号型事件:信号名[(参数表)] 时间型事件:时间到到这指定的绝对时刻点或到达指定时间之后的相对时刻点:at(绝对时刻点),after(相对时刻点) 条件型事件:对象所处环境及对象属性值的变化导致某个条件成立:When(条件表达式) 相关概念 活动(Activity)和动作(Action) 计算过程可以向对象发送同步或异步信号,创建或删除对象等。 差异 动作位于状态之间的迁移边上,比较简单,执行时间短; 活动位于状态中,它可以比较动作复杂,执行时间长。 基本机制 状态图由状态节点和迁移(Transition)边构成。迁移边表示状态之间因事件激励而触发的对象状态变化。 同时还包含两种特殊的状态:初态和终态。 基本机制 状态节点 由状态名、可选的入口活动、出口活动、do活动和内部迁移构成。 一旦对象经迁移边从其它状态进入本状态,那么本状态的出口活动将被执行。 一旦对象经迁移边从本状态进入其它状态,那么本状态的出口活动将被执行。 Do活动是当对象进行本系统状态并执行完入口活动(如果有)后应该执行的活动。 内部迁移不会引起对象状态变化,除此之外,与外部迁移相同。 基本机制 (外部)迁移 表示为状态节点之间的有向边,自迁移是指源状态节点与目标状态节点相同的特殊的外部迁移。 在有向边上标注:[事件][监护条件][/动作] 事件:触发此次状态变迁的事件 监护条件:约束状态迁移真正发生的条件表达式 动作:状态迁移期间应当执行的动作。 基本机制 初态与终态 均为特殊的状态,其中初态还是一种伪状态(Psedo State),它并不真正对应对象的属性值的约束。 一张状态图中应该恰有一个初态,可以有一到多个终态。 初态和终态不能包含任何活动或内部迁移。初态只能发出迁移边,终态只能作为迁移边的目标。 状态图的组成 1. 顺序组成状态 如果一个组成状态的多个子状态之间是互斥的,不能同时存在的,这种组成状态称为顺序组成状态。 一个顺序组成状态最多可以有一个初始状态和一个终态。 状态图的组成 2. 并发组成状态 在一个组成状态中,可能有两个或者多个并发的子状态,我们称这样的组成状态为并发组成状态。每个并发子状态还可以进一步分解为顺序组成状态。 一个并发组成状态可能没有初始状态,终态,但是嵌套在它们里的任何顺序组成状态可包含这些伪状态。 创建状态图案例分析 1. 确定状态图的实体 要创建状态图,首先要标识出哪些实体需要使用状态图进一步建模。虽然我们可以为每一个类、操作、包或用例创建状态图,但是这样做势必浪费很多的精力。一般来说,不需要给所有的类都创建状态图,只有具有重要动态行为的类才需要。 从另一个角度看,状态图应该用于复杂的实体,而不必用于具有复杂行为的实体。使用活动图可能会更加适合那些有复杂行为的实体。具有清晰、有序的状态实体最适合使用状态图进一步建模。 对于聊天系统来说,需要建模的实体就是用户的状态。 创建状态图案例分析 2. 确定状态图中实体的状态 对于一个用户来说,它的状态主要包括: 未注册 未登录 已登录 查找好友 新增好友 删除好友 聊天 修改个人信息 创建状态图案例分析 3. 创建完整状态图 当确定了需要建模的实体,并找出了实体的初始状态和终止状态以及其他相关状态后,就可以着手创建状态图。 首先,我们要找出相关的事件和转换。对于聊天系统的用户来说,当用户没有注册系统时,处于未注册状态;当用户登录系统后,处于已登录状态;当用户进行各种操作时处于操作状态;当用户退出时处于未登录状态。
文档评论(0)