我试图为我的项目管理软件绘制一个类图,描述以下内容。它包含以下类:
Project -软件项目ProjectManager -他/她管理这个项目Employee -从事项目工作的人员和下列关系/协会:
对于上面的关联,我创建了这个类图:

ProjectManager和Project之间的关联)发布于 2018-10-30 22:25:14
您只需向Project添加一个名为assignEmployee的操作,该操作将将雇员添加到其分配的员工列表中:

目前还不清楚如何分配员工,无论是分配给一个项目还是多个项目。此外,您可能需要一个去分配操作。
当然,您也可以使用@WolfgangFahl建议的关联类。
发布于 2018-10-30 12:04:46

您的问题与我们多年来在我的公司BITPlan进行的UML培训中使用的示例非常接近。
在本例中,有一个ProjectAssignment类,规则是,对于每个时间点,可能只有一个带有"responsible=true“的ProjectAssignment。具有此ProjectAssignment的员工是ProjectManager。当子项目发挥作用时,也可以应用这种风格,并且您希望建立一个完整的经理层次结构,这些层次结构可能会随着时间的推移而变化。
就我个人而言,我认为在模型文档中用散文来描述这样的限制通常要好得多,而不是试图使用继承和基数在结构中显示它。
发布于 2018-10-30 11:13:02
为您的问题建模的一种更普遍的方法是为项目经理和员工使用对象类型Person (或Employee)。这将表示项目经理也是员工,可以作为经理分配到某些项目,而其他项目则作为普通员工分配。
在这种方法中,您将拥有两个类Employee和Project,它们之间有两个关联:
Employee-works-for-Project (或者最好在关联结束时使用像worker这样的角色名称)。Employee-is-manager-of-Project,,其中manager是角色名。如果您确实需要建模/记录项目经理分配给项目的员工,那么您需要用三元关联Employee-is-assigned-to-Project-by-Employee-as-assigner替换第一个关联(Employee-works-for-Project),后者必须是指定项目的经理。这个条件可以通过附加到Employee类的相应的不变量来捕获。
https://stackoverflow.com/questions/53059788
复制相似问题