第8章 状态图和活动图.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文档。上传文档
查看更多
第8章 状态图和活动图

8.1 什么是状态图 ○ 定义:用于描述一个对象在其生存期间的动态行为,表现一个对象所经历的状态序列,引起状态转移的事件,以及因状态转移而伴随的动作。 8.1 什么是状态图 ○ 动作与状态相关 VS 动作与转移相关 所有的动作与状态相关:称这个状态机为Moore机 所有的动作与转移相关:称这个状态机为Mealy机 理论上证明: Moore机和Mealy机在表示能力上是等价的 8.1 什么是状态图 ○ 状态图应该在具有以下两个特性的属性上建模 □ 属性拥有较少的可能取值 □ 属性在这些值之间的转移有一定的限制 例如:如果类SellableItem有两个属性salePrice和status, ① salePrice类型为Money,正实数。 ② status枚举类型,取值received、inInspection、accepted、rejected。 8.2 状态图中的基本概念 ○ 状态:指在对象的生命期中的某个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。 状态名 进入/退出动作 内部转移 子状态 延迟事件 8.2.2 组合状态和子状态 □ 嵌套在另一个状态中的状态称作子状态(substate),一个含有子状态的状态被称作组合状态(composite state)。如图8.3所示是组合状态和子状态的例子,其中W是组合状态,E、F是子状态。 8.2.2 组合状态和子状态 8.2.2 组合状态和子状态 □ 子状态之间可分为or关系和and关系两种。 □ or关系说明在某一时刻仅可到达一个子状态。 8.2.2 组合状态和子状态 □ and关系说明组合状态中在某一时刻可同时到达多个子状态。 8.2.3 历史状态 □ 历史状态(history state)是一个伪状态(pseudostate),其目的是记住从组合状态中退出时所处的子状态。当再次进入组合状态时,可直接进入这个子状态,而不是再次从组合状态的初态开始。 8.2.3 历史状态 □ 在UML中,历史状态用符号 H 表示或H*表示,其中H是浅(shallow)历史状态的符号,表示只记住最外层组合状态的历史;H*是深(deep)历史状态的符号,表示可记住任何深度的组合状态的历史。 8.2.3 历史状态 8.2.4 转移 □ 转移(transition)是两个状态之间的一种关系,表示对象将在第一个状态中执行一定的动作,并在某个具体事件发生而且某个特定的警戒条件满足时进入第二个状态。 ■ 描述转移的格式如下: event-signature [ guard-condition ] / action ■ 其中event-signature是事件特征标记,guard-condition是警戒条件,action是动作,而事件特征标记的格式为: event-name ( comma-separated-parameter-list ) □ 其中event-name是事件名,comma-separated-parameter-list是逗号分割的参数列表。 8.2.4 转移 【例8.1】转移的例子。 targetAt(p) [isThreat] / t.addTarget(p) □ 其中事件名是targetAt,p是事件的参数,isThreat是警戒条件,t.addTarget(p)是要做的动作,这里动作的参数p就是事件的参数。这个例子中的转移包含了事件特征标记、警戒条件、动作3部分,根据实际情况,这3部分可以省略一部分或全部省略。 8.2.4 转移 □ 一般状态之间的转移是由事件触发的,因此应在转移上标出触发转移的事件表达式。如果转移上未标明事件,则表示在源状态的内部活动执行完毕后自动触发转移。 8.2.4 转移 □ 对于一个给定的状态,最终只能产生一个转移,因此从相同的状态出来的,事件相同的几个转移之间的条件应该是互斥的。 8.2.5 事件 □ 事件(event)是对一个在时间和空间上占有一定位置的有意义的事情的详细说明。事件产生的原因有调用、满足条件的状态的出现、到达时间点或经历某一时间段、发送信号等。 8.2.5 事件 □ 在UML中,事件分为4类: ① 调用事件 ② 变化事件 ③ 时间事件 ④ 信号事件 8.2.5 事件 1、调用事件(call event)。调用事件表示的是对操作的调度,其格式如下: event-name ( comma-separated-parameter-list ) □ 其中event-name是事件名,comma-separat

文档评论(0)

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

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档