UML 图使用心得

在软件开发中,从需求工程到代码工程,都离不开 UML 图的绘制。今天简要总结一下我以往使用 UML 图的一些体会。

很多图,都是由原始需求到代码的一种转换,只是转换的程度不一样。在软件开发过程中,不同的阶段需要不同的 UML 图,在选择使用哪些图时,我们必须理解该图能表达一些什么,即它的主要用途,以及它表达的优势在哪里:

 

用例图

用于需求描述、范围确定。

所含内容:参与角色集合、功能项集合、角色可用功能集合。

如果需要更详细地说明需求,则应该在每一个用例中添加相应的用例规约说明。

鲁棒图

则是系统的初步设计。此图虽然是行为视图,但是比较偏静态。

所含内容:角色、界面对象、控制器、事件、实体(数据存储)。

我认为此图的关注点在于表达控制器,它能让我们更好地理解控制器所涉及到的实体以及设计控制器之前的调用关系。

控制器在 OEA 中可以理解为 Service,而在 DDD 中则可以理解为 DomainService。这些控件器承载了系统中最多的流程性业务逻辑,非常重要。但是在此图中,只能看到 Service 及其涉及到的 Entity,却不能非常详细地表达它们之间的交互规则。 

类图

在需求分析阶段,在 DDD 方法论中用于描述领域模型。

在设计阶段,则是代码静态结构的设计图。

在反向工程阶段,用于精确描述当前软件的静态结构。

序列图(或协作图)

这两个表等价,一般使用序列图。强调对象间的交互关系,时间顺序关系。

我一般把它用于反向工程,表达、理解当前的代码。非常易用。

有时也用在需求分析阶段,主要是为了表达时序。

 

活动图(或流程图)

具体描述一个控制流,体现控制流的细节。

 

状态图

关注某一事物状态的变化。 

 

 

 

以下换一个角度,当在做一个全新的系统时,各阶段绘制不同的图:

需求分析阶段: 
用用例图描述整个系统的功能范围。 
鲁棒图初步描述某个需求/业务流涉及到的多种对象:界面、控制器、实体。(主要是实体) 
如果某一个需求的流程比较复杂,则使用活动图描述。

设计阶段: 
使用类图说明类之间的静态结构关系。 
使用序列图说明类之间的动态调用时序。 
使用活动图描述某种算法。

 

反向工程: 
一般则使用类图、序列图来帮助理解现有系统。

 

一篇说 UML 图的文章,里面居然没有一个 UML 图,罪过。(主要是这些图网上一搜一大把,而且贴进来太长了,总是影响整体把握这些图的意义。)

时间: 2024-09-20 17:24:07

UML 图使用心得的相关文章

UML图的视图分类

UML图(diagram)可以分成三种视图(view): 功能需求视图,着重从用户的角度描述系统的功能需求.包括: 用例图(Use case diagram) 静态结构视图,着重描述系统中对象.属性.操作和关系等静态结构.包括: 类图(Class Diagram) 对象图(Object Diagram) 组件图(Component Diagram) 部署图(Deployment Diagram) 动态行为视图,着重描述对象之间的相互协作和对象内部状态的变化.包括: 时序图(Sequence Di

JDK1.6集合类UML图, 更好的使用Collection类

JDK1.6 集合类 UML 图, 更好的使用Collection类. Sets: Lists (no need Vector) Map: Queues:

visio怎么画UML图?

  visio怎么画UML图?          1.首先笔者用来做例子的是2010版的Visio 2.打开visio,选择如图红框中的"软件和数据库"选项 3.进入之后,选择"UML模型图" 4.选择右下角的"新建" 5.在弹出的页面中,在左下角的"顶层包"上右击

画UML图用什么工具最好?

问题描述 画UML图用什么工具最好? 最近画类图和业务流程图等,PD,visio都用了,感觉很多东西不完整,比如画类图时,实现接口的箭头没找到,还用聚合,关联关系的连线都没有.是什么原因?工具本身没提供吗?或者推荐个好用的,功能完整的工具. 问题补充:lerous 写道 解决方案 到这下吧 应该可以下的http://www.oyksoft.com/soft/1880.html解决方案二:下面有破解的~解决方案三:IBM Rational Rose装起来很大,我用起来感觉怪怪的:)解决方案四:工具

如何制作 Objective-C 的UML图 [2]

如何制作 Objective-C 的UML图 [2]   说明 本教程旨在教你如何制作 Objective-C 的UML图,此为第二部分.   步骤 类继承关系 一个类符合某个协议   一个类认识另外一个对象(仅仅为认识,不是在类里面创建出来的对象)   聚合关系(持有关系,实体类中主动创建出来的对象) 依赖关系   -未完待续-  

如何制作 Objective-C 的UML图 [1]

如何制作 Objective-C 的UML图 [1]   说明 本教程旨在教你如何制作 Objective-C 的UML图,此为第一部分.   步骤 注册(在线制作) https://www.processon.com/   创建UML项目   协议,抽象类,具体类(抽象的都用红色表示)   一个类实例化了另一个类

软考下午题详解---uml图

        在上篇博客中,小编主要简单的对软考下午题当中的数据流图设计进行了一系列总结,今天我们继续来看软考下午题当中大题部分,uml图的相关知识,在我们学习的过程中,我们也已经接触过,西安交大刘惠老师讲解过uml的相关知识点,我们学习完了之后画了一套机房收费系统的uml图,那时年少,画的图太过稚嫩,画的图一遍又一遍的让师傅验收,一次又一次的修改,终于在14年的春节绽放她的笑颜,后来在个人重构.机房合作中和uml也陆陆续续的打过交道,就是在这样一个反复的过程中,小编对uml图的理解一步又一步

uml-C++UML图怎么表示一个类是另外一个类的友元类

问题描述 C++UML图怎么表示一个类是另外一个类的友元类 C++UML图怎么表示一个类是另外一个类的友元类,求大神帮助 解决方案 类成员函数声明为另外一个类的友元 解决方案二: UML中貌似没有友元这个概念 解决方案三: http://request.uml.com.cn/index.asp 看看里面怎么说的...

UML软件设计基础(UML图详解)

UML软件设计基础(UML图详解) 作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分. (1) UML语义 描述基于UML的精确元模型定义.元模型为UML的所有元素在语法和语义上提供了简单.一致.通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响.此外UML还支持对元模型的扩展定义. (2) UML表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准.这些图形符号和文字所表达的是应用级的模型,在语义