簡體   English   中英

有關項目管理中關系類型的UML類圖

[英]UML class diagram about relationship types in project management

我正在嘗試為我的項目管理軟件繪制一個類圖,描述以下內容。 它包含以下類:

  • Project -軟件項目
  • ProjectManager管理項目的他/她
  • Employee -從事項目工作的人

以及以下關系/關聯:

  1. 一個項目經理可能必須管理多個項目,而一個項目只能由一個項目經理管理

  2. 項目經理可以將員工分配給他/她管理的項目

對於上面的關聯,我創建了這個類圖:

在此處輸入圖片說明

  • 很明顯,如何為第一個關聯建模(在ProjectManagerProject之間)
  • 我不知道如何為第二個關聯建模
    如何實現項目經理只能將項目分配給他負責管理的員工?

例

您的問題與上面在我的公司BITPlan的UML培訓中使用多年的示例非常接近。

在此示例中,存在一個ProjectAssignment類,並且規則是,對於每個時間點,可能只有一個ProjectAssignment具有“ responsible = true”。 擁有此ProjectAssignment的員工是ProjectManager。 當子項目起作用時,您也可以應用這種樣式,並且您希望對整個管理器的層次結構進行建模,該層次結構可能會隨時間而變化。

我個人認為,在模型的文檔中陳述散文的這種限制通常要好於嘗試使用繼承和基數在結構中顯示,通常會好得多。

您只需在Project添加一個名為assignEmployee的操作,該操作會將員工添加到其分配的員工列表中:

在此處輸入圖片說明

目前尚不清楚如何分配員工,無論是一個項目還是多個項目。 同樣,您可能需要取消分配操作。

當然,您也可以使用@WolfgangFahl建議的關聯類。

為問題建模的更通用方法是為項目經理和員工使用對象類型Person (或Employee )。 這表示項目經理也是雇員,可以分配給某些項目作為經理,而可以分配給其他項目作為普通員工。

在這種方法中,您將擁有兩個類EmployeeProject ,它們之間具有兩個關聯:

  1. 關聯Employee -works-for- Project (或者最好在關聯端使用類似於worker的角色名稱)。
  2. 關聯Employee -is-manager-of- Project ,其中manager是角色名稱。

如果您確實需要為項目經理建模/記錄員工對項目的分配,則需要用三元關聯Employee -is-assigned-to- Project替換第一個關聯( Employee -works-for- Project ) - Employee -as- assigner其中后者雇員(所述分配器)需要為所分配的項目經理。 可以使用附加到Employee類的相應不變式來捕獲此條件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM