UML统一建模语言是一种标准化的建模语言,它在系统建模和设计方面占有重要的地位,我们一般的软件开发过程:需求分析,概要设计,详细设计,编码,测试,部署等,而现代化的软件开发过程是一个逐步迭代开发的过程,需求分析,概要设计,详细设计,编码,测试等开发过程重复迭代的过程,在迭代过程中,可能会缺少其中的某一个过程。UML主要应用于概要设计,详细设计过程中,当然也可以用于编码中。UML主要包括以下几个方面:1 用例图,2 活动图,3 顺序图,4 协作图,5 类图等,当然UML还包括状态图,包图,部署图等,但是在实际应用中主要使用以上5中图。用例图与活动图用来阐明业务需求或系统需求,并为顺序图和协作图提供相应的信息。顺序图和协作图一起来阐明用例的实现过程,此着重点在于活动,即完成用例的一般步骤。类图主要在用例图,活动图,顺序图,协作图等的基础上,用来阐明系统设计的基础类的设计。
1 用例图和活动图
用例图主要用来说明需求的,可以是业务需求或系统需求,是需求(或系统功能模块的)在一定程度的细分。在用例图中,用例之间只存在使用和扩展两种关系,对于使用关系,表示一个用例使用了另外用例(功能),其中箭头指向为被使用的用例。扩展关系,表示了用例扩展了另外一个用例(的功能),箭头方向为角色所启动的用例,即被扩展的用例(功能范围被扩展的用例)。角色与用例之间是一种关系即角色启动了用例(是一种关联关系),箭头重角色指向用例,表示角色启动了此用例。角色是用例图中必不可少的,角色可以是人,系统等,即系统外与系统交互的对象。角色之间的关系只存在一般化的关系,在此可以看作是继承关系。角色之间的箭头指向一般化的内,表示此类具体化或继承了一般角色。 活动图用来表示用例实现的步骤(主要在于要做什么),即要想实现此用例需要活动,活动图即连接活动图,活动之间的连接线的箭头下一个活动,可以理解为交接的意思,即此活动已经完了,接下由下个活动来执行。活动可以包含几个小的步骤用来表示此活动细分的步骤。活动图是用来阐明用例事件流的。其包括初始点,结束点,活动,决策点,状态(经过活动后,对象状态改变后的状态,活动与状态之间通过虚线相连),泳道(角色或对象的作用范围,表示泳道内的活动是由泳道所有者发起的或所有)。
2 顺序图和协作图
顺序图和协作图都是用来表示实现用例的事件流的,但是先比与活动图来说,顺序图和协作图仅表示单一的事件流,而活动图却可以表示用例所有的事件流,因此活动图中存在着决策单元(决策点),但是顺序图和协作图却不存在任何的决策单元,即不可能存在事件的分叉,仅表示单一确定的事件流。顺序图是一种时间顺序图,能够很好的表示类的活动在时间上的关系。顺序图包括对象,对象生命线,消息(事件),角色等。角色表示启动用例或初始活动的角色。对象负责消息传递的对象。协作图着重在于对象间消息。从中可以看作对象所关联的对象的多少,可以看出依赖性。对象间通过线连接,连接线上可以装载消息。
3 类图
类图是用来阐明类(可以包括接口)间关系的UML图,在UML中类之间的关系可以关联,依赖,强关联,继承,和 实现。关联一般在表示一个类是另一个类的属性,关联关系是属性上的关系。依赖关系是方法的返回或方法参数上的关系,不是属性上的关系。强关联是一种关联关系,是属性上的组合关系,是比关联更强的一种关系。继承是子类与父类之间的关系。实现类与接口之间的关系。在类图中,连线上的箭头可以解读为,关联于,继承于,实现了,依赖于等即箭头所指向的为父类的方向,接口的方向等。对于关联和依赖,还可以有着数量上的关系。即一对多,多对多,一对一,多对一等。类图中的类还有可见性,类型等。
4总结
从上可以得出一般的开发流程应该是:1 获得需求及需求文档。2 根据需求来画出相应的用例图。3 根据1和2 画出各用例的活动图。4 根据1,2和3 画出每个用例的所有(或主要)的顺序图和协作图。5 根据1,2,3和4 画出类图。6 编码。7 测试。8 部署。9 重复1到8的过程。在上的过程中,需要注意粒度的问题,尤其是2到5,粒度的大小在一定程度上决定了,图的多少,如果粒度太细,则相应的图可以太多,影响图的可读性,使得图失去了相对于文字而言最重要的意义即可读和可理解性。因此要注重系统的粒度的分割,在画UML图时也应该如此。一般应该重粗粒度到细粒度来进行建模,以便理解。