最近学习了UML,只是知道他是统一的建模语言,但是具体他是怎样进行建模的还是不太清楚。大体上知道,UML是通过各种图对模型进行描述的,但是具体每一张图式从那个角度对程序进行描述的就不知道了。所以最近一直将此问题留在心头。

        最近,通过交流对此问题有了一点点了解。于是在此对其进行阐述:

    关于类图和用例图我是这样理解的。用例图就是要描述清楚程序基本要完成什么功能,类图是对程序的框架设计。类图是通过对用例图的进一步分析,设计而得到的。

既然说是类图是对程序框架的基本设计,那么UML中的其他图(是对程序部分进行说明的),就必须要在类图抽象完成后才可以画出来。类图并不是和其他的图同时完成的。

然而类图是提前进行设计的,那就肯定会有一些不太完善的地方。所以类图是在程序文档不断推进的同时不断完善起来的。

然后事时序图,我们通过讨论得出这样的结论。 时序图是从消息传递顺序的角度来描述每一个用例(这里的用例是广意上的,说的是一个完整的功能,可能一个功能要涉及多个用例,也可能一个用例会完成一组功能)。

然而协作图也同样是要来描述用例的,但他主要侧重描述对象与对象之间是怎样进行相互协作,从而完成其功能的。

所以由时序图和协作图,基本上就可以描述清楚一个用例是怎样实现的。

接下来就是对对象(也可以说是可以实例化的类)进行描述了。首先使用什么图来进行描述的呢?状态图和活动图主要是对对象进行描述的。为什么这么说呢,我们先来看一下状态图:

状态图描述的是状态之间的装换图,那么他描述的是谁的状态呢?通过对《机房收费系统》中状态图的查看,可以非常容易的发现其中描述的是对象的状态。

状态图囊括了某个对象所的状态,不受用例的影响。并描述了状态之间的转换条件。

而活动图的描述针对状态图,他描述的是状态和状态之间装换的过程。

通过这两种图的描述,基本就可以确定一个对象(类)是具有什么样的活动、和状态了。对于状态和活动,我自己认为可以看做是点与线的关系,状态描述的是点,而活动描述的是线(过程)。一条线的两头各有一个点,这个点就是状态。

有了这四种图,就基本上详细设计就搞定了。

以上是我们讨论的结果,如有错误或是不严谨的地方希望大家能够指点我一下!