一、相关概念

状态图:展现一个状态机,由状态、转换、事件和活动组成。关注系统的动态视图。强调对象行为的事件顺序
活动图:特殊的状态图,强调对象间的控制流程。

1、什么是状态图

状态图(State Diagram)用来描述一个特定对象的所有可能状态及其引起状态转移的事件

描述哪些状态之间可以转换

不同的状态下有不同的行为

二、UML表示状态图

某航空订票系统中订单对象的状态图

Inked20161230193333908_LI.jpg

1,状态图用初始状态(Initial State)表示对象创建时的状态,每一个状态图一般只有一个初始状态,用实心的圆点表示。

2,每一个状态图可能有多个终止状态(Final State),用一个实心圆外加一个圆圈表示。

3,状态图中可有多个状态框,每个状态框中有两格:上格放置状态名称,下格说明处于该状态时,系统或对象要进行的活动(Action)

20161230194242136.png

entry/action:表示进入该状态时执行的动作。
exit/action:表示退出该状态图时执行的动作。
do/action:表示处于该状态时执行的动作。
event/action:表示处于内部迁移状态时响应某个事件所执行的动作。

4,从一个状态到另一个状态之间的连线称为转移(Transition)。事件有可能在特定的条件下发生,在UML中这样的条件称为守护条件(Guard Condition),发生的事件可通过对象的动作(Action)进行处理。状态之间的转移可带有标注,由三部分组成(每一部分都可省略),其语法为:事件名 [条件] / 动作名

简单状态:不包含其他状态的状态称为简单状态。

复合状态:又称为组合状态,可以将若干状态组织在一起可以得到一个复合状态,包含在一个复合状态中的状态称为子状态。

复合状态:

20161230194757054.png

带同步条的状态图(分支与合并

20161230195003991.png

案例:

20161230195148243.png

三、活动图

如下:

1651481953712.jpg

由活动状态和动作状态、转换和对象组成。