UML期末複習題——2.8:UML Design Class Diagram(DCD)

第八題:設計類圖html

 

重要概念:編程

1. 類圖(Class Diagram): 類圖是面向對象系統建模中最經常使用和最重要的圖,是定義其它圖的基礎。類圖主要是用來顯示系統中的類、接口以及它們之間的靜態結構和關係的一種靜態模型。UML用類圖表示類、接口及其關聯。
dom

2. 表示類元屬性的方法:spa

  a.屬性文本:如currentSale:Sale.net

  b.關聯線表示法設計

  c.二者兼有htm

  屬性文本表示法的完整格式:visibility name : type multiplicity = default {property-string}對象

  關聯線表示的屬性:導航性箭頭+多重性(放在目標一端,而不是源的一端)+角色名(只放在目標一段,用以表示屬性名稱)+不須要關聯名稱blog

  準則:一般對數據類型對象使用屬性文本表示法,對其餘對象使用關聯線繼承

3.關聯端點的描述法

  關聯的端點能夠附加導航性箭頭,也可包含可選的角色名(關聯端點名)來表示屬性名稱。

  關聯端點還能夠附加多重性值

  關聯端點還能夠使用{ordered}、{ordered、list}這樣的特殊字符串

4.對象之間的關係

 

   a. 依賴(Dependency)

 

  實體之間一個「使用」關係暗示一個實體的規範發生變化後,可能影響依賴於它的其餘實例。更具體地說,它可轉換爲對不在實例做用域內的一個類或對象的任何類型的引用。其中包括一個局部變量,對經過方法調用而得到的一個對象的引用(以下例所示),或者對一個類的靜態方法的引用(同時不存在那個類的一個實例)。也可利用「依賴」來表示包和包之間的關係。因爲包中含有類,因此你可根據那些包中的各個類之間的關係,表示出包和包的關係。

 

 

   b. 關聯(Association)——單向關聯、雙向關聯、多維關聯、自身關聯

 

  實體之間的一個結構化關係代表對象是相互鏈接的。箭頭是可選的,它用於指定導航能力。若是沒有箭頭,暗示是一種雙向的導航能力。在Java中,關聯轉換爲一個實例做用域的變量,就像圖E的「Java」區域所展現的代碼那樣。可爲一個關聯附加其餘修飾符。多重性(Multiplicity)修飾符暗示着實例之間的關係。在示範代碼中,Employee能夠有0個或更多的TimeCard對象。可是,每一個TimeCard只從屬於單獨一個Employee。
  單向關聯:實線箭頭表示
  雙向關聯:實線無箭頭表示
  多維關聯:關聯中心有一個◇(菱形)、實線無箭頭進行鏈接表示
  自身關聯:由自身出發,回到自己 

 

 

   c. 聚合(Aggregation)——較強的關聯關係,局部離開總體以後不會失效

 

  聚合是關聯的一種形式,表明兩個類之間的 總體/局部關係聚合暗示着總體在概念上處於比局部更高的一個級別,而關聯暗示兩個類在概念上位於相同的級別。聚合也轉換成Java中的一個實例做用域變量。

 

  關聯和聚合的區別純粹是概念上的,並且嚴格反映在語義上。聚合還暗示着實例圖中不存在迴路。換言之,只能是一種單向關係。

 

 

 

   d. 合成(Composition)——更強的關聯關係,局部離開總體以後失效 

 

  合成是聚合的一種特殊形式, 暗示「局部」在「總體」內部的生存期職責。合成也是非共享的。因此,雖然局部不必定要隨總體的銷燬而被銷燬,但總體要麼負責保持局部的存活狀態,要麼負責將其銷燬。

 

  局部不可與其餘總體共享。可是,總體可將全部權轉交給另外一個對象,後者隨即將承擔生存期職責。Employee和TimeCard的關係或許更適合表示成「合成」,而不是表示成「關聯」。

 

   e. 泛化(Generalization)——繼承關係

 

  泛化表示一個更泛化的元素和一個更具體的元素之間的關係。泛化是用於對 繼承進行建模的UML元素。在Java中,用extends關鍵字來直接表示這種關係。

 

 

   f. 實現(Realization)——接口的實現

 

  實例關係指定兩個實體之間的一個合同。換言之,一個實體定義一個合同,而另外一個實體 保證履行該合同。對Java應用程序進行建模時,實現關係可直接用implements關鍵字來表示。

 

  接口是一種特殊的類,具備類的結構但不可被實例化,只能夠被實現(繼承)。UML類圖中接口有兩種表示方法:矩形表示法(如圖-2中的飛翔的接口)和棒棒糖表示法(如圖-2中唐老鴨類中實現講人話的接口)。矩形表示法,頂端有<<接口>>或者<<interface>>,第一行:接口名稱,第二行:接口方法。棒棒糖表示法,圓圈旁爲接口名稱,接口方法在實現類中出現,如唐老鴨類中的講話。

                                                                             

 

5.約束

  UML約束是對UML元素的限制條件。約束以花括號之間的文本表示,如{size>10}

  對屬性的約束條件,寫在屬性後面。對操做的約束,以註釋或後置條件的形式寫出。可是都要有{}。

 

繪製要點:

  具體方法:http://www.cnblogs.com/riky/archive/2007/04/07/704298.html

       http://www.uml.org.cn/oobject/201104212.asp

       http://www.cnblogs.com/silent2012/archive/2011/09/07/2169946.html

       http://developer.51cto.com/art/201007/209503.htm

  實現實例:http://blog.csdn.net/flanet/article/details/7746004

  根據實例來看,能夠很好的理解掌握類圖中須要能夠熟練運用的知識點。

 

注意事項:

  1.畫圖步驟

  首先把順序圖裏面的類抄過來。

  而後查看領域模型,把領域模型裏面對應這裏的類的屬性copy過來,而後把領域模型裏面的關聯到這裏變成實現。

  補充類的方法。

  控制器類方法的數量只能與前面的系統事件數量同樣,系統事件有多少個就只能寫多少個方法。

  1) 前面的has,own這種關聯不能留下來,若是留下來,扣分,應把概念類圖中的關聯改成有箭頭沒文字(或有在關聯端點有文字)的表示

  2) 多重性要保持

  3) 不要寫什麼set方法、get方法,這是編程的問題,不是這裏的問題

  2.必定要與交互圖一一對應

  方法和對象都要一一對應!!

  3.Domain中先把除了UI和Controller以外的都放進去

  分別肯定每一個對象的屬性,依賴,實現

  畫出domain中的各個對象之間的關係(存在的方法)

  4.領域模型==》概念透視圖

   設計模型(DCD)==》軟件透視圖

 

試題答案:

相關文章
相關標籤/搜索