UML中的九种图及画图技巧——活动图、状态图
UML中的各种图是UML模型的重要组成部分。近期的几篇文章中我将陆续为大家介绍UML中比较重要的九种图。大致的内容如下目录所示。
1、用例图、类图、对象图
2、序列图、协作图
3、活动图、状态图
4、组件图、部署图
在今天这篇博客中,主要讲下活动图、状态图。在上篇文章中,我们所描述的主要是UML中的静态视图。接下来需要分析和设计系统的动态视图,并且需要建立相应的动态模型。动态模型描述了系统随时间变化的行为,这些行为是从静态视图中抽取出来的。在UML中,动态模型主要是建立系统的交互图和行为图。而今天的博客中所描述的就是行为图,它包括活动图和状态图。下面我们将对这两种图以及其画图技巧进行一一阐述。
活动图
活动图是UML中描述系统动态行为的图之一,活动图是状态图的一个变体,显示了系统从一个活动到另一个活动的流程,显示了一些活动,强调的是对象之间的流程控制。在UML中,活动图本质上就是流程图,描述系统的活动、判定点和分支等。
值得注意的是,活动图中的活动用圆角矩形表示,要和状态图区别开的是,这里的圆角矩形比状态图窄一点,看上去更接近椭圆。一个活动结束自动引发下一个活动,连个活动之间用带箭头的连线相连接,连接的箭头指向下一个活动。和状态图相同的是,活动图的起点也是用实心圆表示,终点用半实心圆表示。
活动图画图技巧:要熟悉系统的流程,把自己想象成是一个参与者或者是用户,在参与的过程中,将会按照什么样的步骤是实现和完成,然后把实现和完成的过程用图形的方式表示出来。当然,这一点是每个图中都要注意的内容,那就是在不同的图中,用什么样的图形表示什么内容,表示关系时用什么样的线连接,实线还是虚线,有无箭头,这都是要注意的最基本的问题。
状态图
状态图是通过类对象的生命周期建立模型来描述对象随时间变化的动态行为。状态图显示了一个状态机,它展示了一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态间的转移。
与活动图不同的是,状态图描述的是一个类对象在生命周期内随着时间变化对象所发生的动态行为。虽然同样是描述流程,描述动态行为,状态图时在生命周期内,活动图强调的则是在系统从一个活动到另一个活动的流程。这一点上,二者有相似之处,却又有明显的不同。
状态图画图技巧:每一个状态图都有一个初始状态(用实心圆表示)和一个终止状态(用半实心圆表示),分别用来表示状态机的开始和终止。因为用状态图描述用例实例的生命周期,展现对象状态的变化,因此要把握对象的行为。还有,图形及连线的表示方法,要与活动图区别开来。
状态图,是从改变对象状态的角度来描述系统;活动图,是从对象活动状态的角度描述系统。随着学习的深入,会对UML有更深的认识。现在所积累的,知识近期学习刚刚接触的,不免会有很多错误,望见谅。
(下一篇文章我将给大家介绍组件图和部署图)