- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2006-2-24 第6章 状态图,活动图 主要内容 状态图 状态机:一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成。状态机是一个状态和装换的图,它说明对象在它的生命期中响应事件所经历的状态序列以及它对那些事件的响应。 状态图 :状态图实际上是一种由状态、变迁、事件和活动组成的状态机。状态图描述从状态到状态的控制流,常用于系统的动态特性建模。 状态图的用途 UML的状态图主要用于: 建立一个对象在其生存期间的动态行为 表现一个对象所经历的状态序列 引起状态转移的事件 以及因状态转移而伴随的动作 状态是对象的一组属性值,这组属性对所发生的事件具有相同性质的反应。 状态图所描述的对象往往具有多个属性,一般状态图应该在具有以下两个特性的基础上建模: 属性拥有很少的值; 属性在这些值之间的转移有一定的限制。 例:类SellableItem有两个属性salePrice:Money和status:枚举型。 其中salePrice的取值范围为正实数,status的取值为received, inInspection, accepted, rejected等,则应根据属性status建立状态图。 说明: 状态图是对系统的动态行为建模。 状态图描述了一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移。 状态图是显示状态机的一种方式,另一种显示状态机的方式是活动图。 Rose中,状态图不生成代码,但状态图在检查,调试和描述类的动态行为时非常有用。 状态机图与交互图的区别: 交互图不显示对象所有可能的动态行为,只显示特定交互(一个具体的用例)中多个对象的行为。 状态图适合于描述跨越多个用例的单个对象的行为。 状态图中的基本概念 State (状态) Transition (转移) Event (事件) Action (动作) 基本组成 状态(State) 定义:一个状态是指在对象的生命期中的一个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。 说明: 对象在任何时候都会处于某种状态中,所有对象都具有状态。 对象所处的状态决定它如何响应所检测的事件或所接收的消息。 通常,事件使对象从一个状态转向另一个状态。 状态的构成 一个状态有以下几个部分: 状态名 进入/退出动作(entry/exit action) 内部转移(internal transition) 不导致状态改变的转移,不会执行entry和exit动作 子状态 (substate) 嵌套在另外一个状态中的状态 延迟事件 (deferred event) 延迟到下一状态中处理的事件 状态的类型 状态的类型分为: 初态 一个状态图只能有一个初态 终态 终态可以有一个或多个,也可以没有 中间状态 组合状态 历史状态 组合状态 子状态是嵌套在另一个状态中的状态。 一个含有子状态的状态被称作组合状态。 例:组合状态和子状态的例子。 说明: 组合状态中也有初始状态和终结状态。 从源状态可以转移到组合状态本身,也可以直接转移到组合状态中的子状态。 子状态之间可分为“or”关系和“and”关系两种。“or”关系说明在某一时刻仅可到达一个子状态,“and”关系说明复合状态中在某一时刻可同时到达多个子状态。 历史状态(History State) 一种伪状态,其目的是记住从组合状态中退出时所处的子状态,当再次进入组合状态时,可直接进入到这个子状态,而不是再次从组合状态的初态开始。 历史状态例 当从状态“结账”和“显示购物车”返回子状态“显示索引信息” 时,将进入的是离开时的历史状态。 也就是说,转到购物或结账区之后,再回到“浏览目录”的页面时,其中的内容是不变的,仍然保留原来的信息。 H和H*的区别: H只记住最外层的组合状态的历史。 H*可记住任何深度的组合状态的历史。 转移(Transition) 一个转移是两个状态之间的一种关系,当指定的事件发生,指定的监护条件得到满足的时候,处于第一个状态的对象执行的指定的效果(指转移激发时执行的动作或活动),进入第二种状态。 状态的之间的转移通常是由事件触发的,此时应在转移上标出触发转移的事件表达式。如果转移上未标明事件,则表示在源状态的内部活动执行完毕后自动触发转移。 Transition的格式: event-signature ‘[’ guard-condition ‘]’ ‘/’ action 其中event-signature的格式为: event-name ‘(’ comma-separated-parameter-list ‘)’ 对于一个给定的状态,最终只能产生一个转移,因此从相同的状态出来的、事件相同的几个转移之间的条件应该是互斥的。 例: Event
您可能关注的文档
最近下载
- 派出所校园防欺凌方案.docx VIP
- 汽车钢板弹簧后悬设计答辩--公开课件设计.ppt VIP
- 义务教育版(2024)七年级全一册信息科技 第9课 数据传输有新意 教案.docx VIP
- 7氯丁橡胶总结.ppt VIP
- 华为HCIA-GaussDB GaussDB应用开发 H13-911考试题库-下(判断、填空题).docx VIP
- DB37T5072-2016山东建筑工程建筑结构施工技术资料-全套资料表格word.docx VIP
- DB37T5072-2016山东建筑工程建筑结构施工技术资料-全套资料表格word.docx VIP
- DB37T5072_2016山东建筑工程建筑结构施工技术资料_[全套]资料表格word.docx VIP
- 一年级拼音书写四线三格.docx VIP
- 军民航防相撞课件.pptx VIP
文档评论(0)