繁体   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