网站大量收购独家精品文档,联系QQ:2885784924
  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目标状态

第八章 状态图和活动图 江西财大软件学院 状态图概述 状态图主要用于描述一个对象在其生存期间的动态行为,表现一个对象所经历的状态序列、引起状态转移的事件,以及因状态转移而伴随的动作。 用一个状态机对一个对象的生命周期建模,状态图是用于显示状态机的,重点在于描述状态之间的控制流。 状态图概述 状态图是对类的一种补充描述,展示了此类对象所具有的可能状态以及某些事件发生时其状态的转移情况。 在状态图中,状态由圆角矩形表示。状态的改变称作转移,状态转移由箭头表示,箭头旁可以标出转移发生的条件。状态转移可以伴随有某个动作,它表明当转移发生时系统要做什么。 状态图概述 状态图是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应的。 通常我们创建一个UML状态图是为了以下的目的:研究类、角色、子系统、或组件的复杂行为。 状态图用于显示状态机(它指定对象所在的状态序列)、使对象达到这些状态的事件和条件、以及达到这些状态时所发生的操作。 状态机 状态机用于对模型元素的动态行为进行建模,即,对系统行为中受事件驱动的方面进行建模。状态机专门用于定义依赖于状态的行为(依据元素所处的状态而有所变化的行为)。其行为不会随着其元素状态发生变化的模型元素不需要用状态机来描述其行为。 状态机 状态机由状态组成,各状态由转移连接在一起。状态是对象执行某项活动或等待某个事件时的条件。转移是两个状态之间的关系,它由某个事件触发,然后执行特定的操作或评估并导致特定的结束状态。图 1 描绘了状态机的各种元素。 对象可能会在有限的时间长度内保持某一状态 。 状态图的例子 动作分类 状态机中,动作既可以与状态相关也可以与转移相关。 如果动作是与状态相关,则对象在进入一个状态时将触发某一动作,而不管是从哪个状态进入这个状态的。 如果动作是与转移相关的,则对象在不同的状态之间转移时,将触发相应的动作。 状态图建模 在具有以下两个特性的属性上建模: 属性拥有较少的可能取值; 属性在这些值之间的转移有一定的限制。 状态图例子 状态图中的元素 状态(包括初始状态、结束状态和中间状态、子状态、组合状态、历史状态等); 事件(四类事件); 转移; 什么是状态? 状态表示的是一个对象或交互过程中的一个特定阶段:满足了某一个条件,进行某项活动或等待某个事件的发生,状态对应一段有限的时间。状态对应于一组对象属性的值 动作是一个不可中断的最小单元。 基本概念-状态 状态可以细分为不同的类型,如初态、终态、中间状态、组合状态、历史状态等。 一个状态图只能有一个初态,但终态可以有一个或多个,也可以没有终态。 中间状态包括两个区域:名字域和内部转移域,内部转移域是可选的。 状态图中的基本概念 状态:在对象的生命周期中的某个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。 所有对象都具有状态,状态是对象执行了一系列活动的结果,当某个事件发生后,对象的状态将发生变化。 一个状态包括:状态名、进入/退出动作、内部转移、子状态、延迟事件。 状态具有的特征 事件触发器 在状态机环境中,事件是指可触发状态转移的激励的发生。事件可能包括信号、调用、时间推移或状态变更。信号或调用可能具有其值可用于转移的参数,其中包括警戒条件和操作的表达式。也可能会有无触发器的转移,这样的转移没有事件触发器。这种转移也被称为完成转移,它们在源状态完成其活动后将被隐含触发。 警戒条件 当转移的触发事件发生时,将对警戒条件进行求值。只要警戒条件不重叠,就可能会有来自同一源状态并具有同一事件触发器的多个转移。在事件发生时,只为转移进行一次警戒条件求值。 操作 操作是可执行的、不可分割的计算过程,这意味着,它不会被事件中断,而会一直运行到结束为止。它与活动正好相对,因为活动可能被其他事件中断。操作可以包括操作调用(调用状态机的拥有者以及其他可见对象)、创建或破坏其他对象、或者向另一个对象发送信号。 进入和退出操作 每当进入或退出状态时,进入和退出操作将分别允许发出同一操作。这可以通过进入和退出操作来顺利地完成,而不必明确地将操作放在每个输入或输出转移上。进入和退出操作可能没有实参或警戒条件。位于模型元素的状态机顶层的进入操作可能具有特定的参数,这些参数代表了在创建该模型元素时状态机所接收到的实参。 内部转移 内部转移使事件可以在不退出状态的情况下在状态内得到处理,从而可避免触发进入或退出操作。 延迟的事件 延迟的事件是其处理过程被推迟的事件,它们的处理过程要到事件不被延迟的状态被激活时才会执行。当该状态被激活时,将触发该事件,同时可能导致转移(好象该事件刚刚发生)。要实施延迟的事件,需要有事件的内部队列

文档评论(0)

magui + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档