本章介紹版本2.5.1中的所有UML圖,瞭解這些UML圖是software engineering (SE) 不可或缺的一部分。這是因為這些UML圖提供了一套建模構件,它們是SE的全球公認標準。對圖表的知識和理解為軟體工程師提供了一種方法和語言,使他們能夠勾勒和視覺化他們的想法,以及討論、辯論、提問、交流和衡量他們的工作,尤其是在專案團隊中。
瞭解UML及其基本概念相當於學習SE的大部分(如果不是全部的話)知識。UML由14種不同型別的圖組成,這14個UML圖很少由一個人一起使用。每個圖在SE中都有一個特定的用途,建模人員需要理解該用途。圖表的特定性質和用途決定了它在建模中的使用管道和位置。例如,一些圖提供了理解系統需求和行為的極好方法(例如用例圖和活動圖)。其他圖表提供了一種健壯的機制來建模資料儲存(例如,類圖)。還有另一組UML圖幫助視覺化軟體架構(例如,元件和部署圖)。
14個UML圖
我們在這裡列出所有14個UML圖,以提供這些UML圖的簡要描述。雖然這些圖構成了建模科技的工具箱,但它們並不完全相互獨立。這些圖以及其中的工件可以視覺化軟體系統的各個方面。相應的規範和檔案進一步補充了這些圖表。
- 用例圖 (use case Diagram) - 從使用者角度概述系統或業務流程的功能。使用者“使用”系統的管道是建立用例圖的起點。
- 活動圖 (activity diagram) - 對系統中任何位置的流進行建模。特別是,用例中描述正常使用者互動以及備選方案和異常的流程由這些活動圖很好地建模。
- 類圖 (Class Diagram) - 表示類及其定義和關係。問題空間中的類和實體也是解決方案空間中的詳細科技實體。定義類的內容和操作包含在此類圖中。類圖中的關係說明瞭類如何互動、合作以及如何從其他類繼承。類還可以表示關係表、使用者介面和控制器。
- 序列圖 (Sequence Diagram) - 根據物件的時間線對物件之間的互動進行建模。物件可以具體顯示在這些圖上,也可以是屬於類的匿名物件。執行時物件之間訊息的執行順序由這些圖很好地建模,囙此它們的名稱。
- 互動概述圖 (Interaction Overview Diagram) - 從總體上、高層次上概述系統內的互動;它還能夠理解UML圖(例如,序列圖)是如何相互依賴和關聯的。
- 通訊圖 (Communication Diagram) - 顯示物件在執行時如何在記憶體中相互通訊(互動)。這些通訊圖在用途上類似於序列圖;然而,它們的代表性是不同的。
- 物件圖 (Object Diagram) - 在執行時顯示記憶體中的物件及其連結。囙此,這些物件圖也有助於在實踐中視覺化多樣性。
- 狀態機圖 (State Machine Diagram) - 顯示記憶體中物件的執行時生命週期。這樣的生命週期包括物件的所有狀態以及狀態變化的條件。
- 複合結構圖 (Composite Structure Diagram) - 在執行時為元件或物件行為建模,顯示系統執行期間元件的佈局、關係和例項
- 元件圖 (Component Diagram) - 從結構上對元件及其關係進行建模。例如,這些元件可以包括可執行檔案、可連結庫、Web服務和移動服務。這些圖為系統的體系結構決策新增了價值。
- 部署圖 (Deployment Diagram) - 對系統的硬體節點和處理器的體系結構進行建模,並提供機會顯示軟體元件將駐留的節點。
- 包裝圖 (Package Diagram) - 表示系統組織的子系統和區域。它還可以建模包之間的依賴關係,並幫助將業務實體與使用者介面、資料庫、安全性和管理包分離。
- 時序圖 (Timing Diagram) - 對時間概念和物件狀態隨時間變化的管道進行建模。此外,這些圖允許同時比較多個物件的狀態。
- 剖面圖 (Profile Diagram) - 允許建立可擴充套件的設定檔,這些設定檔可應用於從設定檔繼承的元素。這些圖表通過以受控的管道擴充套件標準來新增價值。
其他UML參攷
- What is UML Collaboration Diagram?
- UML Association vs Aggregation vs Composition
- UML Class Diagram Tutorial
- How to Model Constraints in UML?
- State Machine Diagram vs Activity Diagram
- How to Identify Actors?
- Types of Actor in Use Case Model
- What is Model-View and Control?
- How to Model MVC Framework with UML Sequence Diagram?
- UML - Behavioral Diagram vs Structural Diagram
- What is UML Extensibility Mechanism?
- UML Practical Guide - All you need to know about UML modeling
- UML Modeling, Software Process and Tool
- UML - Modeling Software Architecture with Packages
- All You Need to Know about State Diagrams