2016-03-02 35 views
2

我正試圖設計一個大學項目的UML分析類圖。我的UML圖如下所示: enter image description here如何在UML類分析圖中關聯這些類?

我曾經遇到過兩個不同的問題:

  1. 用戶可以有多個角色。具有Manager角色的用戶可以管理其他用戶及其角色。如何在UML中說明這種關聯?
  2. 用戶使用SwipeCard訪問房間。如何在UML中顯示此關聯?

回答

3

你有一個非常好的分析模型開始。有些事情,我會做:

  • 具體化UserRole(或使其關聯類)之間的關係稱爲Role Assignment
  • 爲每個關聯的每一端添加一個動詞詞組屬性名稱。例如,Manager授權Role AssignmentRole Assignment授權Manager

下面是一個例子首次下調,從我的頭頂:

enter image description here

我離開了一堆東西,包括運營,其中我會打壓中小企業驗證。我不能做全部爲你工作!

+0

聽起來不錯。我建議你添加一個圖片或一個顯示你的UML圖的ascii,以便理解你的答案 – umlcat

+0

@Jim L.是的,請添加一個UML圖,這將更容易理解。 – user3566211

+0

另外,我更新了SwipeCard部分,因爲它非常簡單。具有經理角色部分的用戶仍然不明確,請檢查:[鏈接](https://drive.google.com/file/d/0B6_hNGJUq8_2RzBraENZS29RU1k/view?usp=sharing) – user3566211

1
  1. 給角色類一些管理方法,用於預期的目的。但是,在活動或序列圖中可以更好地展示行爲環境,您可以在其中詳細說明「管理」的功能。
  2. 添加從用戶到SwipeCard的關聯並將其命名爲「使用」。進一步添加從SwipeCard到房間的關聯並將其命名爲「打開」。

回覆1:

enter image description here這些都是方法來操作角色和

enter image description here在顯示管理者如何使用它們。該約束表明只有管理者可以使用這種方法。

+0

托馬斯,你的答案的第二部分是非常有說服力的,我決定走你的建議。但是,我不明白第1部分中的觀點。您是否介意在UML中展示這一點? – user3566211

+0

看我的補充。好,你問。我錯誤地解釋了它,但繪製完成後,錯誤很明顯,我可以糾正它。 –

+0

托馬斯,你是通過使用序列圖來表明這一點,我想用分析圖來完成,請查看更新後的圖表:https://drive.google.com/file/d/0B6_hNGJUq8_2RzBraENZS29RU1k/view?usp=sharing – user3566211

1

短快速解答

充分利用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  |..... 
..+-----------------+..... 
.......................... 

另一個版本可以包括自引用的關聯。

+0

具有管理員的用戶不僅可以管理角色,還可以管理其他用戶。我試圖用UML來展示它。我理解你關於這個問題是行爲的觀點,但我認爲仍然有一些方法可以在UML類分析圖中顯示,儘管不是詳細的。 – user3566211

+0

檢查圖表 – umlcat

+0

的更新情況如何僅從用戶到用戶的自關聯。由於具有Manager角色的用戶可以管理其他用戶,因此該用戶也可以管理他們的角色。但這是一個有效的假設或方法嗎? – user3566211