UML是Unified Modeling Language的縮寫,它是一種建模語言,是用來設計軟件藍圖的可視化建模語言。它支持面向對象系統的分析、設計、實現和交付等各個環節,可以用於系統的理解、設計、瀏覽、維護和信息控制。UML是由3部分構成的,其中基本構造塊中的圖是UML中最重要的部分。
我先介紹一下這九種圖的概念:
(1)、用例圖(use case diagrams):用來描述用戶的需求,從用戶的角度描述系統的功能,並指出個功能的執行者,強調誰在使用系統,系統爲執行者完成哪些功能。
( 2)、類圖(class diagrams):用於定義系統中的類,包括描述類的內部結構和類之間的關係。類圖主要用於描述系統的靜態結構。
(3)、對象圖(object diagrams): 對象圖是類圖的一個實例,描述了系統在具體時間點上所包含的對象以及各個對象之間的關係。
(4)狀態圖(statechart diagrams):用來描述類的對象所有可能的狀態以及事件發生時狀態的轉移條件。
(5)活動圖(activity diagrams):用來描述滿足用例要求所要進行的活動以及活動間的約束關係,使用活動圖有利於識別系統的並行活動。
(6)序列圖(sequence diagrams):描述對象之間的交互順序,着重體現對象間消息傳遞的時間順序,強調對象之間消息的發送順序,同時也顯示對象之間的交互過程。
(7)協作圖(collaboration diagrams):描述對象之間的合作關係,更側重於說明哪些對象之間有消息的傳遞。
(8)、構件圖(component diagrams):構件圖用來描述代碼構件的物理結構以及各構件之間的依賴關係。一個構件可以使一個資源文件、一個二進制文件或者一個可執行文件。
(9)、實施圖(deployment diagrams):部署圖定義了系統中硬件的物理體系結構,用來描述實際的物理設備以及它們之間的連接關係。
概念說完了,下面我來說一下它們之間的聯繫吧:
(1)類圖和對象圖:首先它們都是靜態圖,其中對象圖是類圖的一個實例。它們的區別主要有以下幾點:
類圖 | 對象圖 |
類具有3個分欄:名稱、屬性和操作 |
對象只有兩個分欄:名稱和屬性 |
在類的名稱分欄中只有類名 |
對象的名稱形式爲“對象名:類名”,匿名對象的名稱形式爲“:類名” |
類的屬性分欄定義了所有屬性的特徵 |
對象則只定義了屬性的當前值,以便用於測試用例或例子中 |
類中列出了操作 |
對象圖中不包括操作,因爲對於同屬於同一個類的對象而言,其操作是相同的 |
類使用關聯連接,關聯使用名稱、角色、多重性以及約束等特徵定義。類代表的是對對象的分類所以必須說明可以參與關聯的對象的數目。 |
對象使用鏈連接、鏈擁有名稱、角色,但是沒有多重性。對象代表的是單獨的實體,所有的鏈都是一對一的,因此不涉及到多重性。 |
(3)序列圖和協作圖:它們都屬於交互圖,交互圖是用來描述對象之間的交互關係的圖。同樣是從概念上來看它們的區別:序列圖着重體現了對象間消息傳遞的時間順序,強調對象之間消息的發送順序,同時也顯示對象之間的交互過程;而協作圖也像序列圖一樣傳遞相同的信息,但它不關心什麼時候消息被傳遞,只關心對象的角色。
小結:
學習UML是爲了更好的進行軟件開發,UML視頻的學習已經基本完成,但是這還遠遠不夠,對UML的學習最重要的是實踐。