B2 題型分析:領域塑模與文本分析詳解
歷屆 B2 試題的考核核心完全固定為「領域塑模與文本分析(Domain Modeling & Textual Analysis)」。旨在測驗學生如何從一段需求描述(Problem Statement)中,淬取出系統的靜態結構。通常分為 (a) 文本分析(填寫類別與理由)與 (b) 繪製初步類別圖。
一、標準解題 5 步驟 (文本分析標準作業流程)
Step 1: 尋找名詞 (Find Nouns)
仔細閱讀 Problem Statement,把所有的名詞與名詞片語圈出來。這些名詞包含了潛在的類別、屬性、或是干擾項。
Step 2: 過濾名詞並分類 (解答 B2a 的關鍵)
將圈出的名詞進行篩選。如果是系統中需要獨立存在的實體,列為「候選類別」,並根據 6 大分類填入理由。若只是特徵或系統本身,則捨棄。
Step 3: 尋找動詞以建立關聯 (Identify Associations)
重新閱讀文章,尋找連接兩個候選類別的「動詞或動詞片語」(如:Customer orders Coffee),這將成為初步類別圖中的實線與關聯名稱。
Step 4: 建立繼承結構 (Inheritance)
觀察是否有「是一種 (is-a-kind-of)」的關係。例如 Normal Course 與 Signature Course 都是 Training Course 的子類別。
Step 5: 繪製初步類別圖 (解答 B2b 的關鍵)
畫出矩形框,只寫類別名稱,不寫屬性與方法。用實線連接並標上動詞名稱。若題目有要求,則補上多重性。
二、(B2a 必背) 候選類別的 6 大合法分類 (Categories)
當你在 B2(a) 被要求寫出 "Reason" 或 "Category" 時,絕對不能自己發明詞彙,必須從以下 6 個標準類別中挑選並背誦其英文:
| 分類英文 (必背) |
中文意義 |
常見範例 (Examples) |
| Tangible things |
實體事物 / 物理物件 |
Classroom, Tennis court, Assessor, Coffee, Vaccine |
| Conceptual things |
概念事物 (非物理存在) |
Course, Module, Subscription, Member |
| Events / Transactions |
事件 / 交易紀錄 (發生在特定時間) |
Booking, Trade order, Payment, Test, Delivery |
| Roles played |
人或組織扮演的角色 |
Customer, Buyer, Seller, Clinic Nurse, Manager |
| Outside organizations |
外部組織機構 |
Publisher, Supplier, Stock exchange |
| Other systems |
互動的外部電腦系統 |
Payment Gateway, SMS gateway, Grade reporting system |
三、(觸類旁通) 應被排除的名詞與 7 大理由 (Reasons for Omission)
若考題突襲問你「為何某個名詞不能選為類別?」,必須精準寫出以下 7 大排除理由之一:
| 排除理由 (Reason for Omission) |
說明與範例 |
| Redundant classes (重複/同義) |
兩個詞代表同個東西,應選擇最具描述性的 (如 order 與 trade order 同義,保留 trade order)。 |
| Irrelevant classes (不相關/超出範圍) |
與系統要解決的問題無直接關係 (如 monthly charge, sports club 公司本身)。 |
| Vague classes (模糊不清) |
定義過於寬鬆或模糊的詞 (如 information, details)。 |
| Attributes (屬性) |
只是用來描述某物件的特徵 (如 ID, address, closing date, price)。 |
| Operations (操作/動作) |
實際上是某個類別要執行的動作 (如 registration process, bidding process)。 |
| Implementation constructs (實作細節) |
屬於底層開發的技術名詞,不該出現在領域分析 (如 computer, database)。 |
| Instances (實例/具體物件) |
它是某個類別的具體資料,而不是類別藍圖 (如 Hong Kong Bank 是銀行的一個實例)。 |
四、(B2b 重點) 初步類別圖圖解與高階關係
⚠️ B2(b) 畫圖致命陷阱:
題目通常會標註 "Attributes/methods of classes and association classes are NOT required"。請畫最簡單的空方塊(只有頂層類別名稱)。畫蛇添足寫出屬性反而會增加寫錯被扣分的風險!
Customer
Subscription
Coffee
進階關係擴充 (觸類旁通):
- 關聯類別 (Association Class): 雖 B2b 常聲明不要求,但若多對多關係中產生了「額外的屬性」(如學生成績),必須從實線拉出虛線連接到新類別。
- 限定關聯 (Qualified Association): 若透過特定鍵值 (Key) 尋找物件 (如透過 accountNum 找 Customer),需在類別旁加上小矩形。
五、(觸類旁通) 結構塑模的完整 7 步驟與繼承推導
歷屆 B2 其實是從「結構塑模 7 步驟」中抽考了其中幾步。為了應付簡答題,請背誦完整流程:
- Identify objects and candidate classes (識別物件與候選類別) ➔ B2(a) 考點
- Develop data dictionary (建立資料字典):記錄每個類別的精確定義與用途。
- Identify associations between classes (識別類別間的關聯) ➔ B2(b) 考點
- Identify attributes and association classes (識別屬性與關聯類別)
- Structure classes using inheritance (使用繼承結構化類別):
★ Top-down (由上而下):從真實世界的分類學出發,找出特殊案例。
★ Bottom-up (由下而上):發現多個類別有相同屬性/方法,抽取成父類別。
- Verify access paths for likely queries (驗證可能查詢的存取路徑):檢查圖表連線是否足以回答系統常見的查詢。
- Iterate and refine model (疊代並精煉模型)