第7章状态机图_第1页
第7章状态机图_第2页
第7章状态机图_第3页
第7章状态机图_第4页
第7章状态机图_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

状态图7.1

几个概念7.2

状态7.3

状态转换7.4

事件7.5

复合状态7.6

并发状态7.7

控制结点7.8

子机状态7.9

状态机7.10

状态机图实例第7章状态图7.1.1

状态7.1.2

状态机7.1.3

状态机图第7章7.1几个概念状态(state):指事物在其生命周期中满足某些条件、执行某些操作或等待某些事件而持续的一种稳定的状况

状态7.1.1待用运行故障状态机(statemachine

):描述一个事物在其生命期中,所具有的状态,以及因事件触发而引起的状态的各种转换。

状态机7.1.2状态机(statemachine

diagram

):是UML用来描述状态机的图,在UML2.0版本之前,状态机图被称为状态图。状态机图由状态结点、控制结点和转换边构成。状态机图7.1.3状态结点控制结点转换边状态图7.2.1

状态的概念7.2.2

状态的类型7.2.3

状态的动作第7章7.2状态状态(state):指事物在其生命周期中满足某些条件、执行某些操作或等待某些事件而持续的一种稳定的状况

状态表示为:状态名若用英文,第一个字母要大写。

状态的概念7.2.1可分为以下三类:

●简单状态:也被称为原子状态,不包含子状态和子机状态。●复合状态:内部包含子状态的状态。

●子机状态:状态机作为子状态的状态。状态的类型7.2.2可分为以下三类:

●简单状态:

●复合状态:

●子机状态:状态的类型7.2.2

一个状态内部所包括的动作或事件,在当前状态下,状态机会执行这些动作,可以有:

●入口动作:进入该状态自动执行的第一个动作,表示为:extry/doshing

,例如extry/dodooropen。●出口状态:退出该状态自动执行的最后一个动作,表示为:exit/doshing,例如,exit/doorclose。

●内部变迁:在该状态下做的动作,不引起状态变化。表示为:do/thing,例如,do/checkuponwork

。●延迟事件:在该状态下,如果发生某事件,将被延时处理。表示为:事件/defer,例如,print/defer(15),表示打印事件将被延迟15秒。状态的动作7.2.3状态图7.3.1

状态转换的概念7.3.2

状态转换的三要素第7章7.3状态的转换状态转换(statetransition):是两个状态之间的一种有向关系,表示从源状态转换到目标状态。状态转换用一个带箭头的实线表示,箭头由源状态指向目标状态。

状态转换的概念7.3.1●触发事件:触发状态转换的条件,如开门,入库,开电源等。如果没有触发事件,指源状态执行完后,自动转换到目标状态。状态转换的要素7.3.2●触发事件:●监护条件:用来监护状态转换。在事件发生后,如果监护条件为真,则执行动作,并转换状态。如果监护条件为假,则不执行转换动作,也不实施状态转换。如果没有监护条件,则不作条件判断,在事件发生后直接执行转换动作。状态转换的要素7.3.2

●触发事件:●监护条件:●转换动作:在事件发生后所执行的一组动作,并把状态由源状态转换到目标状态。在动作前置一个“/”

。状态转换的要素7.3.2状态转换的要素7.3.2状态图7.4.1

事件的概念7.4.2

事件的性质7.4.3

事件的类型7.4.4

几种事件第7章7.4事件事件(event):指所发生的瞬时事情,能引起状态变换。例如:按“开关”,能开启机器“双击鼠标”打开窗口。事件的概念7.4.1事件的性质7.4.2●瞬时态:事件在瞬时发生,没有时间延迟。●原子性:事件不可再分割事件的类型7.4.3

按发生的位置分:●外部事件:在系统外部发生的事件,例如,按按钮就在外部发生。●内部事件:在系统内部发生的事件,例如,溢出事件

按事件的性质分:

