類圖是面向對象程式設計的關鍵組成部分,有助於開發人員視覺化其軟體的結構及其互動。在軟體開發中,根據用例來識別類別,以建立準確且有效的類圖非常重要。在本文中,我們將探討根據用例識別類別的步驟,然後建立類圖。我們還將討論如何將類圖進一步細化為MVC詳細類圖。

步驟1:識別用例
在建立類圖之前,必須理解問題領域以及軟體將要解決的用例。用例代表系統必須提供給使用者的特定功能。識別用例可以通過與利益相關者討論、審查需求文件以及進行腦力激盪會議來完成。
步驟2:識別類別
一旦識別出用例,就可以開始識別支援這些用例所需的類別。類別是建立物件的藍圖,包含屬性和方法。類別可以代表現實世界中的實體或抽象概念。
例如,如果用例涉及管理客戶資訊,您可能會識別出一個Customer類別,其中包含姓名、地址和電子郵件等屬性。如果用例涉及處理付款,您可能會識別出一個Payment類別,其中包含付款金額、付款方式和付款日期等屬性。
步驟3:識別關係
在識別出類別後,需要確定它們之間的關係。類別之間的關係可以通過關聯、聚合或組合來表示。
關聯表示兩個類別之間的關係,其中一個類別使用另一個類別的服務。聚合表示兩個類別之間的關係,其中一個類別將另一個類別作為其一部分,但該部分可以獨立於整體存在。組合表示兩個類別之間的關係,其中一個類別將另一個類別作為其一部分,且該部分無法獨立於整體存在。
步驟4:建立類圖
利用已識別的類別和關係,可以建立類圖。類圖是類別及其關係的視覺化表示。它顯示每個類別的屬性和方法,以及類別之間的關係。
在類圖中,每個類別以方框表示,類別名稱位於方框頂部。類別的屬性列於方框中間,方法列於方框底部。類別之間的關係以線條表示,不同類型的線條代表不同類型的關係。
步驟5:將類圖細化為MVC詳細類圖
建立類圖後,可以將其細化為MVC詳細類圖。模型-視圖-控制器(MVC)模式是一種軟體設計模式,將應用程式分為三個相互關聯的組件:模型、視圖和控制器。
模型代表應用程式的資料和業務邏輯。視圖代表應用程式的使用者介面。控制器負責處理模型與視圖之間的通訊。
要將類圖細化為MVC詳細類圖,需要識別哪些類別代表模型、視圖和控制器。模型類別應包含應用程式的資料和業務邏輯。視圖類別應包含應用程式的使用者介面。控制器類別應負責處理模型與視圖之間的通訊。
一旦識別出哪些類別代表模型、視圖和控制器,就可以更新類圖以反映這些標示。可以使用不同的顏色或線條樣式來區分模型、視圖和控制器類別。
範例:汽車租賃系統

問題描述:一家汽車租賃公司希望開發一個軟體系統,讓客戶能夠線上租車。客戶應能瀏覽可租用的車輛、選擇要租的車輛並進行預訂。系統應能追蹤車輛的可用性,以及客戶所下的預訂。
步驟1:識別用例
- 瀏覽可租用的車輛
- 選擇要租的車輛
- 進行預訂

此用例圖顯示步驟1中識別出的三個主要用例:瀏覽可租用的車輛、選擇要租的車輛,以及進行預訂。客戶角色與CarRentalSystem互動以執行這些動作。
步驟2:識別類別
- 客戶
- 汽車
- 預訂
步驟 3:識別關係
- 一位客戶可以進行多筆預訂,但每筆預訂僅由一位客戶完成。這是一對多的關係,以客戶與預訂類別之間的關聯來表示。
- 一輛汽車可以被多位客戶租用,但每筆租用僅針對一輛汽車。這也是一對多的關係,以汽車與預訂類別之間的關聯來表示。
步驟 4:建立類別圖

