UML 類別圖 (A1) 完整解題筆記

2015-2023 歷屆試題深度分析與擴充

根據歷屆試題(2015至2023年)的分析,A1 試題的題型非常固定,統一為「根據情境描述繪製 UML 類別圖(Class Diagram)」。

試題通常會給予一段文字情境(例如:幼稚園遊戲小組管理系統、寵物店、車輛預約、醫院病房、咖啡店員工、機器人公司等),並明確要求學生畫出類別(Classes)、關聯與多重性(Relationships and Multiplicities)、屬性(Attributes),以及盡可能使用繼承(Inheritance)來結構化模型。

為了讓你能夠觸類旁通,以下我將分析解題步驟,並全面擴充(包含歷屆 A1 沒考過,但屬於類別圖核心概念的知識點)你需要背誦與掌握的重點:

一、標準解題 5 步驟 (文本分析 Textual Analysis)

1. 圈出名詞(Nouns)與名詞片語

  • 閱讀題目時,將所有名詞圈出。若它具備獨立特徵(如:員工),則為「候選類別(Class)」;若只是用來描述別人的特徵(如:姓名、電話),則為「屬性(Attribute)」。
  • 判斷原則: 如果一個實體具有自己的特徵(例如:員工有姓名和ID),它就是「類別」;如果它只是用來描述別人的特徵(例如:電話號碼、日期、大小),它就是「屬性」。
  • 排除干擾項: 刪除多餘的(如意義相同的詞)、與系統無關的(如「系統本身」)、模糊的詞彙,或實作細節(如資料庫)。
  • 2. 圈出動詞(Verbs)與動詞片語

    尋找名詞之間的動作連接詞(如:包含、治療、預約),這些將成為類別之間的「關聯名稱(Association Name)」。

    3. 決定多重性(Multiplicity)

    精確標示數量限制。例如「一個或多個 (one or more)」為 1..*;「零或多個 (zero or more)」為 0..*;「剛好一個」為 1;「精確的三個」即為 3

    4. 建立繼承結構(Structure with Inheritance)

    使用由下而上(Bottom-up)或由上而下(Top-down)的方法尋找共通點,建立 Generalization 關係。如果發現有幾種類別擁有相同的屬性(例如:工業機器人、服務機器人都有「型號」),應將共通屬性抽取出來建立一個父類別(如:Robot),並畫上繼承關係。

    5. 繪製與檢查圖表

    精確畫出所有 UML 符號,並確保沒有遺漏情境中提到的任何屬性,且每個類別都適當地連結起來。

    二、類別圖核心元素圖解

    雖然歷屆 A1 試題通常會備註「不需要加入關聯類別(association classes)或限定詞(qualifications)」,且往往只要求畫出類別名稱和屬性,但為了觸類旁通並防範考題突襲,你必須背熟以下 UML 類別圖的所有語法、符號與隱藏考點:

    1. 類別內部的定義(Class Definitions)