- UML 建模、設計與分析:從新手到高手
- 夏麗華
- 1914字
- 2019-12-09 14:44:28
4.6 建模實例:創建BBS論壇類圖
構建類圖模型就是要表達類圖及類圖間的關系,以便于理解系統的靜態邏輯。類圖模型的構造是一個迭代的過程,需要反復進行,通過分析用例模型和系統的需求規格說明可以初步構造系統的類圖模型,隨著系統分析和設計的逐步深入,類圖將會越來越完善。
4.6.1 創建實體類
論壇系統可以劃分為10個類,它們分別是:管理員、版主、會員用戶、普通用戶、版塊、提出建議、帖子、請求信息、回復信息、新手手冊。
1.管理員類
管理員類用于記錄管理員的基本信息和登錄時間,它是與整個系統相關的核心類。管理員類中可以包含多個屬性和操作,如屬性包括管理員姓名、賬號、操作時間和聯系方式等,而操作可以包括添加版塊、刪除版塊、關閉版塊、添加會員、刪除會員以及提出建議等。如下圖所示為管理員類的類圖。

2.版主類
版主類用于記錄版主的基本信息和與該版主有關的版塊,版主在管理版塊的同時也會保留會員身份。像管理員類一樣,版主類中也可以包含多個屬性和操作,如屬性包含版主賬號、版主姓名和版主級別等,操作則包括設置熱門帖子、設置精華帖子等。如下圖所示為版主類的類圖。

3.會員用戶類
會員用戶類記錄與會員相關的基本信息和操作,該類中可以包含會員名稱、賬號、等級、發帖數量、回帖數量以及最近登錄時間等屬性內容,也可以包含發表帖子、回復帖子和瀏覽帖子等操作。如下圖所示為會員用戶類的類圖。

4.普通用戶類
普通用戶類即沒有注冊的用戶類,在該類中沒有固定的信息,所以也沒有明確記錄用戶信息的屬性。但是,如果用戶注冊成為會員時,則會記錄用戶申請的會員號,注冊成功后能夠順利轉為會員。下圖所示為普通用戶類的類圖。

5.版塊類
版塊類記錄了與版塊相關的基本信息和操作,還記錄了當前版塊是否能夠關閉,如果關閉了,則不能發表帖子。另外,在版塊相關操作中還會顯示版塊詳細信息。例如,單擊某個版塊的鏈接時,會自動調用操作內容顯示版塊詳情。下圖所示為版塊類的類圖。

6.提出建議類
提出建議類記錄了會員用戶和普通用戶提出建議的基本信息,如用戶提出時間、提出建議的用戶賬號、提出建議屬性和建議ID等內容。下圖所示為提出建議類的類圖。

在上圖中,單擊某個版塊鏈接顯示詳細內容時調用相應的操作,單擊某個版塊后管理員可以根據自己的需要調用設置需要關閉版塊的標記操作,當設置或取消某個版塊標記后,會自動調用該操作更新關閉版塊列表。
7.帖子類
帖子類包含多個屬性與操作,如帖子屬性中包含帖子ID、帖子單擊次數和帖子作者賬號等;帖子操作中可以包含查看帖子詳細信息和查看帖子列表等。下圖所示為帖子類的類圖。

8.請求信息類
請求信息類包含屬性和操作兩部分,屬性部分記錄了請求信息類型,用戶可以根據請求類型的選擇來調用相應的操作,調用操作完成后則自動調用設置請求標記。請求信息類的類圖如下圖所示。

9.回復信息類
回復信息類是與請求信息類相反的一個過程。該類會根據回復類型來選擇調用哪個操作,調用完畢后會自動設置回復標記記錄結果。下圖所示為回復信息類的類圖。

10.新手手冊類
論壇系統中新手手冊只有一份,因此該類中只需要記錄形成時間和更新時間即可,不需要再記錄其他的詳細信息。與該類相關的類圖不再具體顯示。
4.6.2 創建類與類之間的關系圖
類與類之間可以存在多種關系,如泛化、依賴、組合和聚合等。前面已經介紹過與論壇系統相關的10個類,下圖所示為這些類之間的關系圖。由于之前已經列出了大多數類的屬性和操作,所以該關系圖中不再顯示相關屬性和操作,而直接使用相關的類。

從上圖中可以看到,管理員類與建議類存在一對多的關聯關系、管理員類與版塊類存在一對多的關聯關系、版塊類與帖子類是組合關系以及建議類與版塊類是組合關系等。下面只挑選幾種常見的類關系進行介紹。
□ 管理員類對版主類 一對多的關聯關系,管理員可以管理多個版主,而系統管理員只能有一個。
□ 管理員類對回復信息類 一對多的關聯關系,管理員可以接收多個用戶的請求信息,并對這些信息進行回復。
□ 帖子類對版塊類 組合關系,帖子是構成版塊的重要部分,它對版塊來說是必不可少的。
□ 建議類對版塊類 組合關系,管理員可以向會員和版主提出建議,而版塊內需要有接收建議的地方,可以說建議是版塊的一部分。
□ 回復信息類對請求信息類 依賴關系,回復信息類依賴于請求信息類,請求信息類發生變化則回復信息類也發生變化。
□ 請求信息類對版主類 依賴關系,請求信息類的操作依賴于版主類的對象,如果對象發生變化,則請求信息類也發生變化,因此請求信息類依賴于版主類。
□ 請求信息類對會員類 依賴關系,請求信息類的操作也依賴于會員類的對象,如果會員類對象發生變化,則請求信息類也發生變化,因此請求信息類依賴于會員類。
□ 版主類對會員類 泛化關系。
□ 會員類對普通用戶類 泛化關系。
- 編程卓越之道(卷3):軟件工程化
- PyTorch Artificial Intelligence Fundamentals
- 人臉識別原理及算法:動態人臉識別系統研究
- Practical Windows Forensics
- 21天學通C++(第6版)
- Python編程與幾何圖形
- AutoCAD VBA參數化繪圖程序開發與實戰編碼
- C語言程序設計
- 持續輕量級Java EE開發:編寫可測試的代碼
- Spring Security Essentials
- INSTANT JQuery Flot Visual Data Analysis
- 人人都能開發RPA機器人:UiPath從入門到實戰
- 你必須知道的.NET(第2版)
- Learning ROS for Robotics Programming
- 前端程序員面試算法寶典