此類別圖顯示步驟 2 中識別出的三個主要類別:客戶、汽車與預訂。同時也顯示步驟 3 中識別出的關係:客戶與預訂之間的一對多關係,以及汽車與預訂之間的一對多關係。每個類別也包含分析階段所識別出的屬性和方法。
步驟 5:將類別圖細化為 MVC 詳細類別圖
- 模型:汽車、客戶、預訂
- 檢視:使用者介面(UI)
- 控制器:汽車租賃控制器
此 MVC 類別圖顯示步驟 5 中識別出的系統三個主要元件:模型、檢視與控制器。
模型包含客戶、汽車與預訂類別,以及搜尋汽車與進行預訂的方法。檢視由 CarRentalView 介面表示,該介面定義了顯示汽車與預訂細節的方法。控制器由 CarRentalController 類別表示,它與模型和檢視互動以處理使用者動作並更新系統狀態。圖中也包含先前步驟中識別出的類別之間的關係。

注意:
- 控制器包含客戶、汽車與預訂類別,以及搜尋汽車與進行預訂的方法。客戶, 汽車與預訂類別,以及搜尋汽車與進行預訂的方法。
- 檢視由 CarRentalView 介面表示,該介面定義了顯示汽車與預訂細節的方法。由 CarRentalView 介面表示,該介面定義了顯示汽車與預訂細節的方法。
- 控制器由 CarRentalController 類別表示,它與模型和檢視互動以處理使用者動作並更新系統狀態。由 CarRentalController 類別表示,它與模型和檢視互動以處理使用者動作並更新系統狀態。
- 圖中也包含先前步驟中識別出的類別之間的關係。
根據物件模型結果建立實體關係圖
此實體關係圖顯示了問題描述中識別出的三個主要實體:客戶、汽車和預訂。它也顯示了這些實體之間的關係:客戶與預訂之間的一對多關係、汽車與預訂之間的一對多關係,以及客戶與汽車之間無直接關係。每個實體都包含分析階段所識別出的屬性。

實體關係圖僅負責建模系統的資料持久層,而類圖則建模整個系統,包括模型、檢視和控制層。
換句話說,實體關係圖代表資料庫結構以及資料表/實體之間的關係,而類圖則代表構成整個系統的類別及其關係、屬性和方法。
如何識別遺漏的物件以精化類圖
在開發初始的MVC類圖時,重要的是要考慮將參與系統行為的關鍵物件。然而,當我們開始開發使用案例情境和對應的順序圖時,可能會發現需要加入額外的物件,以完整呈現系統。這個迭代過程使我們能在更深入了解系統行為與需求的同時,逐步精化類圖。

透過使用案例情境中發現的遺漏物件來精化MVC類圖
在進行MVC順序圖的過程中,我們可能會發現需要加入額外的物件,以完整呈現系統的行為。為了精化MVC類圖,我們可以遵循以下步驟:
- 識別遺漏的物件:在開發MVC順序圖時,我們可能會發現一些遺漏的物件,這些物件是完成現有物件之間互動所必需的。這些遺漏的物件可能包括原先在初始MVC類圖中未考慮的新實體、服務或控制器。
- 將遺漏的物件加入MVC類圖:一旦我們識別出遺漏的物件,就可以將它們加入現有的MVC類圖中。我們也可以根據需要調整現有物件與新物件之間的關係。
- 檢視並精化關係:在將遺漏的物件加入MVC類圖後,我們應檢視物件之間的關係,並確保它們能準確反映系統的行為。我們可能需要調整物件之間的關係,以納入新物件,並確保圖表仍易於理解。
- 依需要進行迭代:如果在順序圖過程中發現更多遺漏的物件,我們可以重複上述步驟,持續精化MVC類圖,直到它能準確呈現系統的行為。
總體而言,透過順序圖過程來精化MVC類圖是一個迭代過程,使我們能夠確保圖表準確反映系統的行為與需求。

結論
識別類別並發展類圖的過程,是設計與開發軟體系統的重要步驟。這有助於確保系統結構良好、容易維護,並符合使用者的需求。
透過遵循本文所列出的步驟——從使用案例分析開始,到建立MVC類圖結束——開發人員可以確保其軟體系統設計得當,每個組件的類別、關係與責任都明確界定。
總體而言,識別類別並建立類圖的過程可能具有挑戰性,但這是建立符合使用者與利害關係人需求的高品質軟體系統的必要步驟。











