第08章 状态图和活动图.pptVIP

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象分析与设计UML 第8章 状态图和活动图 8.1 什么是状态图 8.1 什么是状态图 8.1 什么是状态图 属性拥有较少的可能取值 属性在这些值之间的转移有一定的限制 8.2 状态图的基本概念 状态, state 组合状态, composite state 子状态, sub state 历史状态, history state 转移, transition 事件, event 动作, action 8.2.1 状态 8.2.1 状态 8.2.2 组合状态和子状态 8.2.2 组合状态和子状态 8.2.2 组合状态和子状态 8.2.3 历史状态 8.2.3 历史状态 8.2.4 转移 8.2.4 转移 8.2.5 事件 8.2.5 事件 8.2.5 事件 8.2.6 动作 * UML中的状态图(Statechart diagram)用于描述一个对象在其生存周期间的动态行为, 表现一个对象所经历的状态序列, 引起状态转移的事件(event), 以及因状态转移而伴随的动作(action). 状态图在检查、调试和描述类的动态行为时非常有用. 起始状态 终止状态 状态 事件 在状态图中,动作可以与状态有关,也可以与转移有关. -- 与状态有关时,对象进行某状态时触发某一动作. -- 与转移有关时,对象在不同状态间转移时,触发相应动作. 状态图描述的对象往往有多个属性, 应该在具有如下特性的属性上建模: 如: 类SellableItem中有2个属性: salePrice和status, 其中: salePrice类型为Money, 取值范围为正实数; status类型为枚举(Received, InInspection, Accepted, Rejected) 则应根据属性status建立状态图. 状态是在对象的生命期中的某外条件或状况, 在此期间对象将满足某些条件、执行某些活动或等待某些事件. 状态的组成部分: 状态名、进入/退出动作、内部转移、子状态、延迟事件. 状态的类型: 初态、终态、中间状态、组合状态、历史状态等. 初态 终态 中间状态 状态名 入口动作, 进入该状态时执行该动作. 动作,处于该状态时执行的动作. 事件动作,该状态中出现特定事件时执行的动作. 退出动作, 当离开该状态时执行该动作. 延迟响应事件, 在该状态出现该事件时, 不在本状态响应,而是延迟到其他状态响应. 嵌套在另一个状态中的状态称为子状态; 包含子状态的状态称为组合状态. 组合状态 子状态 子状态也可以有初态和终态 子状态之间的 or 关系, 任意时刻只能到达一个子状态. 子状态之间的 and 关系, 组合状态中某时刻可以同时到达多个子状态. 历史状态是伪状态, 其目的是记住从组合状态中退出时所处的子状态, 当再次进入组合状态时, 可以直接进入这个子状态, 而不是再从组合状态的初态开始. 浅(shallow)历史状态, 只记住最外层组合状态的历史. 深(deep)历史状态, 可以记住任意深度的组合状态的历史. 转移是两介状态之间的一种关系, 表示对象将在第一个状态执行一定的动作, 并在某个特定事件发生且满足某个特定的警戒条件时进入第二个状态. 转移的格式: event-name [‘(‘parameters’)’] [‘[’guard-condition’]’] [’/’action] 例如: targetAt(p) [isThreat] / t.addTarget(p) 对于一个给定的状态, 最终只能产生一个转移, 因此从一个状态出发的几个转移之间应该是互斥的, 包括: 事件不同; 事件相同但警戒条件互斥. 事件是对一个在时间和空间上占有一定位置的有意义的事情的详细说明. (1) 调用事件, 表示对操作的调用. 问题: 调用谁的操作? (2) 变化事件, 表示某布尔表达式值变化, 引起的事件. 注意: 变化事件与警戒条件区别 (3) 时间事件, 表示满足某一时间表达式, 引起的事件. (4) 信号事件, 表示对象接收到某信号的事件. 信号是对象之间异步发送/接收的, 它们之间可以形成泛化关系. 信号事件与调用事件类似, 是异步和同步的区别. * * *

文档评论(0)

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

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档