●调用事件,●信号事件,●变化事件,●时间事件几种事件7.4.4●调用事件(callevent):表示发送对象发给接收对象的调用消息的接收消息事件,并由该事件触发接收对象的状态转换。

几种事件7.4.4●信号事件(signal

event):表示发送对象发给接收对象的信号消息的接收消息事件,并由该事件触发接收对象的状态转换。

几种事件7.4.4●改变事件(change

event):表示当布尔表达式的值改变为真时所激发的事件。系统将一直检测改变事件中的布尔表达式的值,只要它的值改变为真,该事件就被激发。改变事件一般用关键字when开头的布尔表达式表示,当表达式的值由假变为真时,事件将发生。例如:when(systemtime=12:00),表示当系统时钟到达12点时,激发该事件。几种事件7.4.4●时间事件(time

event):是经过一定的时间或者到达某个绝对时间时发生的事件。用关键字after及时间值表示相对时间,例如,“after(10sec.)”,表示从现在算起,10秒之后将发生该事件。用关键字at及时间值表示绝对时间,例如,“at2012-10-1”表示到2012年10月1日引发该事件。状态图7.5.1

复合状态的含义7.5.2

复合状态的性质7.5.3

复合状态的类型第7章7.5复合状态复合状态:指包含子状态的状态。

例如,ATM机的状态机图:复合状态的含义7.5.1复合状态的性质7.5.2●事物在复合状态时,意味着它处于其中一个子状态;事物如果在某一个复合状态的子状态,它一定处于该复合状态。

●复合状态允许嵌套,子状态可以是简单状态、复合状态,也可以是子机状态。

复合状态的性质7.5.2●复合状态具有始态,转入一个复合状态等价于转入其始态。

●复合状态可以有终态,达到复合状态的终态,将从复合状态转出。

复合状态转换的类型7.5.3●外部转换:在复合状态与其他状态之间发生的状态转换,以及复合状态的自转换。外部转换表示离开一个复合状态进入另外一个状态,或者进入复合状态自身。

●局部转换:复合状态内部子状态之间的转换,或者复合状态转换到其中某个子状态。状态图7.6.1

并发状态的含义7.6.2

同步状态第7章7.6并发状态并发状态:在一个状态机或一个复合状态中,如果同时存在相互可以独立的几组状态,则称这几组状态是并发状态(concurrentstate)。

例如:并发状态的含义7.6.1同步状态:指多个并发区间中的状态在转换过程彼此存在同步关系,一个区间中的一个转换需要等到另一个区间中的某个转换发生后才能进行。

例如:同步状态7.6.2状态图7.7.1

初始状态7.7.2

分叉与汇合7.7.3

汇接7.7.4

选择7.7.5

历史状态7.7.6

终止状态7.7.7

入口点与出口点第7章7.7控制结点初始状态

(initialstate):简称始态,表示状态机的起始,始态用实心园表示。一个复合状态或子机状态也有其始态。一个状态机可以有多个始态,存在多个始态的状态机一定存在状态的并发,在并发状态的一个区间只能有一个始态。初始状态表示一个状态机从此结点开始,但事物不会此状态停留,会立即转换到初始状态所连接的第下一个状态。初始状态只有输出,没有输入。初始状态7.7.1分叉

(fork):指将一个转换分成两个或多个转换,用来描述需要并发的状态。

汇合

(join):指将从并发状态来的转换合并形成一个转换,用来描述多个并发状态的控制同步。

分叉与汇合7.7.2汇接(junction):用来汇接多个转换,以简化转换路径。汇接的符号与初始状态的符号相同,但它允许连接多个转换的输入和多个输出。

汇接7.7.3选择(choice

):用来实现根据条件判断,转换到不同目标状态。用菱形表示选择,有一个输入边到选择,多个输出边由选择到目标状态结点。

