从软件开发流程上来谈UML 图 的使用

        大家都知道,计算机行业是一个用代码说话的行业。但是我们在进行编码任务之前,必须要明白,我们要做什么?我们软件的架构是什么?每个人都有对问题的认识和表达方式,如果没有一种统一的语言来规范这种表达,就无法消除自然语言带来的二义性问题,给软件设计初期的沟通交流带来障碍。

     

      本文两个角度进行介绍:

       9种UML图

       重点说下,UML图中用的比较多的类图


      9种UML图

      我从软件开发流程的角度出发,进行介绍。这样理解起来,比较顺畅。

      我们要想做一个软件,首先要了解用户的需求,用户的需求用什么体现呢?用例图。用例图主要展示的就是软件应该具备哪些功能。是站在用户角度,对软件功能的一个划分。

下面展示下用例图的一个例子:


                                            用例图 

    //TODO:至于用例图的详细画法,以后再慢慢补充

   可以先看下这篇博文,说的相当好!http://kb.cnblogs.com/page/129491/

    活动图是用例图的延伸,它表示的是执行一个用例所要进行的活动及各种活动的关系(与关系、或关系)。

   具体的活动图的说明,可以参见《团队沟通利器之UML——活动图

    例如:


                                                                            活动图

    有了上边两个图,我们基本上对用户需要什么样的软件,以及软件的基本使用流程清楚了。那么真正落实到代码上,我们应该写哪些类呢?这就涉及到类图了。  类图也是在软件设计阶段非常重要的一种UML图。下节《UML图中类图》的使用中进行详细介绍。

   类图实例:

  

        类图只是在静态上,对各个类的关系进行一个说明,但是落实到代码上,类之间的关系,大部分情况下还是通过new出类的对象来进行相互调用。如果有需要,我们需要知道,某一个时刻,各个对象之间的关系是什么,这个时候,就需要对象图,来说明了。(个人感觉对象图略显鸡肋,在某些特定场景下还适合用。大多数情况下可以用协作图代替)

        对象图实例:

      


说起对象,就不得不说各个对象之间的调用关系。如果从一个对象的角度出发,深究某个对象深层次的调用逻辑,就是序列图要做的事情了。如果探究的是各个对象之间的关系,那就是协作图,要做的事情了。

序列图例子:


协作图例子:


有时候我们需要描述一个对象的状态,比如一个订单有带支付、支付中、已完成等状态;线程对象有就绪、执行、阻塞的状态;审批流有待审批、回绝、通过等状态,下面展示一个状态图的例子。描述的是水壶对象的状态。

image

转换的五要素

image

关于状态图,可以参看《UML建模之状态图(Statechart Diagram)》和《UML——状态图》。



我们的软件或者程序必须部署到某一个环境后才能真正运行起来,描述部署的逻辑环境的图叫实现图(介绍了系统需要哪些构件以及各个构件之间的逻辑关系)。描述部署的物理环境的图叫部署图(描述了具体应该搭建哪些服务器,如何搭建等等)

实现图例子:


部署图例子:



好了,九种UML图是不是都理解了呢?后面一篇文章主要介绍下,类图的画法。


下面是参考文档:

http://blog.csdn.net/jiuqiyuliang/article/details/8552956/


展开阅读全文

没有更多推荐了,返回首页