UML

📢 本文由 gemini-2.5-flash 翻譯

物件導向分析強調的是對一個系統中物件的特性和行為的定義。目前,國際上已經出現了多種物件導向的方法。業界普遍接受的為 UML (Unified Modeling Language, 統一塑模語言)

統一塑模語言是物件導向軟體的標準化塑模語言。由於其簡單、統一,又能夠表達軟體設計中的動態和靜態資訊,目前已經成為視覺化塑模語言事實上的工業標準

UML 由 3 個要素構成:UML 的基本建構區塊、支配這些建構區塊如何放置在一起的規則和運用於整個語言的一些共同機制

UML 的詞彙表包含 3 種建構區塊:事物、關係和圖。事物是對模型中最具代表性的成分的抽象;關係把事物結合在一起;圖凝聚了相關的事物

事物

UML 中有 4 種事物:結構事物、行為事物、分組事物和註釋事物

(1) 結構事物 (Structural Thing)

結構事物是 UML 模型中的名詞。它們通常是模型的靜態部分,描述概念或實體元素

結構事物包括:

  • 類別 (Class)

  • 介面 (Interface)

  • 協作 (Collaboration)

  • 使用案例 (Use Case)

  • 主動類別 (Active Class)

  • 元件 (Component)

  • 成品 (Artifact)

  • 節點 (Node)

結構事物的圖形表示

(2) 行為事物 (Behavior thing)

行為事物是 UML 模型的動態部分。它們是模型中的動詞,描述了跨越時間和空間的行為

行為事物包括:

  • 互動 (Interaction)
  • 狀態機 (State Machine)
  • 活動 (Activity)

行為事物的圖形表示

(3) 分組事物 (Grouping Thing)

分組事物是 UML 模型的組織部分,是一些由模型分解成的「盒子」。在所有的分組事物中,最主要的分組事物是套件 (Package) 。套件是把元素組織成組的機制,這種機制具有多種用途。結構事物、行為事物甚至其他分組事物都可以放進套件內。套件與元件 (僅在執行時存在) 不同,它純粹是概念上的 (即它僅在開發時存在)

包

(4) 註釋事物 (Annotational Thing)

註釋事物是 UML 模型的解釋部分。這些註釋事物用來描述、說明和標註模型的任何元素。註記 (Note) 是一種主要的註釋事物。註記是一個依附於一個元素或者一組元素之上,對它進行約束或解釋的簡單符號

註解

關係

UML 中有 4 種關係:依賴、關聯、泛化和實現

依賴 (Dependency)

依賴是兩個事物間的語義關係,其中一個事物 (獨立事物) 發生變化會影響另一個事物 (依賴事物) 的語義。在圖形上,把一個依賴畫成一條可能有方向的虛線

依賴

關聯 (Association)

關聯是一種結構關係,它描述了一組鏈,鏈是物件之間的連接。聚合 (Aggregation) 是一種特殊類型的關聯,它描述了整體和部分間的結構關係。在關聯上可以標註重複度 (Multiplicity) 和角色 (Role)

關聯

聚集

關聯、聚合、組合

關聯:關聯是一種結構關係,它描述了一組鏈,鏈是物件之間的連接。在關聯上可以標註重複度 (多重度) 和角色 例:雇主與員工

聚合:部分和整體的生命週期不一致,整體消失了,部分仍然存在,部分可以脫離整體存在 例:班級與學生,公司與員工

組合:部分和整體的生命週期一致,整體消失了,部分也消失了,部分不可以脫離整體存在 例:人與大腦

依賴與單向關聯

依賴較偶然,臨時。例如:人與食物,僅餓時依賴,飽了便不依賴

單向關聯,比較強烈,用單向線表示。例如:人與氧氣,魚與水

泛化 (Generalization)

泛化是一種特殊/一般關係,特殊元素 (子元素) 的物件可替代一般元素 (父元素) 的物件。用這種方法,子元素共享了父元素的結構和行為。圖形上指向父元素

泛化

實現 (Realization)

實現是類元之間的語義關係,其中一個類元指定了由另一個類元保證執行的契約。在兩種情況下會使用實現關係:一種是在介面和實現它們的類別或元件之間;另一種是在使用案例和實現它們的協作之間

實現