本节向大家介绍一下
UML
建模工具
Visio
、
RationalRose
、
PowerDesign
的功能与异同,相信通过本节的学习你对
UML
建模工具会有深入的了解。下面请看详细介绍。
UML
建模工具
Visio
、
RationalRose
、
PowerDesign
的功能与异同
UML
建模工具
ROSE
是直接从
UML
发展而诞生的设计工具,它的出现就是为了对
UML
建模的支持,
ROSE
一开始没有对数据库端建模的支持,但是在现在的版本中已经加入数据库建模的功能。
ROSE
主要是在开发过程中的各种语义、模块、对象以及流程,状态等描述比较好,主要体现在能够从各个方面和角度来分析和设计,使软件的开发蓝图更清晰,内部结构更加明朗(但是它的结构仅仅对那些对掌握
UML
的开发人员,也就是说对客户了解系统的功能和流程等并不一定很有效),对系统的代码框架生成有很好的支持。但对数据库的开发管理和数据库端的迭代不是很好。
UML
建模工具
PowerDesigner
原来是对数据库建模而发展起来的一种数据库建模工具。直到
7.0
版才开始对面向对象的开发的支持,后来又引入了对
UML
的支持。但是由于
PowerDesigner
侧重不一样,所以它对数据库建模的支持很好,支持了能够看到的
90%
左右的数据库,对
UML
的建模使用到的各种图的支持比较滞后。但是在最近得到加强。所以使用它来进行
UML
开发的并不多,很多人都是用它来作为数据库的建模。如果使用
UML
分析,它的优点是生成代码时对
Sybase
的产品
PowerBuilder
的支持很好(其它
UML
建模工具则没有或者需要一定的插件),其他面向对象语言如
C++
,
Java
,
VB,C#
等支持也不错。但是它好像继承了
Sybase
公司的一贯传统,对中国的市场不是很看看好,所以对中文的支持总是有这样或那样的问题。
UML
建模工具
Visio
原来仅仅是一种画图工具,能够用来描述各种图形(从电路图到房屋结构图),也是到
VISIO2000
才开始引进软件分析设计功能到代码生成的全部功能,它可以说是目前最能够用图形方式来表达各种商业图形用途的工具(对软件开发中的
UML
支持仅仅是其中很少的一部分)。它跟微软的
office
产品的能够很好兼容。能够把图形直接复制或者内嵌到
WORD
的文档中。但是对于代码的生成更多是支持微软的产品如
VB,VC++,MSSQLServer
等(这也是微软的传统),所以它可以说用于图形语义的描述比较方便,但是用于软件开发过程的迭代开发则有点牵强。
三种产品各有侧重点,各有优缺点,主要是看你的选择和你的开发方式和环境。
从目的和支持的角度来谈。首先谈一个目的问题。现在都讲究面向对象的分析和设计,俺也就基于
oo
讲起吧。版本就是
RationalSuite2002VSPowerDesigner9.5VSVisio2002
。
第一,
Case
软件的一个基本功能就是作图。
在软件工程中,我们做的图大概有以下几种:系统框图
/
树图;
UML
图;
ER
图;
Gantt
图;任意流程图;其他任意的图表。
系统框图
/
树图用在比较随意、没有形成特定的文档的时候,在这个环节上面,
UML
建模工具
Visio
最好,
rose
不支持,
PowerDesigner
支持一点点不好用。
UML
图中,三者都支持,
Rose
支持全系列的,而且很容易体现迭代、用例驱动等特性,相关性最好,缺点是图形质量差,逻辑检查与控制差,没有
Name
和
Code
的区分(
PowerDesigner
的特性)不太适合中国人,生成文档不好也不适合自定义,也没有设计对象的字典可以快速查找。
PowerDesigner9.5
全支持,优点就是图形质量好,生成的文档容易自定义,逻辑检查与控制好,有设计对象的字典可以快速查找和快速在图形中定位,缺点就是相互之间的衔接稍微麻烦一点,对
UML
和
RUP
不熟练的人用了,体现不出来迭代和用例驱动,熟练的人用了还算比较好解决。相比较起来
Visio
的图形质量是最好的,但是衔接和相关性也是最差的,逻辑检查和控制勉强能做一点点。
ER
图不用说了,做得最好的是
PowerDesigner
,
Rose
和
Visio
比较业余。
Gantt
图用于项目计划,
Visio
可以做,其他的都不支持。但是建议你不要用
Visio
做,还是用
Project
做好啦。
任意流程图不被
Rose
支持,
Rose
只支持面向业务的活动图和面向用例的活动图,限制比较多。
PowerDesigner9.5
支持,用起来还可以。
UML
建模工具
Visio
最好,因为它的图形质量最好,而且预定义的元素也最多。
Rose
不支持其他任意的图表。
PowerDesigner9.5
支持,但是预定义的元素不多。这一点
Visio
最好,不用多说了。
第二,好的
Case
软件支持
Case
文档与代码、
Case
文档与数据库之间的双向转换。
Rose
文档能够与代码、数据库双向转换,是通过中间插件实现的。
PowerDesigner
最好,大集成,支持与代码和数据库之间的双向转换,而且不需要插件。
Visio
是通过
VBA
和宏实现的,用起来稍微麻烦,虽然这个技术不难,但是现在懂这个的好像不太多。
其次谈一个支撑和协作问题。
Rose
有相对最新最完整
UML
支持,
PowerDesigner
和
Visio
稍微滞后一点。
Rose
有
RUP
体系的支持和一系列支持
RUP
的软件与
Rose
协作,这一点是
PowerDesigner
和
Visio
望尘莫及的。但是
PowerDesigner
有一个优点就是
“
一站式
”
分析设计,不需要任何插件就可以与代码和数据库双向转换,
Rose
这方面需要
Rational
公司提供的相应的插件
(
数据库不要,只是客户端代码要),这个冬冬的钱真他
××
贵!这方面
PowerDesigner
真好:)。
Visio
感觉不入流。
可能还有其他方面,我也不一一罗列了,大家可以根据自己的环境取舍。我的建议是:如果你的团队对业务和英文比较熟悉但是对
RUP
不太熟悉,建议你使用
Rose
,因为它有完整的
RUP
理论支撑而且相关性很好;如果你的团队对业务和英文稍逊而且系统分析员能够良好地理解
RUP
,那么建议你采用
PowerDesigner
;当然,如果你不准备全面采用
RUP
开发过程,
PowerDesigner
是最好的;
UML
建模工具
Visio
都是必需的,但是只是作为
Rose
或者
PowerDesigner
的补充。
EA
与
Rose UML
建模工具比较
UML profile
使用
UML
可扩展性机制扩展标准
UML
符号,即,构造型,标注值和约束。
EA
专业版
V.3.51
和
RationalRose V.2002.05
都支持
UML 1.4
九种图中的八种标准
UML
图
–
用例图,类图,序列图,协作图,活动图,状态图,实现图(组件)图,部署图,和几种
UML Profiles.
如果需要,对象图可以使用协作图来创建。不同点仅仅存在于创建
UML
图(表
1
)和扩展
UMLprofiles
时所支持的一些特性。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
表
1. EA
和
Rose
的
UML
图建模比较
Enterprise Architect
有一个通用的
UML profile
机制用来加载和运行不同的
Profiles
。
Enterprise Architect
为
UMLprofiles
指定一个特定格式的
XML
文件。而在
Rational Rose
中却需要生成一个附加项。
表
2
展示了在
EA
和
Rose
中
UML profiles
的可用性。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
表
2. EA
和
Rose
的
UML Profile
比较
双向工程
双向工程包括正向工程
- 从模型到代码
和反向工程 - 从代码到模型。一旦设计完成后,使用模型(设计模型和数据模型)信息能够生成特定编程语言的源代码或者数据库的
DDL
脚本。当开发人员添加
/
更改代码或数据库实现时,设计和数据模型能够通过双向工程同步代码或
DDL
脚本以保持一致。表
3
显示了
EA
和
Rose
双向工程的特征。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
表
3. EA
和
Rose
的双向工程
EA
为类生成类的源代码文件放在同一个包里。
Rational Rose
在
VC++
或
VB
中更多的涉及到具体的项目。
Rational Rose
也可以通过向导和提供代码模板来创建类,这样可以大大增加源代码生成的数量。另外,
EA
和
Rose
都可以应用设计模式。当使用
EA
时,用户必须自己创建模式,而
Rose
则提供了
Java
的
20
种
GOF
设计模式。
项目生命周期的支持
CASE
工具应该为团队中的所有队员完成他们的任务提供支持。关于项目生命周期的支持,
EA
将大量的功能合成一体
,
而
Rose
则主要是一个建模工具,它可以与其他的
Rational
或第三方工具集成,如
RequisitePro, TestManager, Soda, MS Word, MS Project
以达到同样的目标。
表
4
比较了
EA
和
Rose
在不同科目的功能支持。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
表
4 EA
和
Rose
对项目生命周期的支持
结论
大体上,
EA
和
Rose
在
UML
建模能力上有相似的功能。
EA
和
Rational Rose
都支持
UML
九种图中的八种。
从表
1
中可以看出
EA
在用户友好性的灵活性中比
Rose
更胜一筹,特别是序列图。
在双向工程中,
Rose
比
EA
支持更多的语言,除
C#
和
VB.NET
外
(
事实上,
Rational
开发了另外的工具
– Rational XDE for .NET
就是针对
.NET
环境的
)
。
表
4
阐明,在项目生命周期的支持方面,
EA
相对于
Rose
来说,是更好的选择。尽管你可以购买其他的
Rational
工具来协助它,但是绝大部分公司在考虑成本问题时却不认为这是一个可接受的方案。当然,你需要工具上没有或第三方工具不支持的一些其他的特定功能时,这也是要考虑的重要因素。在这一点上,
Rational Rose
得到了更广的支持。
最后,经过一系列同类型的比较,是不是费用也不同?
是的
――
非常大的不同!单是
Rose
花费就是
EA
的
28
倍。如果你要比较项目生命周期的支持,假设你是一个
Rose
用户,你将必须去购买
Rational
捆绑的一整套产品
,如
Requisite Pro, SoDA, Test Manager
等。虽然附加的工具比同类的
EA
提供了更丰富的功能,但是在大部分时间里
EA
的基本功能已经够用了。在写本文时,
EA
企业版(最高版本支持
SQL
后台)的费用是
$179.00(
£
111.58)
而
RationalRose
企业版的费用是
$5024(
£
3140),
一天整套开发包(
Rational Developer Suite
)的费用是
$8976(
£
5610)
。