UML圖來實現模型

一個系統架構設計最終要以某種形式展現出來,作爲架構師、開發者以及參與者用戶之間的一種達成共識的模型。前期設計的思想遵循現代面向對象的設計思想,三大原則也要結合實際情況設計出良好的架構。鬆散耦合、面向接口以及里氏替換原則。使用PowerDesigner設計的對象圖,也就是OOM圖,UML2.0包括13中不同的圖形,分爲兩組:行爲和結構。

      行爲圖顯示系統中對象的協作關係。

      結構圖定義類,屬性,操作和關係。

1.0用例圖Use Case

  用例圖提供了一個圖形化的用例描述。一個用例圖代表一個或者多個參與者和系統之間的相互作用。用例圖顯示了參與者要做的事情。一個參與者可以是一個人,也可以是和系統進行交互的任何外部系統。參與者不受系統控制,參與者是在系統之外定義的。

  用例圖主要包括:系統,參與者,用例,關係。

2.0類圖

  類圖在UML使用較爲廣泛。類圖代表系統的靜態結構。系統的靜態結構由類和他們之間的關係組成。

  類圖包括屬性,操作,和關係。關係則包括我們常說的1:1,1:n,0:1,0:n,n:n等

類與類之間的關係一般有 繼承(Generalization)、實現(Realization)、依賴(Dependetion)、關聯(Association)、聚合(Aggregation)、組合(Composation)。

    1。Generalization繼承的實現。實現抽象類中方法或者是擴展父類的方法,是繼承的概念。通常有類繼承和接口繼承。用空三角號加實線來表示,箭頭只向是父類。如圖:

 

2.Realization實現 專門針對於接口實現的表達。使用空三角號+虛線。在UML裏面繼承和實現會自動判斷也就是即使你使用繼承來連接兩個接口也會自動轉換爲實現,相反的你不可以使用實現來連接兩個類,那樣會沒有反應。從這個意義上說,在PD中使用Generalization能連接類和接口的兩種關係,而具體是哪種關係會由父類來判斷。

 

 

3。Dependency依賴關係。使用箭頭+虛線來表示你中有我,我中有你這種強關係。可以簡單的理解,就是一個類A使用到了另一個類B,而這種使用關係是具有偶然性的、、臨時性的、非常弱的,但是B類的變化會影響到A;比如某人要過河,需要借用一條船,此時人與船之間的關係就是依賴;表現在代碼層面,爲類B作爲參數被類A在某個method方法中使用;參數級別的引用:

 

4。Association關聯關係。他體現的是兩個類、或者類與接口之間語義級別的一種強依賴關係,比如我和我的朋友;這種關係比依賴更強、不存在依賴關係的偶然性、關係也不是臨時性 的,一般是長期性的,而且雙方的關係一般是平等的、關聯可以是單向、雙向的;表現在代碼層面,爲被關聯類B以類屬性的形式出現在關聯類A中,也可能是關聯 類A引用了一個類型爲被關聯類B的全局變量;

 

這種線來標識兩者的數量關係是靠近箭頭的是引用的類,這頭放的0...*之類的數量關係表示從Class_A角度看關係。

 

5.Aggregation聚合 是關聯關係的一種特例,他體現的是整體與部分、擁有的關係,即has-a的關係,此時整體與部分之間是可分離的,他們可以具有各自的生命週期, 部分可以屬於多個整體對象,也可以爲多個整體對象共享;比如計算機與CPU、公司與員工的關係等;表現在代碼層面,和關聯關係是一致的,只能從語義級別來 區分;

6.Composition組合組合也是關聯關係的一種特例,他體現的是一種contains-a的關係,這種關係比聚合更強,也稱爲強聚合;他同樣體現整體與部分間的關係,但此 時整體與部分是不可分的,整體的生命週期結束也就意味着部分的生命週期結束;比如你和你的大腦;表現在代碼層面,和關聯關係是一致的,只能從語義級別來區 分;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章