- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 状态和活动图
7.1.1状态图概述 UML状态图中的状态是指在对象的生命周期中满足某些条件、执行某些活动或等待某些事件时的一个条件或状况。状态用圆角矩形表示,初态(Initial States)用实心圆点表示,终态(Final States)用圆形内嵌圆点表示。 状态图(又称状态机图)由状态、转换、事件、活动和动作五部分组成,是展示状态与状态转换的图。通常一个状态图依附于一个类,并且描述一个类的实例。状态图包含了一个类的对象在其生命周期期间的所有状态的序列以及对象对接收到的事件所产生的反应。它是状态节点通过转移连接的图,描述了一个特定对象的所有可能状态,以及由于各种事件的发生而引起状态之间的转移。大多数面向对象技术都使用状态图来描述一个对象在其生命周期中的行为。 图7.1 图书馆书籍的状态图 7.1.2状态图的基本元素 状态之间的过渡事件(event),对应对象的操作。事件有可能在特定的条件下发生,在UML中这样的条件称为警戒条件(guard condition)。发生事件时的处理称为动作(action)。从一个状态到另一个状态之间的连线称为转移(transitions)。状态图通常包含如下内容。 ⑴ 状态 状态定义对象在其生命周期中的条件或状况。 ⑵ 转换 对象的状态之间的转移叫转换,它包括事件和动作。 7.1.3状态 一个对象的状态可能包含子状态或其它一些更加详细的内容。具体的有以下五个部分组成:名称、 进入/退出动作、 内部转换、子状态和延迟事件。 ⑴名称(name) ⑵进入/退出动作(entry/exit action) ⑶内部转换(Internal Transition) ⑷子状态(sub state) ⑸延迟事件(Deferred Event) 7.1.4转换 UML状态图中转换是两个状态之间的一种关系,表示对象将在源状态(Source State)或当前状态中执行一定的动作,并在某个特定事件发生而且某个特定的警界条件满足时进入目标状态。 转换是由如下5部分组成: ⑴源状态 ⑵触发事件 ⑷动作 ⑸目标状态 图7.8 状态图转换的元素 7.1.5状态图的建模技术及应用 状态图用于对系统的动态方面建模。动态方面是指出系统体系结构中任一对象按事件排序的行为,这些对象可以是类、接口、组件和节点。当使用状态图对系统建模时,可以在类、用例、子系统或整个系统的语境中使用状态图,对类、用例和系统实例的行为建模。 状态图表示某个类所处的不同状态和该类的状态转换信息。虽然每个类都有状态,但在系统活动期间仅对具有三个或更多潜在状态的类才画一个状态图,进行状态图描述。用状态图对一个对象按事件排序的方法建模,状态图是强调从状态到状态的控制流的状态机的简单表示。 7.1.5状态图的建模技术及应用 使用状态图的最常见的是对反应型对象、尤其是对类、用例或整个系统的实例的行为建模。反应型对象是指这个对象可能处于的稳定状态、从一个状态到另一个状态之间的转换所需的触发事件,以及每个状态改变时发生的动作。反应型对象具有如下的特点: ⑴响应外部事件,即来自对象语境外的事件; ⑵具有清晰的生命期,可以被建模为状态、迁徙和事件的演化; ⑶当前行为和过去行为存在着依赖关系; ⑷在对事件做出反应后,它又变回空闲状态,等待下一个事件。 7.1.5状态图的建模技术及应用 使用状态图对系统反应型对象建模时,应遵循如下策略: ⑴选择状态机的语境(即建模对象),不管它是类、用例或是整个系统; ⑵选择这个对象的初态和终态。为了指导模型的剩余部分,可能要分别地说明初态和终态的前置条件和后置条件; ⑶考虑对象可能在其中存在一段时间的条件,以决定该对象所在的稳定状态。从这个对象的高层状态开始,然后考虑它的可能的子状态; ⑷在对象的整个生命周期中,决定稳定状态的有意义的顺序; ⑸决定可能触发从状态到状态的转换的事件。将这些事件建模为触发者,它触发从一个合法状态序列到另一个合法状态序列的转换; ⑹把动作附加到这些转换上,并且附加到这些状态上; ⑺考虑通过使用子状态、分支、汇合和历史状态,来简化状态图; ⑻核实所有的状态都是在事件的某种组合下可达的; ⑼核实不存在死角状态,即不存在那种不能转换出来的状态; ⑽通过手工或通过使用工具跟踪状态机,核对所期望的事件序列以及它们的响应。 拨打电话工作的行为建模 7.2 活动图 活动图,用于UML中建立动态模型,主要描述系统随时间变化的行为,这些行为是用从静态视图中抽取的系统的瞬间值的变化来描述的。在对象的生命期建模中,活动图是一种特殊形式的状态机,用于对计算机流程和工作流程建模。活动图从本质上说是一个流程图,展现跨过不同的对象从活动到活动的控制流。与传统的流程图不同的是,活动图能够展示并发和控制分支。 7.2.1
文档评论(0)