自從1997年正式發(fā)布UML以后,大量商用UML建模CASE工具粉墨登場(chǎng)。這樣為我們提供了許多的選擇,同時(shí)也要求我們?cè)谶x擇正確的UML建模工具以更好地適應(yīng)我們業(yè)務(wù)和軟件應(yīng)用程序開(kāi)發(fā)需求,達(dá)到最好的投資回報(bào)率(ROI)方面做大量的調(diào)查。在這篇文章中,我們將比較兩款CASE工具的UML建模能力、雙向工程特性和項(xiàng)目生命周期支持:Sparx Systems的Enterprise Architect(EA)專業(yè)版V.3.51和IBM Rational的Rational Rose企業(yè)版V.2002。
為什么我們需要UML建模CASE工具今天,系統(tǒng)的構(gòu)建變得越來(lái)越復(fù)雜,UML建模CASE工具為項(xiàng)目相關(guān)人員(如,項(xiàng)目經(jīng)理,分析員,設(shè)計(jì)者,構(gòu)架師,開(kāi)發(fā)者等)提供了許多的好處。UML建模CASE工具允許我們應(yīng)用規(guī)范的面向?qū)ο蠓治龊驮O(shè)計(jì)的方法與理論,遠(yuǎn)離糾纏不清的源代碼,達(dá)到構(gòu)建和設(shè)計(jì)變得更直觀,更容易地理解與修改的層次。在大型項(xiàng)目中,使用CASE工具更重要。通過(guò)使用CASE工具:
* 通過(guò)用例模型,業(yè)務(wù)/系統(tǒng)分析可以捕獲到業(yè)務(wù)/系統(tǒng)需求。
* 設(shè)計(jì)者/構(gòu)架師所作的設(shè)計(jì)模型能在不同層次的同一層內(nèi)清晰表達(dá)對(duì)象或子系統(tǒng)之間的交互(典型的UML圖如類圖和交互圖)。
* 開(kāi)發(fā)者能快速地將模型轉(zhuǎn)變?yōu)橐粋€(gè)可運(yùn)行的應(yīng)用程序,尋找類和方法的子集,以及理解它們?nèi)绾谓换ァ?O:P>
模型被看作是藍(lán)圖和構(gòu)建系統(tǒng)的最終手冊(cè)。同樣,建模也就是一種從高層并以適當(dāng)?shù)男问絹?lái)考慮一個(gè)設(shè)計(jì)的表述和理解它怎樣運(yùn)行的能力。
出于這些動(dòng)機(jī),UML CASE工具以及對(duì)應(yīng)的方法論為我們提供了一種因系統(tǒng)太復(fù)雜而不能理解下層源代碼的描述系統(tǒng)的方法,同時(shí)允許我們更快更便宜地開(kāi)發(fā)正確的軟件解決方案。
當(dāng)然,要考慮CASE工具在UML建模能力,項(xiàng)目生命周期支持,雙向工程,數(shù)據(jù)建模,性能,價(jià)格,可支持性,易使用性等方面的不同。這篇文章將探索Rose與EA在UML建模,項(xiàng)目生命周期支持以及雙向工程領(lǐng)域的相同點(diǎn)和不同點(diǎn),希望能幫助你在你的項(xiàng)目中選擇正確的工具。
UML建模特性UML標(biāo)準(zhǔn)由三部分組成,即:構(gòu)造塊(如對(duì)象,類,消息),構(gòu)造塊間的關(guān)系(如關(guān)聯(lián),泛化)和圖(如,活動(dòng)圖)。UML profile使用UML可擴(kuò)展性機(jī)制擴(kuò)展標(biāo)準(zhǔn)UML符號(hào),即,構(gòu)造型,標(biāo)注值和約束。EA專業(yè)版V.3.51和Rational Rose V.2002.05都支持UML 1.4 九種圖中的八種標(biāo)準(zhǔn)UML圖 - 用例圖,類圖,序列圖,協(xié)作圖,活動(dòng)圖,狀態(tài)圖,實(shí)現(xiàn)圖(組件)圖,部署圖,和幾種UML Profiles. 如果需要,對(duì)象圖可以使用協(xié)作圖來(lái)創(chuàng)建。不同點(diǎn)僅僅存在于創(chuàng)建UML圖(表1)和擴(kuò)展UML profiles時(shí)所支持的一些特性。
| UML圖
|
功能
|
EA
|
Rose
|
| 用例圖
|
建立描述領(lǐng)域的邊界
|
Yes
|
No.但是,一些工作使用文本或包。
|
| 序列
協(xié)作
|
序列圖與協(xié)作圖之間的相互轉(zhuǎn)化
|
No
|
Yes
|
| 序列
|
更改消息的范圍
|
Yes
|
No
|
| 序列
|
顯示消息層次號(hào)碼
|
Yes
|
No
|
| 序列
協(xié)作
|
在瀏覽器中創(chuàng)建對(duì)象
|
Yes
|
No
|
| 序列
|
管理控件的焦點(diǎn)
|
容易
|
困難
|
| 所有
|
圖的屬性
|
Yes
|
No
| 表1. EA和Rose的UML圖建模比較
Enterprise Architect 有一個(gè)通用的UML profile機(jī)制用來(lái)加載和運(yùn)行不同的Profiles。Enterprise Architect為UML profiles指定一個(gè)特定格式的XML文件。而在Rational Rose中卻需要生成一個(gè)附加項(xiàng)?!”?展示了在EA和Rose中UML profiles的可用性。
| UML Profiles
|
EA
|
Rose
|
| 業(yè)務(wù)流程建模
|
支持Eriksson-Penker業(yè)務(wù)流程建模擴(kuò)展
|
使用UML活動(dòng)圖
|
| 業(yè)務(wù)建模
|
No
|
Yes
|
| 數(shù)據(jù)建模
|
Yes
|
Yes
|
| 用戶體驗(yàn)建模
|
Yes
|
No
|
| Web建模
|
Yes
|
Yes
|
| Yes
|
No
|
| XML DTD
|
No
|
Yes
| 表2. EA和Rose的UML Profile比較
雙向工程
雙向工程包括正向工程 - 從模型到代碼 和反向工程?。拇a到模型。一旦設(shè)計(jì)完成后,使用模型(設(shè)計(jì)模型和數(shù)據(jù)模型)信息能夠生成特定編程語(yǔ)言的源代碼或者數(shù)據(jù)庫(kù)的DDL腳本。當(dāng)開(kāi)發(fā)人員添加/更改代碼或數(shù)據(jù)庫(kù)實(shí)現(xiàn)時(shí),設(shè)計(jì)和數(shù)據(jù)模型能夠通過(guò)雙向工程同步代碼或DDL腳本以保持一致。表3顯示了EA和Rose雙向工程的特征。
語(yǔ)言 |
EA |
Rose |
| ANSI C++
|
Yes
|
Yes
|
| Visual C++
|
No
|
Yes
|
| VB6
|
Yes
|
Yes
|
| Java
|
Yes
|
Yes
|
| C#
|
Yes
|
No
|
| VB.NET
|
Yes
|
No
|
| Delphi
|
Yes
|
No. 第三方附加項(xiàng).
|
| J2EE/EJB
|
No
|
Yes
|
| CORBA
|
No
|
Yes
|
| Ada83, Ada95
|
No
|
Yes
|
| Database
|
Yes. 從數(shù)據(jù)模型到DDL腳本的正向工程。ODBC數(shù)據(jù)源的反向工程
|
Yes.DB2,Oracle, SQL 92,
SQL Server, Sybase
|
| COM
|
No
|
Yes. 只是反向工程
|
| Web應(yīng)用程序
|
No
|
Yes
| 表3. EA和Rose的雙向工程
EA為類生成類的源代碼文件放在同一個(gè)包里。Rational Rose在VC++或VB中更多的涉及到具體的項(xiàng)目。 Rational Rose也可以通過(guò)向?qū)Ш吞峁┐a模板來(lái)創(chuàng)建類,這樣可以大大增加源代碼生成的數(shù)量。另外,EA和Rose都可以應(yīng)用設(shè)計(jì)模式。當(dāng)使用EA時(shí),用戶必須自己創(chuàng)建模式,而Rose則提供了Java的20種GOF設(shè)計(jì)模式。
項(xiàng)目生命周期的支持
CASE工具應(yīng)該為團(tuán)隊(duì)中的所有隊(duì)員完成他們的任務(wù)提供支持。關(guān)于項(xiàng)目生命周期的支持,EA將大量的功能合成一體,而Rose則主要是一個(gè)建模工具,它可以與其他的Rational或第三方工具集成,如RequisitePro, Test Manager, Soda, MS Word, MS Project 以達(dá)到同樣的目標(biāo)。 表4比較了EA和Rose在不同科目的功能支持。
| 項(xiàng)目科目
|
EA
|
Rose
|
| 業(yè)務(wù)建模
|
Yes. 使用UML Profile為業(yè)務(wù)流程建模
|
Yes.使用業(yè)務(wù)用例模型
|
| 需求管理
|
Yes. 功能和非功能需求;需求跟蹤矩陣
|
合并RequisitePro
|
| 分析和設(shè)計(jì)
|
Yes
UML類圖和交互圖,如果需要可以添加一些原型,如<<層>>,<<用例實(shí)現(xiàn)>>
|
Yes
UML類圖和交互圖 框架向?qū)峁┝艘幌盗械哪0鍋?lái)構(gòu)造模型
|
| 實(shí)現(xiàn)
|
參見(jiàn)表3
適合C++,VB,C#和VB.NET項(xiàng)目
|
參見(jiàn)表3
支持大多數(shù)語(yǔ)言,除了.NET外
|
| 測(cè)試
|
Yes
|
No. Quality Architect提供了單元測(cè)試,但是它需要其他的Rational工具,如Test Manager,Robot
|
| 版本控制
|
不直接支持。使用控制單元,為將來(lái)發(fā)布計(jì)劃。
|
集成SCC相應(yīng)版本控制應(yīng)用程序
|
| 項(xiàng)目管理
|
風(fēng)險(xiǎn)管理
資源分配
項(xiàng)目預(yù)算
|
No
|
| Web發(fā)布
|
Yes
|
Yes
|
| 生成報(bào)表
|
Yes
|
No. 使用SoDA.
|
| 多用戶協(xié)作
|
Yes
|
Yes
| 表4 EA和Rose對(duì)項(xiàng)目生命周期的支持
結(jié)論大體上,EA和Rose在UML建模能力上有相似的功能。 EA和Rational Rose都支持UML九種圖中的八種。 從表1中可以看出EA在用戶友好性的靈活性中比Rose更勝一籌,特別是序列圖。 在雙向工程中,Rose比EA支持更多的語(yǔ)言,除C#和VB.NET 外(事實(shí)上,Rational 開(kāi)發(fā)了另外的工具 – Rational XDE for .NET 就是針對(duì).NET環(huán)境的)。 表4闡明,在項(xiàng)目生命周期的支持方面,EA相對(duì)于Rose來(lái)說(shuō),是更好的選擇。盡管你可以購(gòu)買其他的Rational工具來(lái)協(xié)助它,但是絕大部分公司在考慮成本問(wèn)題時(shí)卻不認(rèn)為這是一個(gè)可接受的方案。當(dāng)然,你需要工具上沒(méi)有或第三方工具不支持的一些其他的特定功能時(shí),這也是要考慮的重要因素。在這一點(diǎn)上,Rational Rose得到了更廣的支持。
最后,經(jīng)過(guò)一系列同類型的比較,是不是費(fèi)用也不同? 是的――非常大的不同!單是Rose花費(fèi)就是EA的28倍。如果你要比較項(xiàng)目生命周期的支持,假設(shè)你是一個(gè)Rose用戶,你將必須去購(gòu)買Rational捆綁的一整套產(chǎn)品,如Requisite Pro, SoDA, Test Manager等。雖然附加的工具比同類的EA提供了更豐富的功能,但是在大部分時(shí)間里EA的基本功能已經(jīng)夠用了。在寫(xiě)本文時(shí),EA企業(yè)版(最高版本支持SQL后臺(tái))的費(fèi)用是$179.00(£111.58) 而Rational Rose企業(yè)版的費(fèi)用是$5024(£3140),一天整套開(kāi)發(fā)包(Rational Developer Suite)的費(fèi)用是$8976(£5610)。
|