第六章 状态图

第六章 状态图目录 m1 状态图概述 m2 状态图基本符号 m3 状态图组成要素 m4 活动图与状态图比较 1 状态图概述状态图 StateDiagram 一个对象在其生存期间的动态行为 表现对象响应事件所经历的状态序列以及伴随的动作

大家好,欢迎来到IT知识分享网。

目录

m
1
.状态图概述
m
2.
状态图基本符号
m
3.
状态图组成要素
m
4.
活动图与状态图比较

1 状态图概述

状态图
(State Diagram)
一个对象在其生存期间的动态行为,表现对象响应事件所经历的状态序列以及伴随的动作。
并不是所有类都有相应的状态图。状态图只适用于:具有若干个确定状态,类的行为在这些状态下会受到影响且被不同的状态改变。

第六章 状态图

m
状态机图与交互图的区别:
Ø
交互图不显示对象所有可能的动态行为,只显示特定交互(一个具体的用例)中对象的行为。
Ø
状态机图可以显示对象所有的动态行为。
m
状态图与活动图的区别:
Ø
状态机图只建模一个对象的行为,活动图可以建模多个对象的活动
Ø
活动图中也允许建模特定活动中对象的某个状态

2 状态图的基本符号

第六章 状态图

3 状态图的基本组成

m
状态
m
转换
m
事件

第六章 状态图

状态的分类与描述

