UML建模軟件目前用的主要有3種:
商業版本:Telelogic
TAU 和
Rational Rose
開源版本:StarUML
Telelogic TAU與Rational Rose的功能很強,但是需要買License。
StarUML就是希望能提供和TAU/Rose一樣功能的開源版本。
目前使用起來還是不錯的。
能熟練使用其中一個是軟件設計人員的基本功。
1 先看Telelogic TAU:
telelogic tau
Telelogic Tau SDL Suite主要用于協議的設計、描述、驗證及實現,支持圖形化的SDL編輯、在線仿真和驗證、代碼自動生成、MSC(消息順序圖)編輯及測試用例(test case)自動生成等。SDL Suite由以下幾部分組成:
SDL Editor SDL編輯器,支持圖形化的SDL編輯,同時提供一個在線檢查的分析器,可以立即標出編輯中的靜態語法和語義錯誤。
SDL Simulator SDL仿真器,支持在開發環境下進行SDL系統的仿真運行,仿真結果可自動生成MSC。仿真器還可以自動窮舉搜索SDL系統的所有路徑,保證系統的每一個狀態都是可達的。
SDL Validator SDL驗證器,結合MSC驗證系統行為是否與需求描述一致。
SDL Translator 代碼自動生成器,支持三種代碼生成:第一種是無限制的C代碼生成器,支持一般的C和C++代碼生成;第二種是優化的C代碼生成器,支持小型嵌入式系統的優化代碼生成,能滿足這種系統對代碼效率、最小內存和高性能的要求;第三種是CHILL代碼生成器。由于在仿真和驗證階段使用的代碼與最后生成的代碼是相同的,這就保證了測試系統與實際運行系統的一致。
MSC Editor MSC編輯器,支持圖形化的MSC編輯。
SDL Suite還支持與實際目標環境的集成。它包含一個運行庫,提供SDL系統與環境打交道的源代碼,支持多種操作系統,開發者可以在單任務、多任務和分布式系統之間進行選擇。自動生成的代碼加上指定操作系統的運行庫源代碼,經過合適的C編譯器編譯連接,即可在實際環境中運行。
Telelogic Tau TTCN Suite可以作為通信協議的測試集生成工具,支持協議一致性測試。 TTCN Suite提供給測試工程師強大的TTCN編輯器、句法分析器和編譯器,可將測試方案轉化為C代碼,在測試設備上運行。
Telelogic Tau還提供了從SDL系統設計和MSC直接生成TTCN測試集的功能。
Telelogic Tau3.0是Telelogic的支持uml2.0的建模工具,同時提供了模型驗證(Model Verifier),代碼生成(code generator)。這是個歐洲公司,據說已經有14年的業內經驗了。那個時候uml的版本還是負的2.0吧。
1.Uml建模
比較容易使用。
最重要的是,它對模型的要求比較嚴格。比如序列圖中的對象或者消息,必須是已經定義的。否則會出錯的。這樣嚴格應該是為了代碼生成和模型驗證吧。
Tau3.0有一種特殊的圖,叫做text圖,一般來說是一個類的方法的實現。在text 圖里面有一個action symbol,就是一個類似輸入框的東西,在里面可以寫代碼。但是代碼不是要用tau的語言來寫的,不是c,也不是java。在狀態機圖中,也可以畫action symbol。另外。還有一個圖形元素叫做text symbol,也可以寫代碼。
為了及早檢查出錯誤,tau有自動和手動check功能。跟ide里類似,比如函數名沒定義,變量沒定義等等。手動檢查,可以在要檢查的元素上按右鍵選擇,或者使用快捷鍵f8。
好像沒有timing圖支持。
2.模型驗證
這個應該是很多工具不具備的。
就是在uml模型上執行。要想進行模型驗證和代碼生成,至少需要類圖和狀態機圖。序列圖活動圖,和用例圖不被使用,其他圖根據需要有可能被使用。需要的圖和代碼生成一樣。
說是驗證,實際上就是把模型生成可執行代碼,執行。在uml模型上,能看到執行的過程等。基本的debug機能都有,step in ,step out 等,還有break point ,代碼覆蓋率統計的。比較不錯,第一次看到時驚奇了一把。
3.代碼生成
能生成c,c++,java代碼。并且能編譯成可執行文件。
還能生成telelogic的面向嵌入式系統的agile c。
這次我做的是生成agile c和c代碼。
基本上生成的代碼不可讀,不可調試,里面很多宏定義,在uml建模時候的變量名,生成之后也變得亂七八糟的了。
我們設計主要集中在業務領域,通過signal和外部聯系。當然內部也有signal通信了。
主函數是uml kernel提供的,不停的去檢測外部環境進來的signal。默認的性能比較差,什么都不干cpu就在95%以上。
4.其他
其它也提供了一些不錯的東西,比如TestingProfile,啟用了這個插件,就能建立各種test case 了。而且test case 是基于序列圖和狀態圖的,基本也不用編碼,只需要畫圖。一組test case 建立在test context之中,這個context執行后,會生成一個xml格式的報告。
2 下面看看Rational Rose:
Rational Rose是Rational公司出品的一種面向對象的統一建模語言的可視化建模工具。用于可視化建模和公司級水平軟件應用的組件構造。就像一個戲劇導演設計一個劇本一樣,一個軟件設計師使用Rational Rose,以演員(數字)、使用拖放式符號的程序表中的有用的案例元素(橢圓)、目標(矩形)和消息/關系(箭頭)設計個種類,來創造(模型)一個應用的框架。當程序表被創建時,Rational Rose記錄下這個程序表然后以設計師選擇的C++, Visual Basic,Java, Oracle8,CORBA或者數據定義語言(Data Definition Language)來產生代碼。Rational Rose的兩個受歡迎的特征是它的提供反復式發展和來回旅程工程的能力。Rational Rose允許設計師利用反復發展(有時也叫進化式發展),因為在各個進程中新的應用能夠被創建,通過把一個反復的輸出變成下一個反復的輸入。(這和瀑布式發展形成對比,在瀑布式發展中,在一個用戶開始嘗試之前整個工程被從頭到尾的完成。)然后,當開發者開始理解組件之間是如何相互作用和在設計中進行調整時,Rational Rose能夠通過回溯和更新模型的其余部分來保證代碼的一致性,從而展現出被稱為"來回旅程工程"的能力,Rational Rose是可擴展的,可以使用刻下載附加項和第三方應用軟件,它支持COM/DCOM (ActiveX),JavaBeans 和 Corba組件標準.
當前市場上基于UML可視化建模的工具很多,例如有Microsoft的Visio2002,Oracle的Designer2000,還有PlayCase 、CA BPWin、CA ERWin、Sybase PowerDesigner等等。
為什么要選擇Rational Rose呢?這就不能不提到UML的三位創始人了,面向對象領域的大師級人物:Booch、Rumbaugh和Jacobson。而這三位大師目前都在Rational公司擔任首席工程師,既然UML是業界標準的可視化建模語言,那么選擇Rational Rose的原因就不言而喻了。
而且Rose與Rational其他一系列的軟件工程方面的產品的緊密集成使得Rose的可用性和擴展性更好。
需求 構架(分析/設計) 建造(編碼) 測試
需求管理 - 收集、管理及傳達變更的軟件需求和系統需求。 Rational RequisitePro 可視化建模 - 生成一個反映軟件應用程序、其構件、接口和之間關系的圖形化的設計圖,便于理解和交流。 Rational Rose、Rational Rose RealTime 編程環境 - Rational Apex、Rational Summit/TM、Rational TestMate、
Rational Ada Analyzer 軟件質量和測試自動化 - 提供集成化編程和測試工具來簡化構件的創建,并代替昂貴、冗長且容易出錯的手工測試,從而在較短的時間內、在風險已降低的情況下生成更高質量的應用程序。 Rational Suite TestStudio、Rational Suite PerformanceStudio
配置管理
軟件配置與變更管理-在創建、修改、構建和交付軟件的過程中,控制團隊的日常開發。 Rational ClearCase、Rational ClearCase MultiSite、Rational ClearQuest、Rational ClearDDTS
軟件流程
軟件流程自動化-為軟件經理和開發人員就如何開發有商業競爭力的軟件資產提供指導。 Rational Unified Process、Rational SoDA
上面從左至右是軟件生命周期的四個典型環節,下面的配置管理和軟件流程是貫穿整個軟件生命周期的活動。
目前Rational Rose在中國的市場占有率大約是4成(CSDN的調查統計),在國外的占有率應該會更高。
一、Rationla Rose有什么用
前面已經說過了,Rational Rose是基于UML的可視化建模工具,那首先要看看UML有什么用了。UML全稱叫Unfied Modeling Language,顧名思義,UML是一種語言,一種表示法,就是一種交流溝通的工具,特別適用于軟件密集型系統的表示。
UML的統一性(Unified)表現為以下幾點:
(1)、 UML是人類思想和計算機代碼的一個連接橋梁
大家都知道,計算機能直接識別的語言就是二進制的CPU指令,早期工程師門都是直接寫這些指令輸入給計算機直接執行的,非常痛苦;
后來就出現了更好理解的匯編語言,之后就出現了各種各樣更加容易理解和編寫,更加接近人類語言的計算機高級語言,什么VB啊、DELPHI、JAVA等等。
所以從一個角度來看,其實計算機軟件的發展史,可以算是一個解決計算機語言和人類語句差異性問題的歷史,就是說如何讓開發語言更加接近人類語言。
看看下面的一個圖:
人類思想
UML
VB、DELPHI、JAVA等等。。
二進制代碼
這圖可以看出UML是人類思想和計算機代碼的一個連接橋梁。
(2)、 UML所定義的概念和符號可用于軟件開發的分析、設計和實現的全過程,軟件開發人員不必在開發過程的不同階段進行概念和符號的轉換。
(3)、 UML所用的語言元素基本都是圖形化的,便于理解和溝通,不但開發人員之間可以用來交流,客戶和開發人員之間也可以用它作為交流的工具。
目前版本的Rational Rose可以用來做以下一些工作:
1、對業務進行建模(工作流);
2、建立對象模型(表達信息系統內有哪些對象,它們之間是如何協作完成系統功能的);
3、對數據庫進行建模,并可以在對象模型和數據模型之間進行正、逆向工程,相互同步;
4、建立構件模型(表達信息系統的物理組成,如有什么文件、進程、線程、分布如何等等)
5、生成目標語言的框架代碼,VB、JAVA、DELPHI
二、 rose的核心——統一建模語言uml
(1)、 uml的發展歷程
ø 公認的面向對象建模語言出現于70年代中期。
ø 多種建模語言的出現:booch 1993 、oose 、omt _2 、ooa/ood。
ø uml 建模語言的形成,成為工業界的標準(1996年)。
其發展歷程可用下圖形象表示:
(2)、 uml(unified modeling language) 的具體內容
客觀世界是一個復雜的巨系統,需要從不同的角度來考察,才能真正理解這個系統。為了能支持從不同角度來考察系統,標準建模語言uml定義了下列5類、共9種模型圖,下面圖表作了基本的描述:
類型 圖名 描述
用例圖 用例圖 從用戶角度描述系統的功能,并指出各功能的操作者。
靜態圖 類圖 用于定義系統的類,包括描述類之間的聯系(如關聯、依賴、聚合等)以及類的內部結構,即類的屬性和操作。因此類圖是描述系統中類的靜態結構,即它描述的是一種靜態關系,在系統的整個生命周期都是有效的。
包圖 包或類組成,主要表示包與包、或包與類之間的關系。包圖用于描述系統的分層結構。
行為圖 狀態圖 描述一類對象的所有可能狀態以及事件發生時狀態的轉移條件。通常狀態圖是對類圖的補充。
活動圖 描述為滿足用例要求所要進行的活動以及活動間的約束關系。使用活動圖可以很方便地表示并行活動。
交互圖 序列圖 用以顯示對象之間的動態合作關系。它強調對象之間消息發送的順序,同時也顯示對象之間的交互過程。
協作圖 同序列圖是等價的,但著重描述對象間的協作關系。
實現圖 構件圖 描述代碼部件的物理結構及各部件之間的依賴關系。一個部件可能是一個資源代碼部件、一個二進制部件或一個可執行部件。 它包含邏輯類或實現類的有關信息。部件圖有助于分析和理解部件之間的相互影響程度。
配置圖 定義系統中軟硬件的物理體系結構。它可以顯示實際的計算機和設備(用節點表示)以及它們之間的連接關系,也可顯示連接的類型及部件之間的依賴性。在節點內部,放置可執行部件和對象以顯示節點跟可執行軟件單元的對應關系。
1、 用例圖
以訂單管理系統的用例模型部分為例進行說明。
由于他們具有略微不同的特征,因此將普通客戶從 Internet 客戶中分離開來是非常有用的。然而,因為 Internet 客戶的確顯示了一個客戶具有的所有特征,所以您可以說 Internet 客戶是客戶的一個特例,并且能夠通過主角泛化關系來指示。
在本圖中,具體用例分別是“電話訂購”(由客戶主角發出)和“Internet 訂購”(由 Internet 客戶發出)。這些用例都是更普通的“訂購”用例的變形。在本示例中,“訂購”用例是一個抽象用例。“請求目錄”用例代表一個可選行為段,它不是“訂購”用例主要目標的組成部分。它已經被分離出來,形成了一個抽象用例,用于簡化“訂購”用例。“提供客戶數據”用例是一個已分離出的行為段。它之所以被分離出來,是因為它是一個獨立功能,只有它的結果才能影響“訂購”用例。“供給客戶數據”用例還可以在其他用例中復用。“請求目錄”用例和“供給客戶數據”用例在本示例中都屬于抽象用例。
包含用例的行為插入到基本用例中的一個位置。
執行子用例的用例實例將遵循父用例的事件流,同時插入附加行為或修改在子用例事件流中定義的行為。
泛化強調父子行為的相似性。
當執行基本用例的用例實例達到基本用例中定義擴展點的位置時,將對相應擴展關系的條件進行評估。如果條件成立,或者如果沒有條件,用例實例將遵循擴展用例(或者擴展用例中與擴展點相對應的插入段)。如果擴展關系的條件不成立,就不執行擴展。
擴展表示一種可選行為
用例實例
2、 類圖
3、 包圖
4、 序列圖
在序列圖中可以有對象和主角實例,以及說明它們如何交互的消息。序列圖描述了在參與交互的對象中所發生的事件(從激活的角度來說明),以及這些對象如何通過相互發送消息進行通信。您可以為用例事件流的各種不同形式制作序列圖。
5、 協作圖
協作圖中可以有對象和主角實例,以及描述它們之間關系和交互的連接和消息。通過說明對象間如何通過互相發送消息來實現通信,協作圖描述了參與對象中發生的情況。您可以為用例事件流的每一個變化形式制作一個協作圖。
6、 狀態圖
狀態機用于對模型元素的動態行為進行建模,更具體地說,就是對系統行為中受事件驅動的方面進行建模。狀態機專門用于定義依賴于狀態的行為(即根據模型元素所處的狀態而有所變化的行為)。其行為不會隨著其元素狀態發生變化的模型元素不需要用狀態機來描述其行為(這些元素通常是主要負載管理數據的被動類)。
狀態機由狀態組成,各狀態由轉移鏈接在一起。狀態是對象執行某項活動或等待某個事件時的條件。轉移是兩個狀態之間的關系,它由某個事件觸發,然后執行特定的操作或評估并導致特定的結束狀態。圖 1 描繪了狀態機的各種元素。
7、 活動圖
一個活動圖可能包括以下元素:
· 活動狀態表示在工作流程中執行某個活動或步驟。
· 轉移表示各種活動狀態的先后順序。這種轉移可稱為完成轉移。它不同于一般的轉移,因為它不需要明顯的觸發器事件,而是通過完成活動(用活動狀態表示)來觸發。
· 決策,為其定義了一組警戒條件。這些警戒條件決定在活動完成后將執行一組備選轉移中的哪一個轉移。您也可以使用判定圖標來表示線程重新合并的位置。決策和警戒條件使您能夠顯示業務用例的工作流程中的備選線程。
· 同步示意條用于顯示平行分支流。同步示意條使您能夠顯示業務用例的工作流程中的并行線程。
8、 構件圖
由下圖可以看出系統的源代碼和運行組件。
利用該圖,負責編譯和部署系統的人員知道有哪些代碼庫,編譯代碼時生成哪些執行文件;開發人員知道有哪些代碼庫,相互間有什么關系;組件的依賴性使編譯人員知道正確的編譯順序
9、 部署圖
部署圖考慮應用程序的實際部署,包括網絡部署和組件在網絡上的位置。一個系統只有一個部署圖。部署圖包含處理器、設備、進程和處理器與設備之間的連接。
部署圖顯示網絡上的所有節點、節點間的連接和每個節點上運行的進程。
圖 適用范圍
交互圖(序列圖/協作圖) 適合于描述單個用例中多個對象的行為
狀態圖 適合于描述跨越多個用例的單個對象的行為
活動圖 適合于展現多個對象和多個用例的活動的總次序
構件圖 適用于表示系統中各個功能部件之間的依賴關系和調用關系
用例圖 捕獲系統功能
三、使用Rational Rose進行數據庫建模
Rose提供了一個叫“Data Modeler”的工具,利用它可用將對象模型轉換成數據模型,也可以將現有的數據模型轉換成對象模型,從而實現兩者之間的同步。
具體來說,Data Modeler可以:
1、將對象模型轉換成數據模型,即將類映射到數據庫的表,構成傳統的ER圖;(Data Modeler | Transform to Data Model)
2、將數據模型轉換成對象模型;(Data Modeler | Transform to Object Model)
3、利用數據模型生成數據庫DDL,也可以直接連接到數據庫里,對數據庫產生結果;(Data Modeler | Forward Engineer)
4、從現有數據庫或DDL文件里生成數據模型;(Data Modeler | Reverse Engineer)
5、將數據模型同DDL文件或現有數據庫進行比較;(Data Modeler | Compare to。。。)
注意:一個類能被轉化為一個數據庫表,它的persistence屬性必須是transient
四、rational rose的一些使用技巧
1、 units control
單元控制用來把一個包,在多人協作分析設計的時候特別有用。例如當一個包需要另外一個同事a進行完善的時候,可以把單元處于控制中,保存到另外一個單獨的文件里,然后同事a完善這個包,同時自己也可以進行其他包的設計工作,等完善完畢后,把文件重新load進去就可以繼續使用了,這樣就不會影響到其他人的同步工作了。
菜單含義:
load:從一個文件里導入一個單元包,常用來作為同步刷新
save:保存對單元包所做的更改
save as:把單元包保存到另外的一個路徑
unload:把單元包卸下來,在rose里就看不到單元包里面的內容了,用load可以把單元包重新導進來
write protection:寫保護,在rose里就不能對這個單元包進行更改了
2、import,export
導進,導出package,對利用現成的建模成果很有用,例如我們可以導進一個現成的java模型,這樣就可以直接利用java標準的對象了。
3、add-in manager
很多外部的產品都對rose發布了add-in支持,以對rose的功能做進一步的擴展,如java、oracle、delphi,有了這些add-in,rose就可以做更多的深層次的工作了。例如裝了delphi link之后,rose就可以直接可以生成delphi的框架代碼,也可以從delphi代碼轉化成rose模型,并進行兩者的同步。
選中framework wizard之后,執行file | new命令時,會出現現成的框架模型,供你選擇,例如你想用delphi開發系統,就可以選擇“delphi framework”,它已經內置了delphi大部分標準類的支持,方便你的分析和設計工作。
4、 workspace
workspace是用來記憶當前你的工作環境,即你所打開的單元包和圖,到下次打開workspace的時候,rose會根據workspace的信息,還原到上次的工作界面。
5、 常用快捷鍵
f1:任何時候都可以按f1獲得相關幫助,把鼠標放在某條菜單上按f1可以獲得這條菜單的相關幫助。
f2:刷新browser和diagram
f3:兩幅圖進行切換
f5:順序圖和協作圖等價切換
6、autosize all
使圖的內容顯示得更加整齊,當發現圖有些內容顯示得不全時,使用這個菜單很有用。
7、options的設置
五、用Rational Rose給XML DTD造型
很多開發人員都熟悉面向對象的分析和設計工具。這些工具常常都被用來輔助數據和組件模型的開發,而這些模型要被用來搭建大型的軟件系統。對于使用Rational Rose開發工具的開發人員來說,他們會驚奇地發現,你可以以給自己組件和模塊同樣的造型方式來給XML文檔造型。
基本概念
要在Rational Rose里開始創建XML模型,你就需要了解一些基本的概念。首先,你文檔里的每個節點都會成為一個類。你可以使用的XML類一共有四種類型:元素、實體、組和符號。在本文里,我們只會用到元素和組。
元素是具有某些特性的基本類,它們由你在Rational Rose所指定的類型來定義。對于元素而言,你可以選擇ANY(任意)、Content Model(內容模型)、PCDATA(PC數據)或者EMPTY(空)。EMPTY元素顯然是空的,而PCDATA類型是一個字符數據容器。對于模式復雜的類型,你要使用內容模型。
內容模型和組
對于包含有字符數據的簡單元素,你要使用PCDATA類型。但是,你的很多元素都會包含一個或者多個子元素。對于這樣的復雜元素,你必須使用內容模型類型。
為了向Rational Rose指明元素之間的關系,你還要使用組類型。從本質上講,每個內容模型元素都會擁有一個相關聯的組元素。該組元素應該被作為Rational Rose里的一個嵌套類被創建。內容模型元素的每個子元素都會通過將其與內容模型元素的組元素相關聯而被定義。
快速演練
現在讓我們來演練一個小例子。我們就從在Rational Rose創建一個新的Rational統一進程(Rational Unified Process,RUP)項目開始吧。你應該會在邏輯視圖(Logical View)里看到歡迎類圖表(Welcome Class Diagram)。你可以在這個圖表內刪除節點;不過這沒有必要。
點擊工具條上的類(Class)圖標,再點擊圖表創建一個新的類。將這類命名為Order。雙擊Order類,并選擇DTDElement框。在類規格(Class Specification)對話框里選擇內容模型類型。
在樹型視圖里右擊Order類,并選擇新建|嵌套類(New | Nested Class)將這個新的類命名為Order_grp。點擊并將Order_grp類拖放到類圖表里。雙擊Order_grp類并選擇DTDGroup框。放在一組的類應該是Sequence(順序),其出現次數應該是One(一次)。然后,展開樹型視圖里的關聯(Associations)項目,并將Order_grp關聯拖放到類圖表里。
分別創建兩個新的類——Item和Customer。這兩個類都應該是被定義為內容模型類型的DTDElement。創建Order_grp組元素同Item類的新關聯,并對Customer類進行同樣的操作。
雙擊Item類的新關聯,并將它命名為Item。然后點擊角色A的細節(Role A Detail)選項卡,并在多重下拉框里選擇1.n。這一步會指明Order元素會有一個或者多個Item元素作為其子元素。
雙擊Customer類的關聯,并將它命名為Customer。點擊角色A的細節選項卡,在多重下拉框里選擇1。這一步會指明Order元素只會有一個Customer元素作為其子元素。
如果有必要的話,你可以重復這一過程,以完成你的XML DTD。對于每個復雜的元素,只用簡單地指定內容模型類型,然后創建同DTDGroup框相關聯的嵌套類就行了。你的子元素然后就應該同組元素關聯在一起了。當你完成了自己的模型之后,你就可以右擊這些類,并選擇XML_DTD|生成DTD(XML_DTD | Generate DTD)來生成DTD的信息。你還可以從這個菜單里瀏覽DTD的源代碼。
逆向工程
你也可以通過選擇工具|XML_DTD|逆向工程XML_DTD(Tools | XML_DTD | Reverse Engineer XML_DTD)將你的DTD逆向轉換進Rational Rose里。在這個過程完成之后,你的Rational Rose模型會包含有用于你DTD類的新工具包。
3 看看StarUML:
StarUML是一個運行在Win32上快速,靈活,可擴展,功能強大的UML/MDA平臺。開源項目StarUML的目的是提供一個可以用來代替知名商業UML工具比如Rational Rose,Together等的建模工具和平臺。
StarUML是一款開放源碼的UML開發工具,是由韓國公司主導開發出來的產品,可以直接到StarUML網站(
http://www.staruml.com/)下載大約22MB的執行文件。在本書里,所使用的版本為5.0.2.1570。StarUML的載入畫面如圖所示。
StarUML具備下列多項特色。
● 可繪制9款UML圖:用例圖、類圖、序列圖、狀態圖、活動圖、通信圖、模塊圖、部署圖以及復合結構圖等。例如,可設計關于銀行金融卡業務的Use Case圖,如圖1-45所示。此外,也可以設計關于可樂販賣機的實時控制系統的Use Case圖,如圖所示。
● 完全免費:StarUML是一套開放源碼的軟件,不僅免費自由下載,連代碼都免費開放。
● 多種格式影像文件:可導出JPG、JPEG、BMP、EMF和WMF等格式的影像文件。
● 語法檢驗:StarUML遵守UML的語法規則,不支持違反語法的動作。
● 正反向工程:StarUML可以依據類圖的內容生成Java、C++、C#代碼,也能夠讀取Java、C++、C#代碼反向生成類圖。反向工程有兩個主要用途,其一是舊有的源碼反轉成圖之后,可以構建UML模型的方式繼續將新的設計添加上去;另一項用途是想要解析源碼時,可以通過反轉的類圖來理解,不再需要查看一行又一行的代碼,這將節省大量的時間和精力。
● 支持XMI:StarUML接受XMI 1.1、1.2和1.3版的導入導出。XMI是一種以XML為基礎的交換格式,用以交換不同開發工具所生成的UML模型。
● 導入Rose文件:StarUML可以讀取Rational Rose生成的文件,讓原先Rose的用戶可以轉而使用免費的StarUML。早期,Rational Rose是市場占有率最高的UML開發工具,同時也是相當昂貴的工具。由于Rational Rose非常聞名,后來讓IBM給收購了。
● 支持模式:支持23種GoF模式(Pattern),以及3種EJB模式。GoF模式出自于Erich Gamma等4人合著的Design Patterns:Elements of Reusable Object-Oriented Software一書,其內列出了23種軟件模式,可解決軟件設計上的特定問題。StarUML也支持3種常用的EJB模式,分別為EntityEJB、MessageDrivenEJB、SessionEJB。
StarUML也結合了模式和自動生成代碼的功能,方便我們落實設計。