第九章 状态图-new.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
状态机 状态机由状态、转换、事件、活动和动作5部分组成: (1)状态指的是对象在其生命周期中的一种状况,处于某个特定状态中的对象必然会满足某些条件、执行某些动作或者是等待某些事件。一个状态的生命周期是一个有限的时间阶段。 (2)转换指的是两个不同状态之间的一种关系,表明对象将在第一个状态中执行一定的动作,并且在满足某个特定条件下由某个事件触发进入第二个状态。 状态机 (3)事件指的是发生在时间和空间上的对状态机来讲有意义的那些事情。事件通常会引起状态的变迁,促使状态机从一种状态切换到另一种状态,如信号、对象额度创建和销毁等。 (4)活动指的是状态机中进行的非原子操作。 (5)动作指的是状态机中可以执行的那些原子操作,所谓原子操作指的是它们在运行的过程中不能被其他消息所中断,必须一直执行下去,最终导致状态的变更或者返回一个值。 9.1.3状态图作用 为什么要使用状态图 状态图的作用主要体现在以下几个方面: (1)状态图清晰的描述了状态之间的转换顺序,通过状态的转换顺序也就可以清晰的看出事件的执行顺序。如果没有状态图我们就不可避免的要使用大量的文字来描述外部事件的合法顺序。 (2)清晰的事件顺序有利于程序员在开发程序时避免出现事件错序的情况。 (3)状态图清晰的描述了状态转换时所必须的触发事件、监护条件和动作等影响转换的因素,有利于程序员避免程序中非法事件的进入。 (4)状态图通过判定可以更好的描述工作流因为不同的条件发生的分支。 9.2 状态图的组成 状态图由状态、转换、事件、活动和动作5部分组成,本节详细介绍。 9.2.4同步 同步条是为了说明并发工作流的分支与汇合。状态图和活动图中都可能用到同步。在UML中,同步用一条线段来表示。 9.2.5事件 在状态机中,一个事件的出现可以触发状态的改变。它发生在时间和空间上的一点,没有持续时间。如接受到从一个对象到另一个对象的调用或信号、某些值的改变或一个时间段的终结。 事件可以分成明确或隐含的几种,主要包括:信号事件、调用事件、改变事件和时间事件等。 使用Rose创建状态图 1. 创建状态图 在Rational Rose中,可以为每个类创建一个或者多个状态图类的转换和状态都可以在状态图中体现。首先,展开“Logic View”菜单项,然后在“Logic View”图标上单击鼠标右键,在弹出的菜单中选择“New”下的“Statechart Diagram”选项建立新的状态图。 使用Rose创建状态图 2. 创建初始和终止状态 初始状态和终止状态是状态图中的两个特殊状态。初始状态代表着状态图的起点,终止状态代表着状态图的终点。对象不可能保持在初始状态,但是可以保持在终止状态。 初始状态在状态图中用实心圆表示,终止状态在状态图中用含有实心圆的空心圆表示。鼠标左键点击状态图工具栏中的“”图标,然后在绘制区域要绘制的地方单击鼠标左键就可以创建初始状态。终止状态的创建方法和初始状态相同。 使用Rose创建状态图 3. 创建状态 首先用鼠标左键单击状态图工具栏中对应图标,然后在绘制区域要创建状态的地方单击鼠标左键。 创建新的状态后,我们可以修改状态的属性信息。双击状态图标,在弹出的对话框“General”选项卡里进行如名称“Name”和文档说明“Documentation”等属性的设置。 使用Rose创建状态图 4. 创建状态间的转换 转换是两个状态之间的一种关系,代表了一种状态到另一种状态的过度,在UML中转换用一条带箭头的直线表示。 要增加转换,首先用鼠标左键单击状态工具栏中的图标,然后再用鼠标左键单击转换的源状态,接着向目标状态拖动一条直线。 使用Rose创建状态图 5. 创建事件 一个事件可以触发状态的转换。要增加事件,先双击转换图标,在出现的对话框的“General”选项卡里增加事件, 接下来,在“Event”选项中添加触发转换的事件,在“Argument”选项中添加事件的参数,还可以在“Documentation”选项中添加对事件的描述。 使用Rose创建状态图 6. 创建监护条件 监护条件是一个布尔表达式,它控制转换是否能够发生。 要添加监护条件,先双击转换的图标,选择出现的对话框中的“Detail”选项卡的“Guard Condition”选项,然后填入监护条件。可以参考添加动作的方法添加监护条件。 创建项目中的状态图 1. 确定状态图的实体 要创建状态图,首先要标识出哪些实体需要使用状态图进一步建模。虽然我们可以为每一个类、操作、包或用例创建状态图,但是这样做势必浪费很多的精力。一般来说,不需要给所有的类都创建状态图,只有具有重要动态行为的类才需

文档评论(0)

dajuhyy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档