在軟體開發過程中,有哪些UML圖是比較常用的?
軟體開發流程有許多流派,對於哪些 UML 圖最常用,不同流派的專家有不同的看法。UML 建模流程通常參考的是 UP(統一過程)和敏捷建模方法。
常用的 UML 圖可分靜(態)圖、動(態)圖兩類,靜態圖主要描繪軟體的靜態結構,而動態圖主要描繪軟體的動態行為。
常用 UML 動態圖(5 個):
用例圖,活動圖,狀態機圖,序列圖,通信圖。
常用 UML 靜態圖(4 個):
類圖,包圖,部署圖,構件圖。
以上這 9 種圖是從 UML 1.x 開始就有的,因而很基礎,建議初學者先掌握這些圖。
不常用的 UML 圖大多是 UML 2.x 後來添加的,有 5 個:
對象圖(1.x 起)、組成結構圖、擴集圖、交互概覽圖、時序圖。
相關問題:
軟體設計(總體設計、概要設計、詳細設計)中常用的圖有哪些? - UML我介紹UML中的各個圖的功用。
1、用例圖
用例圖描述角色以及角色與用例之間的連接關係。說明的是誰要使用系統,以及他們使用該系統可以做些什麼。一個用例圖包含了多個模型元素,如系統、參與者和用例,並且顯示了這些元素之間的各種關係,如泛化、關聯和依賴。
2、類圖
類圖是描述系統中的類,以及各個類之間的關係的靜態視圖。能夠讓我們在正確編寫代碼以前對系統有一個全面的認識。類圖是一種模型類型,確切的說,是一種靜態模型類型。
3、活動圖
描述用例要求所要進行的活動,以及活動間的約束關係,有利於識別並行活動。能夠演示出系統中哪些地方存在功能,以及這些功能和系統中其他組件的功能如何共同滿足前面使用用例圖建模的商務需求。
4、狀態圖
描述類的對象所有可能的狀態,以及事件發生時狀態的轉移條件。可以捕獲對象、子系統和系統的生命周期。他們可以告知一個對象可以擁有的狀態,並且事件(如消息的接收、時間的流逝、錯誤、條件變為真等)會怎麼隨著時間的推移來影響這些狀態。一個狀態圖應該連接到所有具有清晰的可標識狀態和複雜行為的類;該圖可以確定類的行為,以及該行為如何根據當前的狀態變化,也可以展示哪些事件將會改變類的對象的狀態。狀態圖是對類圖的補充。
5、序列圖
序列圖是用來顯示你的參與者如何以一系列順序的步驟與系統的對象交互的模型。順序圖可以用來展示對象之間是如何進行交互的。順序圖將顯示的重點放在消息序列上,即強調消息是如何在對象之間被發送和接收的。
6、協作圖
和序列圖相似,顯示對象間的動態合作關係。可以看成是類圖和順序圖的交集,協作圖建模對象或者角色,以及它們彼此之間是如何通信的。如果強調時間和順序,則使用序列圖;如果強調上下級關係,則選擇協作圖;這兩種圖合稱為交互圖。
-
7、構件圖
描述代碼構件的物理結構以及各種構建之間的依賴關係。用來建模軟體的組件及其相互之間的關係,這些圖由構件標記符和構件之間的關係構成。在組件圖中,構件時軟體單個組成部分,它可以是一個文件,產品、可執行文件和腳本等。
8、部署圖
是用來建模系統的物理部署。例如計算機和設備,以及它們之間是如何連接的。部署圖的使用者是開發人員、系統集成人員和測試人員。
從使用的頻度來看,
class diagram/object diagram, sequence diagram, activity diagram, state diagram,timging diagram
用例圖,類圖,序列圖。
最重要的不是類圖,而是交互圖,一個系統是動態運行的,只有動態圖才能真正體現並貼近建模思想,類圖只是實施階段的藍圖。
推薦閱讀:
※如何反駁 UML 無用論?
※如何用面向對象設計一個程序,經典推薦?
※你認為最好的 UML 建模工具是哪一個(最好是免費軟體)?