面向对象分析-状态图.ppt

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

如状态“演电影”, 中有DO/放映影片,其间有保安看门,电工值班等.放映影片一完毕,即转到状态“放映完毕” 可能:第一个状态 在这个控制器类的生命期中有4 个主要的状态:“初始化”Initializing(控制器开始运行)、“空闲”Idle(控制器准备好,并等待警报或来自用户的命令)、“命令”Command(控制器正在处理来自用户的命令)和“活动”Active(控制器正在处理一个警报条件)。当第一次创建这个控制器对象时,首先进入Initializing状态,然后无条件地进入Idle状态。这两个状态的详细信息并不显示,但要显示Idle状态中带有时间事件的自转移。这种时间事件在嵌入式系统中是常见的,它常常有一个心跳定时器,每隔一段时间就检查一下系统的健康状况。 * 第六章 状态图 人的生命 货物运输定单 可能需要建模的事物:系统、窗口、控制者、事务、设备、自身类型或角色发生变化的事物。 对事物所处的状态及其变迁的考虑: 大多数事物在其生命周期中经历了不同的状态; 在特定的时间,一个事物精确地位于一个状态; 在现实世界存在着引起事物的状态发生变化的事件; 事物在其状态间按次序转化; 事物从一个状态到另一个状态的转化通常是即时的。 当事件发生时,事物可能需要采取一些动作。 事物的一般生命周期形式 目前主要有两种对生命周期进行建模的形式: ■周期性生命周期 如:飞机、微波炉 ■出生-死亡生命周期 把状态图赋予一个对象 一个对象的状态: 创建、状态变化序列、撤消 只是要对这样的事物进行状态考察:它有明确的生命期阶段(状态),且需要通过状态分析对其复杂性进行深刻地认识。 在实际系统中,无法建立全系统的状态图。 为了可视化、详述、构造和文档化一个单独对象的动态特性,状态图可以被附加到类(把一个状态模型作为定义一个类的一部分)、用况或整个系统上。 什么是对象的状态? 关于对象状态的不同解释 状态 = 属性 只是一个别名,没有更多的意义 状态 = 属性值 没错,但没有必要辨别这么多状态 《对象技术词典》的另一种定义: 对象或者类的整体行为(例如响应消息)的某些规则所能适应的(对象或类的)状况、情况、条件、形式或生存周期阶段。 ——按某种规定,按对象的属性值划分等价类 例1:一个容量为1000的栈,需要区分几种状态*? 空 半满 满 压入 弹出 可执行 可执行 可执行 可执行 不可执行 不可执行 服务 状态 在此例中 ,每一种状态是一组使对象呈现共同行为规则的属性值组合。 弹出报错 状态转换图(STD) 空 半满 满 创建 弹出(已空) 压入 压入(未满) 弹出(未空) 压入(已满) 弹出 压入报错 例2:为“设备”对象设立一个属性,名为“状态” 属性值:关闭、待命、运行、故障等。 在这里,“状态”是一个专门设置的属性,它的值反映了实际事物的状态。 状态图示例 5.3 .1 概念与表示法 1、事件 从一般意义上讲,事件是指在时间和空间上可以定位并具有实际意义、值得注意的所发生的事情。 在OO中,事件是对一个可观察的事情的规格说明,这种事情的发生可以引发状态的转换。 事件可以分为多种: ? 1)信号事件 一个对象对一个信号实例(在不引起混淆的情况下,以下简称信号)的接收,导致一个信号事件。 可在一个类的符号中加一个附件的信号栏,列出其能接收的信号。 把这样的事件的特征标记放由它所触发的转换上。 信号可以作为状态机中的状态转换上的动作被发送,或者作为交互中的一个消息被发送。 2) 调用事件 对操作的调用的接收(这样的操作由接收事件的对象实现) 调用事件一般来说是同步的 3)时间事件 在指定事件(经常是当前状态的入口)后,经过了一定的时间或到了指定日期/时间,导致一个时间事件。时间经历事件能用后跟有计算时间量的表达式的关键词“after”表示,比如“after (5 秒)”或者”after (从状态A退出后经历了10秒)”。如果没指明时间起始点,那么从进入当前状态开始计时。使用关键字at 来指出在某个绝对时间点上发生的时间事件。例如,时间事件at(1 Jan 2005, 12:00 UT)指出该事件发生在格林尼治时间2005 年1 月1 日的中午12点。 4)改变事件(条件变为真事件) 用布尔表达式描述的指派条件变为真,就导致了一个改变事件。无论表达式的值何时由假变成真,事件都发生。与改变事件关联的布尔表达式的值变成真

文档评论(0)

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

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

1亿VIP精品文档

相关文档