1. 程式人生 > >UML之九種圖和包圖

UML之九種圖和包圖

UML是一種模型化語言,而模型大多以圖表的方式表現出來,一份典型的建模圖表通常包含幾個塊或框,連線線和作為模型附加資訊之用的文字,這些雖然簡單卻很重要,在UML中相互聯絡和擴充套件,因此從圖的方面對UML做進一步總結。

       一、九種圖

       1、用例圖(use case diagrams)

       用例圖用來描述使用者的需求,從使用者的角度描述系統的功能,並指出各功能的執行者,強調誰在使用系統,系統為執行者完成哪些功能。

       用例圖的基本元素是角色、用例和關係。角色是指人員的角色,用來指明這個用例和哪個角色相關;用例是指對功能的描述;關係是指明執行者和用例之間的關係。

        

如上圖,描述一個用例在執行時執行者與用例之間的互動過程,人員角色是維護人員,維護工作包含新增、修改和刪除,用例除了與執行者有包含關係外,還可以有泛化、關聯和擴充套件關係。

       2、類圖(Class diagrams)

       類圖用於定義系統中的類,包括描述類的內部結構和類之間的關係,它主要用於描述系統的靜態結構。

       

在UML中,類一般由三部分組成:

      (1、)類名(name),每個類都必須有一個名字,類名是一個字串

      (2、)類的屬性(attributes),屬性指類的性質,即類的成員變數,一個類可以有任意多個屬性,也可以沒有屬性

      (3、)類的操作(operations),操作是類的任意一個例項物件都可以使用的行為,是類的成員方法

       類與類之間的關係有關聯、依賴、泛化和實現,具體解釋及例圖請點選UML中的四種關係

       3、物件圖(Object diagrams)

       物件圖是類圖的一個例項,描述了系統在具體時間點上所包含的物件以及各個物件之間的關係。

       物件圖中包含物件和鏈,物件是類的特定例項,鏈(Link)是類之間關係的例項,由於物件存在生命週期,因此係統只能在某一時間段記憶體在。下面的例圖可以很好的看清物件圖是顯示類的物件例項

     

下面是類圖和物件圖的比較:


        

   4、狀態圖(Statechart diagmars)

       狀態圖用來描述類的物件所有可能的狀態以及事件發生時狀態的轉移條件,通俗來說就是描述一個特定實體如何根據當前狀態對不同事件作出反應。

       狀態圖由表示狀態的節點和表示狀態之間轉換的帶箭頭的直線組成。

       

       在這個系統中,學生是一個物件,系統進入接受了密碼校驗的刺激後做出的進入或返回的反應,學生的登陸、未登入、進入、選課等都是學生的狀態,狀態圖描述了這些狀態之間的轉化。

       5、活動圖(Activity diagrams)

活動圖表現從一個活動到另一個活動的控制流,是內部處理驅動的流程,它用來描述滿足用例要求所要進行的活動及活動間的約束關係,且使用活動圖有利於識別系統的並行活動。

       

       活動圖描述的是整個系統的事情,是對用例圖的一種細化,從活動圖中可以看出學生是如何一步一步完成選課的。活動圖側重從行為的動作來描述,狀態圖側重從行為的結果來描述。

       6、序列圖(Sequence diagrams)

       序列圖主要用於交互發生一系列順序,顯示物件之間的互動。它通過描述物件之間傳送訊息的時間順序顯示多個物件之間的動態協作。序列圖中的元素包括物件、生命線、啟用期和訊息。

        

       通過客戶到ATM機取款的過程體現了物件間訊息傳遞的時間順序,客戶取款先要通過ATM機的操作,然後傳遞到銀行,最後再返回結果。

       7、協作圖(Collaboration diagrams)

協作圖是動態檢視的另一種表現形式,強調參加互動的各物件的組織,側重於說明哪些物件之間有訊息的傳遞,因此,協作圖只對相互間有互動作用的物件和這些物件間的關係建模,而忽略了其他物件和聯絡。

       

       在網上找到了一張協作圖,簡直大讚,完完全全體現出了各物件之間的協作關係。

       8、構件圖(Component diagrams)

       構件圖用來描述程式碼構件的物理結構以及各構件之間的組織與依賴關係。一個構件可以是一個資原始檔、一個二進位制檔案或者一個可執行的檔案。

       構件圖從軟體架構的角度來描述一個系統的主要功能,如子系統、類、包、構件等,使用構件圖最重要的就是複用。

       

       構件圖中除了依賴關係,還有泛化、關聯和實現關係。

       9、部署圖(Deployment diagrams)

部署圖定義了系統中硬體的物理體系結構,用來描述實際的物理裝置以及它們之間的連線關係,從部署圖中可以瞭解到軟體和硬體元件之間的物理關係以及處理節點的元件分佈情況。

      部署圖使用的三種情況:

       a、對嵌入式系統進行建模

       b、對CS架構(客戶伺服器系統)進行建模時

       c、對分散式系統進行建模時

       

       構件圖和部署圖都是實現過程中要用到的圖,構件圖主要的目標用於描述系統中有哪些構件以及這些構件的組成及關係,它的組成是構件、介面和關係,有四種;而部署圖的組成是節點和關係,只能有依賴和關聯關係,沒有泛化和實現。

       二、包圖(Package diagrams)

在UML中除了9種正式的圖外還有一個包圖也不可忽略,在UML建模機制中,模型的組織是通過包來實現的,包把建立的各種模型組織起來,形成各種功能或用途的模組,並可以控制包中元素的可見性以及描述包之間的依賴關係。通過這種方式,系統模型的實現者可在高層把握系統的結構。同時,包是UML中唯一的組織機制。

       包可以擁有其他元素,這些元素可以是類、介面、構件、節點、協作、用例和圖,甚至可以是其他包。

       

       上圖描述的是兩個包之間的依賴關係,Client包要用到Supplier包裡面的類。

       在UML中可以利用類圖和構件圖來推斷軟體的結構,利用順序圖、協作圖、狀態圖和活動圖來描述軟體的行為,而在系統的軟硬體邊界上面利用實施圖來討論軟體執行所需要的處理器和裝置的拓撲結構。通過對UML圖的總結,使自己在建模標準上進一步學習,繼續加油!