UML第5讲 动态模型.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 动态模型 5.1 事件和状态 5.2 操作 5.3 嵌套状态图 5.4 并发性 5.5 动态模型的实例 5.6 对象模型和动态模型的关系 5.7 实践技巧 我们更需要了解所有时间内对象的变化和对象之间关系的变迁,这也正是系统所关注的时序关系(时序关系理解起来比较困难)。这就产生了一种与静态结构(对象模型)相对应的、与时间有关的和与变化有关的内容,把这种结构称为动态模型。 动态模型的主要概念是表示外部触发的事件和表示对象值的状态。状态图(有穷状态机的图形表示法)是一种标准计算机科学概念,它可以根据不同的使用,用不同的控制方法来处理。 5.1 事件和状态 对象模型描述系统中的对象、属性和链接的合理的模式。 对象所拥有的属性值和链接称为对象的状态. 从一个对象到另一个对象的单个触发称为事件 。 5.1.1 事件 事件不具有持续性,当然没有一个事件是真正瞬间的;事件是一个简单的当前值,此值的发生比给定抽象的短的时间区间还要快。 一个事件是单方向地从一个对象到另一个对象的信息传送,它不像子程序调用那样返回一个值。 如图5-1所示了一些具有属性的事件类的例子,表明是否有属性的部分是可选的。 5.1.2 脚本和事件轨迹 脚本是系统一个特定执行期间所发生的事件序列。 脚本可以是系统运行的历史记录,也可以是执行一个预想系统的构思的试验。 事件序列和交换事件的对象能同时在扩张的脚本中表示出来,这就称为事件轨迹图。 5.1.3 状态 状态是根据影响对象总的行为的性质,一系列组合在一起是一个状态。 状态有持续性,它占有一个时间间隔。 在定义状态时,忽略那些不影响对象行为的属性,并把对事件所有相同响应的属性值和链接组合在一起,合并为一个状态。 一个状态能用不同的方法表示它的特征。图5-2是钟的“闹铃”状态的各种特征表述。 5.1.4 状态图 状态图与事件和状态紧密相关。当一个事件被接收时,下一个状态依赖于当前的状态以及这个事件;由事件所引起的状态改变称为变迁(transition)。 状态图用结点表示状态,用方向弧和标明事件名表示变迁。一个状态画成矩形圆角框并含有可选的名字,变迁用从接受状态到目标状态的箭头表示,在箭头上标明产生变迁的事件名,所有脱离某一状态的变迁必对应不同的事件。 状态图详细说明了由事件序列引起的状态序列。图5-3描述了电话线行为的一个状态图。 状态图描述了对象单一类的行为。因为一个类的所有实例有相同的行为,所以它们共享相同的状态图,就像它们所有共享相同的类特征一样。 状态图能够表示为单步生命周期,或表示为连续循环。 动态模型是通过共享事件交互的状态图的汇集。就像对象类那样,状态图是一种模式,它描述一个完整的(可能是无限的)序列的范围。脚本对于动态模型的关系,就像实例图对于对象模型的关系一样。 5.1.5 条件 条件是对象值的一个布尔函数,能用作变迁的“警戒”。 图5-4表示了具有警戒变迁的十字路口交通指示灯的状态图。 5.2 操作 状态图介绍到现在,仅描述了单个对象类的事件和状态的模式。本节将说明事件如何触发操作。 5.2.1 控制操作 一个对象的行为描述必须指出在事件的响应中该对象做些什么。在响应所对应的状态和事件过程中,完成依附于状态和变迁的操作。 一个活动可以是连续的操作。 一个活动也可以包括经过一段时间间隔之后的自动终结顺序操作。 一个状态可以控制。一个连续性活动,这种控制可以持续到一个事件使该状态发生变迁时才结束。 动作与事件有关,动作表示相对于状态图的变迁来说时间延续不重要的操作。 动作也能表示内部控制操作,诸如设定属性或产生另一个事件。 图5-5表示工作站上弹出菜单的状态图。 5.2.2 操作的状态图小结 图5-6概括了5.1和5.2节中的非结构化的状态图 。状态名写在矩形圆角框内用黑体表示,事件名写在变迁箭头的上方,后面括号内可跟一个或多个属性,条件列在事件名后的方括号内。 5.3 嵌套状态图 状态图完全可以构造复杂系统的精确描述。构造状态机制的方式与构造对象的方式类似于概括和聚合。 概括等价于扩展嵌套活动。它允许对活动作高层描述,然后再在低层进行扩充添加细节,这类似于嵌套过程调用。 聚合允许把状态划分成互不相关的纵向分量,它们之间仅有有限的交互,这类似于对象聚合的层次体系结构。 5.3.1 平状态图问题 状态图因为明显缺乏表达能力和对大的问题不适用而经常受到批评。这些问题对于平的、非结构化的状态图来说,的确是一个问题。如图5-7所示的状态图 。 5.3.2 嵌套状态图 状态的活动能扩展成低层状态图,每个状态表示该活动的一步。嵌套活动是单步的有输入输出变迁的状态

文档评论(0)

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

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

1亿VIP精品文档

相关文档