首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >项目管理中关系类型的UML类图

项目管理中关系类型的UML类图
EN

Stack Overflow用户
提问于 2018-10-30 08:03:47
回答 3查看 2.4K关注 0票数 2

我试图为我的项目管理软件绘制一个类图,描述以下内容。它包含以下类:

  • Project -软件项目
  • ProjectManager -他/她管理这个项目
  • Employee -从事项目工作的人员

和下列关系/协会:

  1. 项目经理可能必须管理多个项目,而项目只能由一个项目经理管理。
  2. 项目经理可以将员工分配给他/她管理的项目。

对于上面的关联,我创建了这个类图:

  • 很清楚如何建模第一个关联( ProjectManagerProject之间的关联)
  • 我不知道如何为第二个协会建模 (如何实现项目经理只能将项目分配给他负责管理的员工?)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-10-30 22:25:14

您只需向Project添加一个名为assignEmployee的操作,该操作将将雇员添加到其分配的员工列表中:

目前还不清楚如何分配员工,无论是分配给一个项目还是多个项目。此外,您可能需要一个去分配操作。

当然,您也可以使用@WolfgangFahl建议的关联类。

票数 1
EN

Stack Overflow用户

发布于 2018-10-30 12:04:46

您的问题与我们多年来在我的公司BITPlan进行的UML培训中使用的示例非常接近。

在本例中,有一个ProjectAssignment类,规则是,对于每个时间点,可能只有一个带有"responsible=true“的ProjectAssignment。具有此ProjectAssignment的员工是ProjectManager。当子项目发挥作用时,也可以应用这种风格,并且您希望建立一个完整的经理层次结构,这些层次结构可能会随着时间的推移而变化。

就我个人而言,我认为在模型文档中用散文来描述这样的限制通常要好得多,而不是试图使用继承和基数在结构中显示它。

票数 3
EN

Stack Overflow用户

发布于 2018-10-30 11:13:02

为您的问题建模的一种更普遍的方法是为项目经理和员工使用对象类型Person (或Employee)。这将表示项目经理也是员工,可以作为经理分配到某些项目,而其他项目则作为普通员工分配。

在这种方法中,您将拥有两个类EmployeeProject,它们之间有两个关联:

  1. 关联Employee-works-for-Project (或者最好在关联结束时使用像worker这样的角色名称)。
  2. 一个关联Employee-is-manager-of-Project,,其中manager是角色名。

如果您确实需要建模/记录项目经理分配给项目的员工,那么您需要用三元关联Employee-is-assigned-to-Project-by-Employee-as-assigner替换第一个关联(Employee-works-for-Project),后者必须是指定项目的经理。这个条件可以通过附加到Employee类的相应的不变量来捕获。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53059788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档