面向对象分析-状态图

面向对象分析-状态图

ID:42803603

大小:304.56 KB

页数:31页

时间:2019-09-23

面向对象分析-状态图_第1页
面向对象分析-状态图_第2页
面向对象分析-状态图_第3页
面向对象分析-状态图_第4页
面向对象分析-状态图_第5页
资源描述:

《面向对象分析-状态图》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六章状态图人的生命货物运输定单可能需要建模的事物:系统、窗口、控制者、事务、设备、自身类型或角色发生变化的事物。对事物所处的状态及其变迁的考虑:大多数事物在其生命周期中经历了不同的状态;在特定的时间,一个事物精确地位于一个状态;在现实世界存在着引起事物的状态发生变化的事件;事物在其状态间按次序转化;事物从一个状态到另一个状态的转化通常是即时的。当事件发生时,事物可能需要采取一些动作。事物的一般生命周期形式目前主要有两种对生命周期进行建模的形式:■周期性生命周期如:飞机、微波炉■出生-死亡生命周期把状态图赋予一个对象一个对象的状态:创建、状态变化序列、撤消只是要对

2、这样的事物进行状态考察:它有明确的生命期阶段(状态),且需要通过状态分析对其复杂性进行深刻地认识。在实际系统中,无法建立全系统的状态图。为了可视化、详述、构造和文档化一个单独对象的动态特性,状态图可以被附加到类(把一个状态模型作为定义一个类的一部分)、用况或整个系统上。什么是对象的状态?关于对象状态的不同解释状态=属性只是一个别名,没有更多的意义状态=属性值没错,但没有必要辨别这么多状态《对象技术词典》的另一种定义:对象或者类的整体行为(例如响应消息)的某些规则所能适应的(对象或类的)状况、情况、条件、形式或生存周期阶段。——按某种规定,按对象的属性值划分等价类例

3、1:一个容量为1000的栈,需要区分几种状态*?空半满满压入弹出可执行可执行可执行可执行不可执行不可执行服务状态在此例中,每一种状态是一组使对象呈现共同行为规则的属性值组合。弹出<报错>状态转换图(STD)空半满满创建弹出(已空)压入压入(未满)弹出(未空)压入(已满)弹出压入<报错>例2:为“设备”对象设立一个属性,名为“状态”属性值:关闭、待命、运行、故障等。在这里,“状态”是一个专门设置的属性,它的值反映了实际事物的状态。状态图示例5.3.1概念与表示法1、事件从一般意义上讲,事件是指在时间和空间上可以定位并具有实际意义、值得注意的所发生的事情。在OO中,事

4、件是对一个可观察的事情的规格说明,这种事情的发生可以引发状态的转换。事件可以分为多种:1)信号事件一个对象对一个信号实例(在不引起混淆的情况下,以下简称信号)的接收,导致一个信号事件。可在一个类的符号中加一个附件的信号栏,列出其能接收的信号。把这样的事件的特征标记放由它所触发的转换上。信号可以作为状态机中的状态转换上的动作被发送,或者作为交互中的一个消息被发送。2)调用事件对操作的调用的接收(这样的操作由接收事件的对象实现)调用事件一般来说是同步的3)时间事件在指定事件(经常是当前状态的入口)后,经过了一定的时间或到了指定日期/时间,导致一个时间事件。时间经历事件

5、能用后跟有计算时间量的表达式的关键词“after”表示,比如“after(5秒)”或者”after(从状态A退出后经历了10秒)”。如果没指明时间起始点,那么从进入当前状态开始计时。使用关键字at来指出在某个绝对时间点上发生的时间事件。例如,时间事件at(1Jan2005,12:00UT)指出该事件发生在格林尼治时间2005年1月1日的中午12点。4)改变事件(条件变为真事件)用布尔表达式描述的指派条件变为真,就导致了一个改变事件。无论表达式的值何时由假变成真,事件都发生。与改变事件关联的布尔表达式的值变成真时事件发生一次,即使之后布尔表达式的值变为假,产生的事件

6、仍将保持,直到它被处理为止。用后有跟布尔表达式的关键词“when”表示变为真的条件,比如when(altitude<1000)可以把其看作是连续测试条件,直到它为真。通常事件后面还跟有一个监护条件(布尔表达式)。当事件发生后,还要检验其监护条件,如果监护条件为假,则该事件不触发转换。可以按如下的格式定义事件:事件名‘(‘用逗号分隔的参数列表‘)’参数的格式如下:参数名‘:’类型表达式参数值由监护条件和动作表达式使用.2、状态状态是一个对象的生命期的一个阶段,在该阶段中该对象要满足一些特定的条件、执行特定的活动或等待某个(些)事件。把状态表示成四角均为圆角的矩形(看

7、下图),并把状态的名称放在其中。可以有选择地把表示状态的矩形划分成由水平线相互分隔的多个分栏:a)名称分栏可以在该分栏中放置状态名。没有名称的状态是匿名的,但同一张图中的匿名状态是各不相同的。b)内部转换分栏用该分栏给出对象在这个状态中所执行的内部动作或活动的列表。各表项的表示法的基本格式为:事件名[‘(’用逗号分隔的参数表‘)’][监护条件]‘/’动作表达式 用户可以自己对对事件进行命名,只是entry、exit和do这三个保留字外,因为UML已经为它们规定了特定含义动作表达式是由一些动作组成的动作序列,有关动作的具体内容请看本节的第3部分。监护条件是布尔表达式

8、,根据触发

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。