我正試圖設計一個大學項目的UML分析類圖。我的UML圖如下所示: 如何在UML類分析圖中關聯這些類?
我曾經遇到過兩個不同的問題:
- 用戶可以有多個角色。具有Manager角色的用戶可以管理其他用戶及其角色。如何在UML中說明這種關聯?
- 用戶使用SwipeCard訪問房間。如何在UML中顯示此關聯?
我正試圖設計一個大學項目的UML分析類圖。我的UML圖如下所示: 如何在UML類分析圖中關聯這些類?
我曾經遇到過兩個不同的問題:
回覆1:
托馬斯,你的答案的第二部分是非常有說服力的,我決定走你的建議。但是,我不明白第1部分中的觀點。您是否介意在UML中展示這一點? – user3566211
看我的補充。好,你問。我錯誤地解釋了它,但繪製完成後,錯誤很明顯,我可以糾正它。 –
托馬斯,你是通過使用序列圖來表明這一點,我想用分析圖來完成,請查看更新後的圖表:https://drive.google.com/file/d/0B6_hNGJUq8_2RzBraENZS29RU1k/view?usp=sharing – user3566211
短快速解答
充分利用Role
類,而不是Manager
類。
的冗長的回答
我也有類似的情況,但是,最終,也有類似的Manager
類,並在以後添加MiddleManager
類,也可以管理其他類。
..........................
..+-----------------+.....
..| User |--+..
..+-----------------+..|..
...........^...........|..
........../ \..........|..
..........\ /..........|..
...........v...........|..Can Manage Other Users
...........|...........|..
...........|...........|..
...........|...........|..
..+-----------------+..|..
..| Role |--+..
..+-----------------+.....
..| [+] CanManage() |.....
..+-----------------+.....
..........................
所以,我移動功能或屬性canManage()
到Role
類。
作爲@Thomas Kilian提到,你的問題更多的是行爲特徵,而不是結構特徵。行爲在類圖中表示爲方法或屬性。
UPDATE:
..........................
..+-----------------+.....
..| User |--+..
..+-----------------+..|..«Can Manage Other Users»
..| [+] CanManage() |--+..
..+-----------------+.....
...........^..............
........../ \.............
..........\ /.............
...........v..............
...........|..............
...........|..............
...........|..............
..+-----------------+.....
..| Role |.....
..+-----------------+.....
..........................
另一個版本可以包括自引用的關聯。
具有管理員的用戶不僅可以管理角色,還可以管理其他用戶。我試圖用UML來展示它。我理解你關於這個問題是行爲的觀點,但我認爲仍然有一些方法可以在UML類分析圖中顯示,儘管不是詳細的。 – user3566211
檢查圖表 – umlcat
的更新情況如何僅從用戶到用戶的自關聯。由於具有Manager角色的用戶可以管理其他用戶,因此該用戶也可以管理他們的角色。但這是一個有效的假設或方法嗎? – user3566211
聽起來不錯。我建議你添加一個圖片或一個顯示你的UML圖的ascii,以便理解你的答案 – umlcat
@Jim L.是的,請添加一個UML圖,這將更容易理解。 – user3566211
另外,我更新了SwipeCard部分,因爲它非常簡單。具有經理角色部分的用戶仍然不明確,請檢查:[鏈接](https://drive.google.com/file/d/0B6_hNGJUq8_2RzBraENZS29RU1k/view?usp=sharing) – user3566211