UML建模工具比較

張自強發表於2013-08-23

自從1997年正式釋出UML以後,大量商用UML建模CASE工具粉墨登場。這樣為我們提供了許多的選擇,同時也要求我們在選擇正確的UML建模工具以更好地適應我們業務和軟體應用程式開發需求,達到最好的投資回報率(ROI)方面做大量的調查。在這篇文章中,我們將比較兩款CASE工具的UML建模能力、雙向工程特性和專案生命週期支援:Sparx Systems的Enterprise Architect(EA)專業版V.3.51和IBM Rational的Rational Rose企業版V.2002。

為什麼我們需要UML建模CASE工具

今天,系統的構建變得越來越複雜,UML建模CASE工具為專案相關人員(如,專案經理,分析員,設計者,構架師,開發者等)提供了許多的好處。UML建模CASE工具允許我們應用規範的物件導向分析和設計的方法與理論,遠離糾纏不清的原始碼,達到構建和設計變得更直觀,更容易地理解與修改的層次。在大型專案中,使用CASE工具更重要。通過使用CASE工具:

* 通過用例模型,業務/系統分析可以捕獲到業務/系統需求。

* 設計者/構架師所作的設計模型能在不同層次的同一層內清晰表達物件或子系統之間的互動(典型的UML圖如類圖和互動圖)。

* 開發者能快速地將模型轉變為一個可執行的應用程式,尋找類和方法的子集,以及理解它們如何互動。

模型被看作是藍圖和構建系統的最終手冊。同樣,建模也就是一種從高層並以適當的形式來考慮一個設計的表述和理解它怎樣執行的能力。

出於這些動機,UML CASE工具以及對應的方法論為我們提供了一種因系統太複雜而不能理解下層原始碼的描述系統的方法,同時允許我們更快更便宜地開發正確的軟體解決方案。

當然,要考慮CASE工具在UML建模能力,專案生命週期支援,雙向工程,資料建模,效能,價格,可支援性,易使用性等方面的不同。這篇文章將探索Rose與EA在UML建模,專案生命週期支援以及雙向工程領域的相同點和不同點,希望能幫助你在你的專案中選擇正確的工具。

UML建模特性

UML標準由三部分組成,即:構造塊(如物件,類,訊息),構造塊間的關係(如關聯,泛化)和圖(如,活動圖)。UML profile使用UML可擴充套件性機制擴充套件標準UML符號,即,構造型,標註值和約束。EA專業版V.3.51和Rational Rose V.2002.05都支援UML 1.4 九種圖中的八種標準UML圖 - 用例圖,類圖,序列圖,協作圖,活動圖,狀態圖,實現圖(元件)圖,部署圖,和幾種UML Profiles. 如果需要,物件圖可以使用協作圖來建立。不同點僅僅存在於建立UML圖(表1)和擴充套件UML profiles時所支援的一些特性。

UML圖

功能

EA

Rose

用例圖

建立描述領域的邊界

Yes

No.但是,一些工作使用文字或包。

序列

協作

序列圖與協作圖之間的相互轉化

No

Yes

序列

更改訊息的範圍

Yes

No

序列

顯示訊息層次號碼

Yes

No

序列

協作

在瀏覽器中建立物件

Yes

No

序列

管理控制元件的焦點

容易

困難

所有

圖的屬性

Yes

No

表1. EA和Rose的UML圖建模比較

Enterprise Architect

有一個通用的UML profile機制用來載入和執行不同的Profiles。Enterprise Architect為UML profiles指定一個特定格式的XML檔案。而在Rational Rose中卻需要生成一個附加項。 表2展示了在EA和Rose中UML profiles的可用性。

 

UML Profiles

EA

Rose

業務流程建模

支援Eriksson-Penker業務流程建模擴充套件

使用UML活動圖

業務建模

No

Yes

資料建模

Yes

Yes

使用者體驗建模

Yes

No

Web建模

Yes

Yes

XML DTD

No

Yes

表2. EA和Rose的UML Profile比較

雙向工程

雙向工程包括正向工程 - 從模型到程式碼 和反向工程 - 從程式碼到模型。一旦設計完成後,使用模型(設計模型和資料模型)資訊能夠生成特定程式語言的原始碼或者資料庫的DDL指令碼。當開發人員新增/更改程式碼或資料庫實現時,設計和資料模型能夠通過雙向工程同步程式碼或DDL指令碼以保持一致。表3顯示了EA和Rose雙向工程的特徵。

語言

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.

J2EE/EJB

No

Yes

CORBA

No

Yes

Ada83, Ada95

No

Yes

Database

Yes. 從資料模型到DDL指令碼的正向工程。ODBC資料來源的反向工程

Yes.DB2,Oracle, SQL 92,

SQL Server, Sybase

COM

No

Yes. 只是反向工程

Web應用程式

No

Yes

表3. EA和Rose的雙向工程

EA為類生成類的原始碼檔案放在同一個包裡。Rational Rose在VC++或VB中更多的涉及到具體的專案。 Rational Rose也可以通過嚮導和提供程式碼模板來建立類,這樣可以大大增加原始碼生成的數量。另外,EA和Rose都可以應用設計模式。當使用EA時,使用者必須自己建立模式,而Rose則提供了Java的20種GOF設計模式。

專案生命週期的支援

CASE工具應該為團隊中的所有隊員完成他們的任務提供支援。關於專案生命週期的支援,EA將大量的功能合成一體,而Rose則主要是一個建模工具,它可以與其他的Rational或第三方工具整合,如RequisitePro, Test Manager, Soda, MS Word, MS Project 以達到同樣的目標。 表4比較了EA和Rose在不同科目的功能支援。

專案科目

EA

Rose

業務建模

Yes. 使用UML Profile為業務流程建模

Yes.使用業務用例模型

需求管理

Yes. 功能和非功能需求;需求跟蹤矩陣

合併RequisitePro

分析和設計

Yes

UML類圖和互動圖,如果需要可以新增一些原型,如<<層>>,<<用例實現>>

Yes

UML類圖和互動圖 框架嚮導提供了一系列的模板來構造模型

實現

參見表3

適合C++,VB,C#和VB.NET專案

參見表3

支援大多數語言,除了.NET外

測試

Yes

No. Quality Architect提供了單元測試,但是它需要其他的Rational工具,如Test Manager,Robot

版本控制

不直接支援。使用控制單元,為將來發布計劃。

整合SCC相應版本控制應用程式

專案管理

風險管理

資源分配

專案預算

No

Web釋出

Yes

Yes

生成報表

Yes

No. 使用SoDA

多使用者協作

Yes

Yes

表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) 而Rational Rose企業版的費用是$5024(£3140),一天整套開發包(Rational Developer Suite)的費用是$8976(£5610)。

相關文章