2024年5月26日发(作者:)

杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料

1.1 跟我学UML建模工具StarUML(第12部分)——应用StarUML创建

状态图的创建示例

1.1.1 UML状态图及相关技术

1、状态机图和状态机图中的状态

(1)状态机图

UML状态图(也称UML状态机图)是展示对象状态与状态转换的视图,在UML中,

状态机图用于对具有事件驱动的特性的动态行为的建模。

(2)状态机图中的状态

状态是状态机图的重要组成部分,所有对象都具有状态,状态是对象执行了一系列活

动的结果。当某个事件发生后,对象的状态将发生变化。

2、状态图(State Diagram)

(1)什么是状态图

用来描述一个特定对象的所有可能状态及其引起状态转移的事件,从而可以实现对单

个的对象行为建模。

(2)状态图的主要作用

大多数面向对象技术都用状态图表示单个对象在其生命周期中的行为,同时也显示了

该实体如何根据当前所处的状态对不同的时间做出反应的。

3、什么场合中应该要采用状态图

当功能行为的改变和状态有关时才需要创建出UML状态图,因为通过状态图可以显示

对象在其生命周期中依次经历的各种状态。但如果要表示由系统内部生成的功能操作(而

非外部事件)驱动的事件流时,则一般使用UML活动图。如下给出一个Account对象的状

态图示例:

杨教授大学堂,版权所有,盗版必究。 1/14页

杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料

4、为什么要使用UML状态图

(1)动态特性是由事情所触发的

一个完全静态的系统是无任何应用价值的,因为没有事件发生也就不可能产生出具体

的功能。所有真正的软件应用系统自身都含有某些动态的特性,并且这些动态的特性是由

内部或外部发生的事件所触发。

比如,在一个ATM机上,动作是由一个用户按下相关的功能按钮引发而开始一个事件;

在一个自动机器人中,动作是由机器人碰上一个对象而引发的;在一个网络路由器中,动

作是由检测消息缓冲区是否溢出而引发的。如下图为一个图书销售业务的状态图示例:

(2)为单个的对象和共同工作的对象建模

使用UML交互图可以对共同工作的对象群体的行为进行建模,而使用状态图,则可以

杨教授大学堂,版权所有,盗版必究。 2/14页