1. 程式人生 > >eclipse下生成Java類圖和時序圖,生成UML圖

eclipse下生成Java類圖和時序圖,生成UML圖

在應用系統軟體開發過程中,如果軟體由很多物件組成,它的結構僅僅憑藉分析很難理清,同時為了有利於軟體的開發及重用,所以在開發系統之前建模是非常有必要的,在眾多的建模方法中選擇一種適應自身應用特點,方便不同背景的人們交流的建模方法已經成為開發人員及使用者的迫切願望。UML 是面向物件軟體開發中的一種通用、統一的圖形模型語言,是用於軟體系統規約化、視覺化構造和建模的有效工具。本文介紹了一種簡單快速的 UML 編輯軟體 —— PlantUML,PlantUML 是一個用來繪製 UML 圖的 Java 類庫。支援的 UML 圖包括:時序圖、用例圖、類圖、元件圖、活動圖等。PlantUML 可以幫助開發人員建立和編輯 UML,有較好的應用前景。

隨著計算機技術的飛速發展,面向物件的軟體開發技術發展迅速並獲得了廣泛應用,在面向物件的分析、設計技術及面向物件的程式設計語言方面均獲得了豐富的研究成果,面向物件的方法佔據著主導地位。統一建模語言 UML(Unified Modeling Language,簡稱 UML)是面向物件軟體開發中的一種通用、統一的圖形模型語言,是用於軟體系統規約化、視覺化構造和建模的有效工具。他已經被國際化標準組織吸收為軟體建模領域的國際標準。

PlantUML 的安裝及配置

PlantUML 支援在多個平臺上安裝使用,比如 Eclipse,NetBeans,oneline servlet 等,它也支援多種語言的編輯,例如 C/C++,PHP,Java,Html 等。使用者可以從 PlantUML 的官方網站上下載所需用的相應的檔案。

http://plantuml.sourceforge.net/download.html

下面本文僅以 Eclipse 開發操作平臺為例簡要地介紹 PlantUML 的安裝及配置方法。

  1. 下載安裝成功後,重啟 Eclipse。會在 Windows->Show View->Other 看到 PlantUML 的圖示。
    圖 2 . PlantUML 圖示成功顯示
    圖 2 . PlantUML 圖示成功顯示

    使用者也可以下載相應的 plantuml.jar檔案,進行手動安裝。

PlantUML 的使用例項

使用者可以根據不同的需要,利用 PlantUML 可以生成不同的檢視。操作非常簡單方便。

圖 3. PlantUML 操作介面
圖 3. PlantUML 操作介面

下面本文將用實際的語法例項對應用 PlantUML 生成的各種檢視進行說明介紹。

時序圖

時序圖亦稱為 序列圖或循序圖,是一種 UML 行為圖。它通過描述 物件之間傳送 訊息的時間順序顯示多個物件之間的動態協作。它可以表示 用例的行為順序,當執行一個用例行為時,時序圖中的每條訊息對應了一個類操作或狀態機中引起轉換的觸發事件。

語法例項:

 @startuml 
 title Sequence Diagram Example 
 actor Tester1 #red 
 actor Tester2 #Yellow 
 Tester1 -> Tester2: 傳送請求
 Tester2 --> Tester1: 回覆請求 
 @enduml
圖 4. 時序圖檢視
圖 4. 時序圖檢視

用例圖

用例圖 - 由主角、用例以及它們之間的關係構成的圖。

語法例項:

 @startuml 
 : 管理員 : as Admin << 管理員 >> 
 ( 應用程式 ) as (Use) 
 Tester1 -> ( 開始 ) 
 Tester2 --> (Use) 
 Admin ---> (Use) 
 note right of Admin : 管理員身份
 note left of (Use) 
  實現 Notes Domino 的功能
 end note 
 note "測試人員進行測試工作" as user 
 ( 開始 ) .. user 
 user .. (Use) 
 @enduml
圖 5. 用例圖檢視
圖 5. 用例圖檢視

類圖

類圖 - 顯示了模型的靜態結構,特別是模型中存在的類、類的內部結構以及它們與其他類的關係等。

