网站大量收购闲置独家精品文档,联系QQ:2885784924

UML建模 状态图.ppt

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

当某些事件发生时对象的状态就会改变,此时称改变对象状态的事情为“事件”。事件体现了状态改变的这种动态性,该动态性表现在两个方面:交互和内部状态改变。 交互描述对象的外部行为以及对象如何与其他对象交换信息;而内部状态改变描述对象是如何改变其状态的,例如,对象内部属性值。 在UML中系统动态建模时,除了状态机图,建模人员还可以用序列图、协作图和活动图对系统的动态行为进行建模,但四种图存在着以下重要差别: 序列图和协作图用于对共同完成某些对象群体进行建模。 状态机图和活动图用于对单个对象(可以是类、用例或整个系统的实例)的生命周期建模。 1.外部转移 2.转移条件 一个转移还会有复杂的名称结束和动作列表。 转移名: 事件名 参数列表 守卫条件/动作列表 事件:源状态的对象接收触发事件后,只要满足守卫条件便可激活相应转移。 守卫条件:守卫条件是用方括号括起来的表达式,它放在事件的后面。 动作:动作可以操作调用另一个对象的创建和撤销或向另一个对象的信号发送,它不能被事件中断。 动作是一组可执行语句或者计算处理过程。 动作可以包括发送消息给另一个对象、操作调用、设置返回值、创建和销毁对象等。 动作是原子的,不可中断的,动作或动作序列的执行不会被同时发生的其他动作影响或终止。 整个系统可以在同一时间执行多个动作。 3.自转移 建模时对象会收到一个事件,该事件不会改变对象的状态,却会导致状态的中断,这种事件被称为自转移,它打断当前状态下的所有活动,使对象退出当前状态,然后又返回该状态。 4.内部转移 内部转移只有源状态没有目标状态,转移激发的结果并不改变状态本身。如果一个内部转移带有动作,动作也要被执行,但由于没有状态改变发生,因此不需要执行入口动作和出口动作。 内部转移和自转移不同,虽然两者都不改变状态本身,但有着本质区别。自转移会触发入口动作和出口动作,而内部转移不会。 在UML中有多种事情可以让建模人员进行建模,它们分别是:调用事件、信号事件、变化事件、时间事件和延迟事件。 调用事件 一个调用事件代表一个操作的调用,它是同步的。当一个对象调用另一个具有状态机对象的某个操作时,控制就从发送者传递到接收者。该事件触发转移,完成操作后,接收这转到一个新的状态,并将控制返还给发送者。 信号事件 信号是对象异步地发送并由另一个对象接收的具有名字的对象,它和简单的类有许多共同之处。例如,信号可以有实例,信号可包含在泛化层次中,它可以有属性和操作,信号可作为状态机中一个状态转移的动作而被发送,也可作为交互中的一条消息被发送,一个操作的执行也可以发送信号。事实上,当建模人员为一个类或一个接口建模时,通常需要说明它的操作所发送的信号。 变化事件 变化事件是状态中的一个变化或者某些事件满足的条件。在UML中变化事件使用关键字when来标记,它隐含了对于控制条件的连续测试,相当于编程中的循环。当条件从假变为真时,事件发生,建模人员可以使用诸如when:time=08:00的表达式来标记时间,也可以用如when:number100之类的表达式来对其进行连续测试。 时间事件 时间事件是经过一定的时间或者到达某个绝对时间后发生的事件。在UML中时间时间使用关键字after来标记,后面跟着计算一段时间的表达式。如:after(10分钟。如果没有特别说明,那么上面的表达式的开始时间是进入当前状态的时间。 延迟事件 在UML中,建模人员有时需识别某些事件,延迟对它们的响应直到以后某个合适的时刻才执行,在描述这种行为时可以使用延迟事。延迟事件使用关键字defer来标识,其语法形式为:延迟事件/defer。在实现时,所有的延迟事件被保存在一个列表中,这些事件在状态中的发生被延迟,直到对象进入了一个不在需要延迟这些时间并需使用它们的状态时列表中的事件才会发生,并触发相应的转移。一旦对象进入了一个不延迟切没有使用这些事件的状态,它们就会从这个列表中删除。 动作初始时可以有以下5中基本状态动作类型。 entry:标记入口动作,用来指定进入状态时发生的动作。 entry/动作名 exit:标记出口动作,用来指定状态被另一个状态取代时发生的动作。 exit/动作名 do:标记内部活动,用来指定处于某种状态时发生的活动。 do/活动表达式 include: event:用来指定当特定事件触发时指定相应动作的发生。 event-name(parameters)[guard-condition]/action 事件可以伴有多个动作的发生。动作之间用逗号分隔。 状态图建模技术 建模步骤: 找出适合用模型描述其行为的类。 确定对象可能存在的状态。 确定引起状态转换的事件。 确定转换进行时对象执行的相应动作。 对建模的结果进行相应的精化和细化。 实例——图书馆管理系统的状态图 1

文档评论(0)

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

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

1亿VIP精品文档

相关文档