- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象教程6,面向对象,面向对象程序设计,php面向对象教程,面向对象视频教程,java面向对象视频教程,c#面向对象教程,面向对象程序设计教程,java面向对象教程,java面向对象编程
第六章 状态图
5 .3 .1 概念与表示法
1、事件
从一般意义上讲,事件是指在时间和空间上可以定位并具有实际意义、值得注意的
所发生的事情。
在OO中,事件是对一个可观察的事情的规格说明,这种事情的发生可以引发状态的
转换。
事件可以分为多种:
1)信号事件 一个对象对一个信号实例(在不引起混淆的情况下,以下简称信号)的接
收,导致一个信号事件。
可在一个类的符号中加一个附件的信号栏,列出其能接收的信号。
把这样的事件的特征标记放由它所触发的转换上。
信号可以作为状态机中的状态转换上的动作被发送,或者
作为交互中的一个消息被发送。
可把信号指定为另一个信号的子类。这表示,子事件的出现触
发依赖它的任何转换,或依赖它的任何祖先的转换。
《signal》 若一个转换B 由abc触发,当abc 出现
abc 时,则触发该转换;
《signal》 若一个转换A 由xyz触发,当xyz 出现
xyz 时,则触发转换A ,并且触发转换B ;
利用信号间的继承关系可以对信号族进行建模,一是对一般的信号族进
行建模,二是对异常信号族进行建模。
在UML 中,异常发生是一种事件,可以用信号对其建模。异常事件可以
附加在操作的说明中,更显示的方式是建立图形化的模型。
对对一个信号族的建模主要是说明一个对象可能接收的各种信号;而
对异常建模主要是说明一个对象可能产生的各种异常。
对异常建模,要遵循如下的策略:
对异常建模,要遵循如下的策略:
1)考虑每个类和接口以及这些元素的每个操作正常情况下发生的事情。
然后考虑会出错的事情并把它们建模为对象之间的信号。
2)把这些信号安排在一个层次结构中。提升一般的异常,降低特殊的异
常,必要时引入中间异常。
3)对于每个操作,描述可能出现的异常信号。可以显式地表示(通过显
示从操作到它的信号的send依赖关系),也可以通过顺序图来说明各种脚
上图是对异常的一个层次结构建模,这些异常是由容器类(如模板类Set)的标准
产生的。这个层次结构以抽象信号Error为根,它包括3种特殊错误:
Underflow。操作add可能引发信号Duplicate和Overflow,操作remove仅引
2) 调用事件
对操作的调用的接收(这样的操作由接收事件的对象实现)
调用事件一般来说是同步的
3 )时间事件
在指定事件(经常是当前状态的入口)后,经过了一定的时间或到了
指定日期/ 时间,导致一个时间事件。时间经历事件能用后跟有计算时间量
的表达式的关键词“after”表示,比如“after (5 秒)”或者”after (从状态
A退出后经历了10秒)” 。如果没指明时间起始点,那么从进入当前状态开始
计时。使用关键字at 来指出在某个绝对时间点上发生的时间事件。例
时间事件at(1 Jan 2005, 12:00 UT)指出该事件发生在格林尼治时间
中午12点。
4)改变事件(条件变为真事件)
用布尔表达式描述的指派条件变为真,就导致了一个改变事件。无论表
达式的值何时由假变成真,事件都发生。与改变事件关联的布尔表达式的值
变成真时事件发生一次,即使之后布尔表达式的值变为假,产生的事件仍将
保持,直到它被处理为止。
用后有跟布尔表达式的关键词“when”表示变为真的条件,比如
when altitude 1000) 可以把其看作是连续测试条件,直
通常事件后面还跟有一个监护条件(布尔表达式)。当事件发生后,还要
检验其监护条件,如果监护条件为假,则该事件不触发转换。
可以按如下的格式定义事件:
事件名 ‘(‘用逗号分隔的参数列表‘)’
参数的格式如下:
参数名 ‘:’ 类型表达式
参数值由监护条件和动作表达式使用.
2、状态
状态是一个对象的生命期的一个阶段,在该阶段中该对象要满足一些特定的条
件、执行特定的活动或等待某个(些)事件。
在概念上,对象要在一个状态内维持一段时间。也允许
原创力文档


文档评论(0)