选择7.7.4历史状态(historystate

):为一个状态机或复合状态提供了一种在退出状态时记忆当前活动所处的子状态,并能够返回到该子状态的机制。

历史状态7.7.5历史状态终止状态(final

state

):被简称为终态,表示一个状态机、一个复合状态,或一个区间状态的结束。终止状态用“牛眼”符号表示。

终止状态7.7.6终止状态

入口点(entrypoint

):是其它状态转换到一个状态机或复合状态的始态的一个进入点。入口点用小圆圈表示,被放置到状态机或复合状态的边界上。出口点(exitpoint

):是状态机或复合状态到其他状态的一个转出点。出口点用带叉的小圆圈表示,也被放置到状态机或复合状态的边界上。

入口点和出口点7.7.7入口点和出口点的例子:状态图第7章7.7子机状态

子机状态(submachinestate

):是指把一个状态机作为另外一个状态机的子状态。包含子机状态的状态机被称为母状态机。母状态机是以引用的方式把一个已经存在的状态机作为自己子状态,在母状态机中子机状态作为一个子状态,但它自身仍是一个完整的状态机。

状态图7.8.1

状态机的概念7.8.2

状态机的用途7.8.3

状态机建模规则7.8.4

状态机建模7.8.5

状态机与其它的比较第7章7.8状态机

状态机(statemachine

):

描述一个事物在其生命期中,所具有的状态,以及因事件触发而引起的状态的各种转换。

状态机的概念7.8.1

●对象状态建模:●用例状态建模:●交互状态建模:●构件状态建模:状态机的用途7.8.2

1对象状态建模:

描述一个对象在其生命期中,所具有的状态,以及因事件触发而引起的状态的各种转换。根据其用途,可分为行为状态机和协议状态机。状态机的用途7.8.2行为状态机:描述一个对象在其生命周期中可能处的各种状态,以及因事件的触发而引起状态之间转换的行为规则与方式

。前面的例子全部属于行为状态机状态机的用途7.8.2协议状态机:描述一个对象在其生命周期中可能处的状态,以及因对对象所定义操作的一种允许的调用序列,使得对象可能经历的状态变化过程。

状态机的用途7.8.2

2用例状态建模:一个用例在其执行过程中也会处于不同的状态,可以用状态机描述用例的状态,及其转换。状态机的用途7.8.2登录

3交互状态建模:一个交互描述为完成某项功能,系统中若干个对象相互交互消息的过程。一个交互过程也会存在多种状态,及其状态的转换,可以用状态机图来描述交互状态的转换。

状态机的用途7.8.2订货交互的状态机:

4构件状态建模:构件封装了多个类,构件在其生命周期中也会存在不同状态,可以用状态机对构件的状态及其转换进行建模。

状态机的用途7.8.2状态机建模应该遵循下面规则:

1)初始状态只有转出,没有转入。初始状态的转出无触发事件、无监护条件。

2)状态机最少应该有一个初态,如果存在并发可以有多个初始状态。

3)状态机最少应该有一个终态,允许存在多个终态。

4)除初态外,其他所有状态都至少应具有一个转入。

5)除终态外,其他所有状态都至少应具有一个转出。

6)一个状态机中不允许存在两个同名的状态。状态机建模规则7.8.3状态机建模的基本步骤:

1)确定对哪一个类元进行建模。

2)从类元实例的创建(始态)到被撤销(终态),确定实例可能经历的所有状态。

3)分析实例从一种状态转换到另外一种状态可能发生的事件。

4)确定当触发事件发生时,实例应该执行的动作。

5)对建模结果进行精化和细化。

6)检查与验证状态机图。状态机建模7.8.4

1)状态机图用于事物状态及其变换的建模;活动图用于过程流程建模。

2)状态结点表示事物一个状态,活动结点表示一个过程中的一个动作。

3)交互图用于多个对象为完成一个任务的交互关系,状态机图表示一个事物所处的状态,及其变换。

4)可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论