2

我们被分配了一个任务,我们要在其中创建一个由文本文档描述的概念模型。文档中给出了许多约束,但我们也被指示不要在模型中使用约束。

我们已经能够解决一些限制,但有一个我们无法解决。我已经编造了一个场景,它与我们遇到的任务部分有点相似。

您的任务是创建游戏工作室结构的模型。公司由多个部门组成,每个部门至少有一名员工。每个员工都在一个部门工作。员工分为三种不同类型:开发人员、设计师和工程师。

除此之外,员工还可以担任许多领导角色:部门主管、部门副主管、CTO 或 CEO(是的,CTO 和 CEO 是普通员工的角色)。每个部门必须有一名部门主管和至少一名副主管。

除此之外,只能有一名 CTO 和一名 CEO,而这些角色只能由工程师担任。每个员工只能担任一个领导角色。

为了解决这个问题,我们制作了一个额外的抽象实体:BasicRole。该实体是LeadershipRole的一个特化,是任何员工可以担任的三个角色的泛化。这解决了其中一个问题,现在我们可以简单地在 Designer/Developer 和BasicRole之间创建适当的关联

但是,除了与 CEO 和 CTO的关联外,我们还希望 Engineer 与BasicRole有关联。添加这些关联会产生一个概念模型,如下所示:概念模型

但是,这是有问题的,因为现在我们说工程师可以拥有 0 到 3 个角色。

我们已经考虑将公司作为一个实体包括在内,并在公司和 CTO/CEO 之间添加关联,以指定公司只能拥有一个,但在本课程中我们被一遍又一遍地告知不要包括该事物我们正在建模为模型中的实体。

现在,似乎我们所有的问题都可以通过约束来解决(如果我们继续阅读这些),对三个关联进行某种异或。然而,鉴于我们被指示不要在概念模型中使用约束,我们不知所措。

4

2 回答 2

2

如果您将您的Engineerto LeadershipRole(与 multiplicity )从to中0..1删除您的两个关系,您将获得预期的结果:EngineerCTOCEOLowerRole

每个员工只能担任一个领导角色。

由于是抽象的,LeadershipRole它必须是CEO,或) 但由于多重性不能同时超过一个。CTOHeadOfDepartmentDeputyHOD

如果您正在设计代码级文档,那么“我们在本课程中一遍又一遍地被告知不要将我们作为实体建模的事物包含在模型中”声明是正确的,但将代表您正在建模的整个组织的实体。换句话说——不要把System(或者你怎么称呼你的系统)放在你的系统模型中。但是Company是你你的系统中建模的东西。

于 2019-12-12T09:28:44.407 回答
-1

“每个部门必须有 1 名部门主管和至少 1 名副主管”的 2 个选项。

重新定义
重新定义

嵌套符号
嵌套符号

“这些角色只能由工程师担任”的 2 个选项

重新定义
重新定义

概括
概括

总共 4=2*2 个选项

于 2019-12-18T06:48:46.283 回答