UML對基本結構建模---類

1.術語和概念

      類是對一組具有相同屬性、操作、關係和語義的對象的描述。在圖形上,把類畫成一個矩形。
(1)名稱
      每個類都必須有一個有別與其他類的名稱。名稱是一個文字串。單獨的名稱叫做簡單名,用類所在的包的名稱作爲前綴的類名叫做限定名。繪製的類可以僅顯示它的名稱,如下圖所示。 (一個包中的各類的名稱都必須是唯一的)
在這裏插入圖片描述
(2)屬性
      屬性是已命名的類的特性,它描述了該特性的實例可以取值的範圍。類可以有任意數目的屬性,也可以沒有屬性。
在這裏插入圖片描述
(3)操作
      操作是一個服務的實現,該服務可以由任何類的對象來請求以影響其行爲。換句話說,操作是能對一個對象所做的事情的抽象,並且它由這個類的所有對象共享。類可以有任意數目的操作,也可以沒有操作。 在這裏插入圖片描述
(4)對屬性和操作的組織
      當畫一個類時,不必同時把所有的屬性和操作都顯示出來。這意味着可以有選擇地僅顯示類的一部分屬性和操作,甚至可以一個也不顯示。空欄並不一定意味着沒有屬性或操作,只是沒有選擇要顯示它們。通過在列表的末尾使用省略號(“…”),可以明確地表示出實際的屬性和操作比所顯示的要多。
(5)職責
      職責是類的合約或責任,可以把單個職責寫成一個短語、一個句子或(最多)一段短文。當創建一個類時,就聲明瞭這個類的所有對象具有相同種類的狀態和相同種類的行爲。比如,類Wall負責瞭解牆的高度、寬度和厚度。對類建模的一個好的起點是詳述詞彙表中的事物的職責。當精化模型時,要吧這些職責轉換成能很好地完成這些職責的一組屬性和操作。在圖形上,可以在註解中描繪出類的職責。
在這裏插入圖片描述

2.常用建模技術

(1)對系統的詞彙建模
      類的最常見的用途是對從試圖解決的問題或者從解決該問題的技術得到抽象進行建模。每個這樣的抽象都是系統詞彙表的一部分,這意味着它們在整體上描述了對用戶和實現者重要的事物。爲了對系統的詞彙建模,需要做如下工作。

  • 識別用戶或實現者用於描述問題或者描述解決方案的那些事物。
  • 對於每個抽象,識別一個職責集。確保能清楚地定義每個類,而且這些職責能在所有的類之間很好的均衡。
  • 提供爲實現每個類的職責所需的屬性和操作。

(2)對系統的職責分佈建模
      一旦開始對大量的類建模,就要保證抽象提供了均衡的職責集。這意味着不能讓任何類過大或過小,每一個類應該做好一件事。對系統中的職責分佈建模,要做如下工作。

  • 識別一組爲了完成某些行爲而緊密地協同工作的類。
  • 對上述的每一個類識別出一組職責。
  • 從整體上觀察這組類,把職責過多的類分解成較小的抽象,把職責過於瑣碎的小類合成較大的類。
  • 考慮這些類的相互協作方式,相應的重新分配它們的職責,是協作中沒有哪個類的職責過多或過少。

3.提示和技巧

      在用UML堆類建模時要記住:對最終用戶說實現這來說,各個類都應該映射到某個有形的或者概念性的抽象。一個結構良好的類,應滿足如下條件。

  • 爲取自問題域或者解域的詞彙中的事物提供明確的抽象。
  • 嵌入一個小的、明確定義的職責集,並且能很好地實現它們。
  • 把抽象的規約和它的實現清楚的分開。
  • 簡單而且可理解,並句有可適應性和可拓展性。
  • 僅顯示在該類的語境中對理解抽象較爲重要的類的特性。
  • 按屬性和操作的種類進行分組,以更好地組織其長列表。
  • 把相關的類顯示在同一個類圖中。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章