- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OOSE07状态机视图概要
--状态机视图 使用UML进行面向对象的分析 董瑞志 Email: hello_u@ MSN: nature_dong@ 联系电话内容提要 概述 状态机 事件 状态 转换 复合状态 案例分析 状态机视图概述(1/2) 状态机视图通过对每个对象的生命周期进行建模,描述了对象时间上的动态行为。 每个对象被认为是通过检测事件并对之响应来与外界进行通信的“孤立” 实体。而事件则表达了对象可以检测的变动—如对象间的调用或信号等等。 状态视图概述(2/2) 状态机视图不但描述了类的行为,而且可以描述用例、协作、方法等元素。对于被描述的元素,它代表了执行的一个步骤。 在UML中,状态机视图包含状态图。其中的基本元素包括状态机、事件、转换、状态等元素。 状态机(1/2) 状态机是展示状态与状态转换的图。通常一个状态机依附于一个类,并且描述一个类的实例对接受到的事件所发生的反应。状态机也可以依附于操作、用例和协作并描述它们的执行过程。 状态机是一个类的对象所有可能的生命历程的模型。对象被孤立地从系统中抽出和考察,任何来自外部的影响被概述为事件。当对象探测到一个事件后,它依照当前的状态做出反应,反应包括执行一个动作和转换到新状态。状态机可以构造成继承转换,也能够对并发行为建立模型。 状态机(2/2) 状态机是一个对象的局部视图,一个将对象与其外部世界分离开来,独立的监测它的行为。 状态机是对象局部化的视图,是一种很好的精确描述指明行为的方法。 事件 事件是发生在时间和空间上值得注意的事情。它在一时间点上发生,没有持续时间。如果某一事情的发生造成了影响,那么在状态机模型中它是一个事件。 当我们使用事件这个词时,通常是指一个事件的描述符号。事件可能有参数来辨别每个实例,就像类用属性来辨别每个对象一样。 事件可以划分为各种类别—信号事件、调用事件、变更/改变事件、时间事件。 信号事件(1/2) 信号是作为两个对象之间通信媒介的命名实体,信号的接收是信号接受对象的一个事件。发送对象明确地创建并初始化一个信号实例并把它发送到一个或一组对象。 最基本的信号是异步单路通信,发送者不会等待接收者如何处理信号而是独立地做它自己的工作; 在双路通信模型中,要用到多路信号,即至少要在每个方向上有一个信号。 信号事件(2/2) 信号可以在类图中被声明为类,并用关键字《signal》表示,信号的参数被声明为属性。同类一样,信号间可以有泛化关系,信号可以是其他信号的子信号,它们继承父信号的参数,并且可以触发依赖于父信号的转换。 调用事件 调用事件是一个对象对调用的接收,这个对象用状态的转换而不是用固定的处理过程实现操作。 操作的参数即事件的参数。一旦调用的接收对象通过由事件触发的转换完成了对调用事件的处理或调用失败而没有进行任何状态转换,则控制返回到调用对象。不过,与普通的调用不同,调用事件的接收者会继续它自己的执行过程,与调用者处于并行状态。 变更事件 变更事件是依赖某些属性值表达式的满足,它表达了持续、潜在的非本地计算。 时间事件 时间事件代表时间的流逝。时间事件既可以被指定为绝对形式,也可以被指定为相对形式。它们由一些特定对象的信号所引起,这些对象既可能是操作系统也可能是应用中的对象。 状态(1/2) 状态描述了一个对象生命期中的一个时间段。它可以用三种附加方式说明:在某些方面性质相似的一组对象值;一个对象等待一些事件发生时的一段时间;对象执行持续活动时的一段时间。 状态机中,一些列状态由转换连接。当对象处于一个状态中,它对于离开该状态的迁移敏感。 状态图中状态,使用圆角矩形表示。并划分为三栏式分别表示状态名、状态变量、动作。 状态(2/2) 状态的种类及其表示法如下: 基本概念 状态转换 触发器事件 监护条件 结束转换 动作 嵌套状态 状态转换 当动作执行完毕后,转换的目标状态被激活,这时会触发出口动作或入口动作的执行。 触发器事件 触发器事件是引起转换的事件。事件可以有参数,以供转换的动作使用。如果一个信号有后代,那么信号中的任一个后代都可以引起转换。 监护条件 转换可能具有一个监护条件,监护条件是一个布尔表达式。监护条件可以引用对象的属性值和触发事件的参数。当一个触发器事件被触发时,监护条件被赋值。如果布尔表达式的值为“真”,那么触发事件,使转换有效。如果布尔表达式的值为“假”,则不会引起转换。监护条件只能在触发事件发生时被赋值一次。如果在转换发生后监护条件由原来的“假”变为“真”,则因为赋值太迟而不能触发转换。 结束转换 没有标明触发器事件的转换是由状态中的活动的完成引起的(即完成转换)。结束转换也可以带一个监护条件,这个监护条件是在状态中的活动完成时被赋值的(而不是完成以后)。 动作(1/2) 当转换被引起时,它对应的动作被执行
文档评论(0)