語法例項:

 @startuml 
 skinparam classAttributeIconSize 12 
 class Test << 主函式 >> { 
 -Function1 
 +Function2 
 #Function3 
 ~Function4 
 ~method1() 
 +method2() 
 #method3() 
 ~method4() 
 } 
 Test <|-- Test2 
 Test1 o-- Test2 
 Test *-- Test3: 呼叫
 @enduml
圖 6. 類圖檢視
圖 6. 類圖檢視

活動圖

活動圖 - 闡明瞭業務 用例實現的工作流程。業務用例工作流程說明了業務為向所服務的業務主角提供其所需的價值而必須完成的工作。業務用例由一系列活動組成,它們共同為業務主角生成某些工件。工作流程通常包括一個基本工作流程和一個或多個備選工作流程。

語法例項:

 @startuml 
 (*) --> "Start" 
 note right: Start Testing 
 if "result" then 
  -->[true] "Next Testing"
  --> "End"
  -right-> (*) 
 else 
  ->[false] "Change Testing"
  -->[Ending process] (*) 
 endif 
 @enduml
圖 7. 活動圖檢視
圖 7. 活動圖檢視

元件圖

元件圖 - 用來反映程式碼的物理結構。從元件圖中,您可以瞭解各軟體元件(如原始碼檔案或動態連結庫)之間的編譯器和執行時依賴關係。使用元件圖可以將系統劃分為內聚元件並顯示程式碼自身的結構。

語法例項:

 @startuml 
 title Lotus 
 interface "IBMDocs" as SC 
 package "Test1" { 
 SC - [ 第一個元件 ] 
 Notes - [ 第一個元件 ]: use 
 Symphony - [ 第二個元件 ] 
 [ 其他元件 ] 
 } 
 package "Test2" { 
 Connections - [ 第三個元件 ] 
 [ 第一個元件 ] --> iNotes 
 } 
 @enduml
圖 8. 元件圖檢視
圖 8. 元件圖檢視

狀態圖

狀態圖 - 描述一個實體基於事件反應的動態行為,顯示了該實體如何根據當前所處的狀態

對不同的事件做出反應的。

語法例項:

 @startuml 
 [*] --> Test 
 state "Test" as Test { 
  state "Testing Module" as TM 
  state "Configuring Module" as CM 
  [*] --> CM 
  TM --> CM : Testing1 
  CM --> TM : Testing2 
 } 
 note right of Test : 狀態圖例項
 @enduml
圖 9. 狀態圖檢視
圖 9. 狀態圖檢視

物件圖

物件圖 - 顯示了一組物件和他們之間的關係。使用物件圖來說明資料結構,類圖中的類或元件等的例項的靜態快照。物件圖和類圖一樣反映系統的靜態過程,但它是從實際的或原型化的情景來表達的。物件圖顯示某時刻物件和物件之間的關係。一個物件圖可看成一個類圖的特殊用例,例項和類可在其中顯示。物件也和合作圖相聯絡,合作圖顯示處於語境中的物件原型(類元角色)。

語法例項:

 @startuml 
 object Test1 
 object Test2 
 @enduml
圖 10. 物件圖例項
圖 10. 物件圖例項

下面本文將簡要地介紹一個具體例項的應用。

這個例項是由其官方網站提供:

圖 11 是由 PlantUML 的方法生成的例項圖。

圖 11. 具體例項圖
圖 11. 具體例項圖

在 PlantUML 的官方主頁中,有對各種方法更為詳盡的描述及說明。文字僅僅列舉了一些簡單的語法規則,利用 PlantUML 做出的各種檢視。可以看到 PlantUML 提供了非常簡單的語法規則,為使用者進行編輯提供了較為便捷的方法。

PlantUML 提供了多種語言的編輯方式,如 TXT 文字,HTML,Java,C/C++,LaTex,APT,Word 及 URL 等多種方式,滿足不同的使用者需求。

總結

本文向讀者介紹了一種開源的軟體— PlantUML,它是一種簡單快速的 UML 編輯軟體,PlantUML 是一個用來繪製 UML 圖的 Java 類庫。提供了各種簡單有效地方法,支援的 UML 各種檢視,包括:時序圖、用例圖、類圖、元件圖、活動圖等。PlantUML 可以幫助開發人員建立和編輯 UML,為開發人員提供了更多的開發條件,有較好的應用前景。