首页 > 代码库 > [1]工欲善其事必先利其器-------UML的使用(一)

[1]工欲善其事必先利其器-------UML的使用(一)

目录

  1. 什么是UML
  2. 为什么要使用UML
  3. UML基本模型图的介绍
  4. 现有哪些比较流行的UML工具

1.什么是UML:

UML:Unified Modeling Language (UML)又称统一建模语言.为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。UML是80年代末至90年代面向对象的设计与实现方法发展高潮的产物。它的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统。UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。

728DA9~1

2.为什么要使用UML:

软件设计是一个复杂的阶段,由于每个阶段关心的细节往往不一样,因此需要在不同的阶段从不同的角度对设计过程进行审视,UML则适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。

3.UML基本模型图的介绍

UML提供的基本模型图包括:

(1).类图:   展示系统中类的静态结构,用来描述系统中各种类之间的静态结构.

(2).对象图:对象图是对类图的一种实例化

(3).包图:是一种分组机制。在UML1.1版本中,包图不再看作一种独立的模型图

 

(4).状态图:它展示对象所具有的所有可能的状态以及特定事件发生时状态的转移情况

(5).用例图:展示系统外部的各类执行者与系统提供的各种用例之间的关系.

(6).时序图/顺序图:展示对象之间的一种动态协作关系(一组对象组成,随时间推移对象之间交换消息的过程,突出时间关系)

(7).合作图:从另一个角度展示对象之间的动态协作关系(对象间动态协作关系,突出消息收发关系)

(8).活动图:展示系统中各种活动的执行流程(各种活动的执行顺序、执行流程)

(9).构件图:展示程序代码的物理结构(描述程序代码的组织结构,各种构件之间的依赖关系)

(10).配置图:展示软件在硬件环境中(特别是在分布式及网络环境中)的配置关系(系统中硬件和软件的物理配置情况和系统体系结构)

 

4.现有哪些比较流行的UML工具:

现有的UML工具较多比较著名的三大工具分别是PowerDesigner,Visio,Rose。下面附几篇较为有用的文章

文章1---------解析三大UML常用工具的使用:

来自:http://blog.163.com/xzj_nj/blog/static/78276568201162111317844/

大致观点如下:

PowerDesigner它对数据库建模的支撑很好,对UML的建模行使到的各种图的支持相对滞后。对中文的支持不足。所以使用它来进行UML开发的并不多,很多人都是用它来作为数据库的建模。

Rose是直接从UML发展而诞生的设计工具,它的出现就是为了对UML建模的支持,ROSE一开始没有对数据库端建模的支持,但是在现在的版本中已经加入数据库建模的功能。对系统的代码框架生成有很好的支持。

Viso原来仅仅是一种画图工具,能够用来描述各种图形(从电路图到房屋结构图),到VISIO2000才开始引进软件分析设计功能到代码生成的全部功能,所以它可以说用于图形语义的描述比较方便,但是用于软件开发过程的迭代开发则有点牵强。

在软件工程中常用的图包括:系统框图/树图;UML图;ER图;Gantt图;任意流程图;其他任意的图表。
系统框图/树图的设计方面:Visio最好,rose不支持,PowerDesigner支持一点点不好用。
UML图设计方面:三者都支持,Rose支持全系列的,而且很容易体现迭代、用例驱动等特性,相关性最好,缺点是图形质量差,逻辑检查与控制差,生成文档不好也不适合自定义,也没有设计对象的字典可以快速查找。PowerDesigner9.5全支持,优点就是图形质量好,生成的文档容易自定义,逻辑检查与控制好,有设计对象的字典可以快速查找和快速在图形中定位,缺点就是相互之间的衔接稍微麻烦一点。相比较起来Visio的图形质量是最好的,但是衔接和相关性也是最差的,逻辑检查和控制勉强能做一点点。

ER图方面:PowerDesigner做得最好,Rose和Visio比较业余。
Gantt图方面,Visio可以做,其他的都不支持。

任意流程图不被Rose支持,Rose只支持面向业务的活动图和面向用例的活动图,限制比较多。PowerDesigner9.5支持,用起来还可以。Visio最好,因为它的图形质量最好,而且预定义的元素也最多。

任意的图表支持方面:Rose不支持其他任意的图表。PowerDesigner9.5支持,但是预定义的元素不多。这一点Visio最好。

作者给出的建议是:如果团队对业务和英文比较熟悉但是对RUP不太熟悉,建议使用Rose,因为它有完整的RUP理论支撑而且相关性很好;如果对业务和英文稍逊而且系统分析员能够良好地理解RUP,那么建议采用PowerDesigner;如果不准备全面采用RUP开发过程,PowerDesigner是最好的,Visio都是必需的,但是只是作为Rose或者PowerDesigner的补充。

 

文章2-------最好UML建模工具的选择标准解析

http://developer.51cto.com/art/201006/207931.htm

文章3-------十二个开源UML工具的介绍

http://www.educity.cn/se/1383513.html

1. StarUML

StarUML是一个开源UML项目,可以开发快速,灵活,可扩展,多功能并且免费的UML/MDA平台。此项目运行在Win32平台之上。StarUML项目的目标是成为Rational Rose、Together等商业UML工具的替代者。

2. Netbeans UML Plugin

NetBeans UML插件目前支持以下UML图:活动图,类图,序列图,状态图,以及用例图。你可以在图编辑器中排列图,拖曳图案和类等等。

3. Acceleo

Acceleo是一个代码生成器,可以将模型转换成代码(MDA方式)。Acceleo提供JEE,.NET,PHP等代码的转换,以及用于Eclipse的模板编辑器。

4. ArgoUML

ArgoUML是领先的开源UML建模工具,支持所有的标准UML 1.4图。它运行在Java平台上,支持大约十种国家的语言。

5. BOUML

BOUML是一个免费的UML 2工具箱,可以用来定义并生成C++,Java,Idl,Php以及Python代码。它运行在Unix/Linux/Solaris,Mac OS X(Power PC以及Intel)以及Windows上。BOUML速度很快,而且无需很多内存来管理数以千计的类。

6. Eclipse UML2 Tools

UML2工具是一系列基于GMF的编辑器,可以查看并编辑UML模型。这个工具专注自动生成所有UML图类的编辑器。

7. Umbrello UML Modeller

Umbrello UML建模器是一个UML图工具,在软件开发的过程中使用。在分析和设计过程中尤其好用。也可以用于软件设计的文档化。

8. Frame UML

Frame UML是一个免费UML工具,支持UML 2.xx。在Windows上运行,从模型生成源代码/CHM,或使用JavaScript解析源代码为模型。支持对象图之外的12种图。

9. UMLet

UMLet是一个开源UML工具,有一个简单的用户界面。它可以快速画图,并将图导出为eps,pdf,jpg,svg以及剪贴板。可以使用Eclipse共享图,以及创建新的、自定义的UML元素。

UMLet可以单独运行或者作为Eclipse插件在Windows,OS X以及Linux上运行。

10. TinyUML

TinyUML是一个免费工具,用于简单快速的创建UML 2图。它在Java平台上运行,需要Java SE 6及以上。

11. Taylor

Tayler MDA是一个基于Eclipse的、专门的UML建模工具。它使用了基于协议的技术,用于从流水线UML模型生成最多的代码。包含基于JPA/EJB3以及JSF/Seam/Facelets的JEE应用的模版。

12. Papyrus UML

Papyrus是一个UML2中的专业建模工具。此开源工具基于Eclipse环境。

[1]工欲善其事必先利其器-------UML的使用(一)