理解UML多重性

在軟體設計與建模領域中,統一模型語言(UML)是一種強大的工具,可用於視覺化和記錄系統的結構與行為。UML中一個關鍵的概念是多重性,它定義了參與關聯的物件數量的限制。本文深入探討多重性的概念、其重要性,以及它在UML圖表中的應用方式。

什麼是多重性?

UML中的多重性是一種約束,用以指定參與關聯一端的物件數量。它回答了如「一個人最多可以擁有幾輛車?」或「一輛車最多可以由幾個人駕駛?」之類的問題。透過定義多重性,您可以設定每個類別中物件之間關聯的規則,提供一種清晰且簡潔的方式來表達這些關係。

表達多重性

多重性通常以一個範圍來表示,用以定義關聯中允許的最少與最多物件數量。表達多重性的格式為:

  • 精確數量:一個單一數字,表示物件的確切數量。
  • 範圍:兩個以兩個點(..)分隔的數字,表示最小與最大數量。
  • 星號(*):表示物件數量無限。

例如:

  • 1:恰好一個物件。
  • 0..1:零個或一個物件。
  • 1..*:至少一個物件,無上限。
  • *:任何數量的物件,包括零。

What is Multiplicity

在關聯中應用多重性

在對類別之間的關聯進行建模時,多重性會被分配到關聯的每一端。例如,考慮「」類別與「」類別之間的關聯:

  • 問題 1: 一個人最多可以擁有多少輛汽車?
  • 問題 2: 一輛特定的汽車最多可以由多少人駕駛?

這些問題的答案會放在關聯中相應類別的旁邊。如果一個人可以擁有一到多輛汽車,那麼靠近「汽車」類別的數量限制會是0..*。反之,如果一輛汽車可以由一到多人駕駛,那麼靠近「」類別的數量限制會是1..*.

範例:運送與產品

為說明,考慮以下情境:一個運送必須至少包含一個產品,但也可以包含所需數量的產品。關聯中「產品」端的數量限制會是1..*,表示一個運送必須至少包含一個產品,但也可以包含多個。

符號與標記

在UML圖中,數量限制使用特定的標記方式表示:

  • 星號(*): 表示無限數量的物件。
  • 範圍(最小值..最大值): 指定物件的最小和最大數量。
  • 精確數量: 表示物件的精確數量。

這些符號有助於明確定義規範類別之間關係的約束和規則。

範例 1:人員與汽車

在此範例中,一個人員 可擁有零至多個汽車,且一本汽車 可由一個至多個人員.

範例 2:貨運與產品

在此範例中,一個貨運 必須包含至少一個產品 但可包含所需數量的產品。

SoWkIImgAStDuULApaaiBbO8piWio4tDAr6evkLIKD1EpiyhISpCAmueoayfJIufrj2qKl39B2wnWGhOyNBLydB1D4C5eNepyv9pIbDIKpppO8OYjCD4OFhXrYePwkbfAIdewi9OC3Ej561kKG1gSaZDIm6x6W00 (321×218)

範例 3:圖書館與書籍

在此範例中,一個圖書館 可擁有許多書籍,且一本書籍 可在一個圖書館.

SoWkIImgAStDuULApaaiBbRmoKmgIYogLAZcvL9GqCv8B7RApyykrj2q0ieKbzY0U7QyNBMyN30D816ewhJyqhmKppoe4H0zO2PK0yni9KCb1LrT1IK3FJqj9OW1LWh9-NabYPbvnGf0unrIyrB0RW80 (210×218)

範例 4:教師與學生

在此範例中,一個教師可以教導許多學生,且一個學生可以由一位教師.

SoWkIImgAStDuULApaaiBbO8IKrCpaWjKgZcvL9Gq2u1yug3IqfJKlDAYZKqhHHyCejBRA02ThnSjRnSCArGGPZMnDBqZ1AdIgY18ArG9bGJp2ObGoK5NLq59GCzFIqbk25M2b2x5O2MEAJcfO3T2000 (279×218)

範例 5:訂單與項目

在此範例中,一個訂單可以包含一個或多個項目,且一名項目可以屬於零個或多個訂單.

SoWkIImgAStDuULApaaiBbRmBqf9BLAevkLIKD1EpiyhISpCA_OiISqjrj2qKl39B2wn0V7iUBbgURbWUa0YK2q5GDFyqy2687I0kJ0j40kK3FNqj9GKT7KLb0p0BB0PLWemAnM0oXrIyrB0BWC0 (239×218)

範例 6:公司與員工

在此範例中,一個公司可以擁有許多員工,且一名員工為一家公司.

SoWkIImgAStDuULApaaiBbPmpiyjICohLAZcvL9GqCv8B7RDBSZ9hqnDBTRGj5BmoImkiO69sF5orV9omJJ2HA4wo_EBielTyekWve4qGvbGNJ2Bb0oL57Hr5PGCzFIqb12cM2caWfd52a1h75BpKi1k1000 (277×218)

這些範例說明了多重性如何用於定義參與關聯的物件數量,提供了一種清晰且簡明的方式來表達之間的關係UML 中的類別圖表。

結論

多重性是 UML 中的一個基本概念,提供了一種結構化的方式來定義參與關聯的物件數量。透過指定多重性,設計者可以確保類別之間的關係明確且易於理解,進而促成更穩健且可維護的系統設計。無論您是在建模簡單的關聯還是複雜的關係,理解並應用多重性對於有效的 UML 建模至關重要。

資源

  1. 在 Visual Paradigm 中繪製實體關係圖
  2. 實體關係圖 – 多重性
  3. 實體關係圖
  4. 在 UML 形狀上指定多重性
  5. 什麼是實體關係圖 (ERD)?
  6. Visual Paradigm ER圖添加表格
  7. 如何在 Visual Paradigm 中為類圖添加多重性?
  8. 實體關係(ER)圖入門指南
  9. 多重性與基數

Leave a Reply