什么是状态(state

    对象生命期中的某个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。

理解

    对象在任何时候都会处于某种状态中,所有对象都有状态。

    对象所处的状态决定了它如何响应所检测到的事件或所接收的消息。

    通常,事件使对象从一个状态转向另一个状态(即状态的转移)

状态分类

Ø

初态
Ø

终态
Ø

中间状态
Ø

组合状态
Ø

历史状态
m
初态(
start state

       显示状态图执行的开始。一个状态图只能有一个初态。如果一个状态机用多张图描述,则多张图用同一个初态;嵌套状态中可以使用新的初态;

m
终态(
End State

     表示终端状态;

     终态数目可以不确定。

第六章 状态图

m
一般状态的组成:
Ø
状态名(
name
Ø
进入
/
退出动作(
entry/exit action
Ø
内部转换(
internal transition
):不导致状态改变的转换,不会执行
entry

exit
动作。
Ø
子状态(
substate
): 嵌套在另外一状态中的状态
Ø
延迟事件(
deferred event
):延迟处理的事件。

第六章 状态图

m
延迟事件

      一种特殊的事件,它是指该事件不会触发状态的转换,当对象处于该状态时事件不会丢失,但会被延迟执行。

       例如,当E-mail程序中正在发送第一封邮件时,用户下达发送第二封邮件执令就会被延迟,但第一封邮件发送完成后,这封邮件就会被发送。这种事件就属于延迟事件

m
嵌套状态:

           含有子状态的状态被称为嵌套状态。

第六章 状态图

m
顺序复合状态图(嵌套)

第六章 状态图

m
顺序复合状态图(分解指示符)

第六章 状态图

m
并发复合状态图

第六章 状态图

m
历史状态

      一种伪状态。可以存储退出组合状态时所处的子状态,则返回组合状态时可以直接回到到相应的子状态。

第六章 状态图

状态迁移的触发与描述

m
迁移 (
transition

       某个特定事件发生或某些条件满足时,一个源状态下的对象完成一些特定动作,使得对象从源状态迁移到新状态。

       格式: 事件[条件]/动作表达式 发送子句

m
转换的五要素
Ø
源状态
Ø
目标状态
Ø
触发事件
Ø
监护条件
Ø
动作

第六章 状态图

m
触发状态迁移的事件

事件(Event

    对一个时间和空间上占有一定位置的有意义的事情的规格说明。事件触发状态的转移

      事件的描述格式:      事件名(参数表)

     说明:

     事件名:必须引用接收事件的对象类中的一个操

                  作或信号。

     参数表:传送给该事件的形式参数,为任选项。

m
事件的分类
Ø
状态内部事件

  1)入(出)口事件

   UML标准事件

         以关键字entry(exit)说明,进入(退出)时执行

         为隐式调用,不能中断执行

         入(出口)为进入(退出)状态时最先(后)执行的动作序列,不带条件。

m
2)do
事件

 UML标准事件

 以关键字do说明,在入口与出口事件之间执行

 do引用嵌套子图的全部动作序列

 执行可被中断。

m
3

include
事件

 UML标准事件

 以关键字include说明,在入口与出口事件之间执行

 标识内嵌子图的引用,后动作表达式含该子图名称

m
4
)自定义事件
Ø
消息:调用事件和信号事件

1)调用事件

 对象之间,一个对象请求另一个对象的操作,标在迁移线上。

 语法格式:事件名(参数表)

 可以同步或异步调用

第六章 状态图

Ø
2
)信号事件

 用发送/接收信号图符标识信号事件。

 发出信号图符表明发出子句,接收信号图符含有事件名称。

第六章 状态图

Ø
时间事件:

1

after
事件

   时间事件,以“after(时间表达式)/动作” 说明。

   括号内条件为真时执行


2

defer
事件

   延迟事件,格式为“事件名/defer”

 本状态不处理,推迟到另一个状态才处理的事件。


3

when
事件

   改变事件,格式为“when(逻辑表达式)/动作” 。

  条件为真时触发迁移。

第六章 状态图

m
引起状态迁移触发的条件

迁移语法格式:

             事件[条件] / 动作表达式   发送子句

     条件是一个由方括号围起的关系或逻辑表达式。若状态迁移既有事件又有条件,则事件发生且条件成立时触发状态迁移。

m
触发状态迁移的动作表达式

迁移语法格式:

             事件[条件] / 动作表达式   发送子句

    动作表达式是一个触发状态迁移时可执行的过程表达式。表达式可引用该状态所表示的对象的属性、操作,或者事件参数。一个状态迁移可有多个动作表达式,但是必须用“/”隔开。动作表达式从左到右执行,不允许嵌套或递归。

    例如: [计时器=超时]/下降(第一层)

状态迁移的分类

第六章 状态图

第六章 状态图

m
各种转换之间的区别
Ø
进入和退出转换:

      当进入一个状态时,执行某个动作;或当退出某个状态时,执行什么动作。这时就可以使用进入和退出转换来表示

Ø
内部转换:用来处理一些不离开该状态的事件

第六章 状态图

第六章 状态图

状态图之间的通信联系

第六章 状态图

4 活动图与状态图比较

m
状态图可以表示一个对象在生存期的行为、所经历的状态序列、引起状态转移的事件以及因状态转移而引发的动作。   
m
   
m
活动图用来表示完成一个操作所需要的活动,或者是一个用例实例(场景)的活动。活动图实际上为一个流程图,描述系统从一个活动到另外一个活动的控制流,适合描述动作流和并发处理行为。
m
相同点
Ø
1
)使用相同的图形符号。
Ø
2
)可以描述一个系统或对象在生存周期的状态或行为。
Ø
3
)可以描述系统或对象在多进程中的同步或异步操作的并发行为。
Ø
4
)可以用条件分支来描述系统或对象的行为控制流。
m
不同点
Ø
1
)触发状态(活动)发生迁移的机制不同。

        活动状态迁移不需要事件触发,活动执行完毕可以直接进入下一个活动状态。

Ø
2
) 描述多个对象共同完成一个操作的机制不同。
v
 活动图置于责任区(泳道)中,责任区将活动按责任目标和组织归属的原则分类。
v
 状态图采用状态嵌套方式描述多对象协作。

小结

m
活动图和状态图都是对系统行为进行建模技术。
m
活动图本质上上流程图,但能展示并发和控制分支。
m
状态图展示的上单个对象在生命周期内不同状态的控制流。
m
对系统动态方面建模意义重大。















免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/129634.html

(0)
上一篇 2025-08-22 20:45
下一篇 2025-08-22 21:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信