有约束的组织的无约束概念模型?

Constraintless conceptual model of organization with constraints?

我们接到了一项任务,要求我们创建一个概念模型,用文本文档进行描述。文档中给出了一些约束,但我们也被指示不要在模型中使用约束。

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

You've been tasked to create a model of the structure of a game studio. The company consists of a number of departments, and each department has at least one employee. Each employee works at a single department. There are three different types of employees: developers, designers and engineers.

In addition to this, there are a number of leadership roles that employees can have: Head of Department, Deputy Head of Department, CTO or CEO (Yes, CTO and CEO are roles that regular employees have). Each department must have 1 Head of Department and at least one Deputy Head of Department.

In addition to this, there can only be one CTO and one CEO, and these roles can only be held by engineers. Each employee can only have a single leadership role.

为了解决这个问题,我们创建了一个额外的抽象实体:BasicRole。此实体是 LeadershipRole 的特化,是任何员工都可以担任的三种角色的概括。这解决了其中一个问题,现在我们可以简单地在 Designer/Developer 和 BasicRole

之间创建适当的关联

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

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

我们考虑过将 Company 作为一个实体并在 Company 和 CTO/CEO 之间添加关联,以指定公司只能拥有一个实体,但在本课程不包括我们在模型中作为实体建模的东西。

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

如果您将 EngineerLeadershipRole 相关联(具有多重性 0..1),则移除从 EngineerCTO 的两个关系,CEOLowerRole 你会得到预期的结果:

Each employee can only have a single leadership role.

因为 LeadershipRole 是抽象的,它必须是 CEOCTOHeadOfDepartmentDeputyHOD) 但由于多重性不能同时不止一个

如果您正在设计代码级文档,那么 "we've been told over and over during this course not to include the thing that we're modelling as an entity in the model" 语句是正确的,但是将代表您正在建模的整个组织的实体放在一起是正常的。换句话说 - 不要将 System (或者你如何称呼你的系统)放在你的系统模型中。但是 Company 是您在 系统中 建模的东西。

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

重新定义

嵌套表示法

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

重新定义

泛化

共4=2*2个选项