如何用 UML 表示系统?

How to Represent System in UML?

我们可以使用 Subsystem 元素来显示 UML 中的系统分解。 而且,我们可以将组件分组为子系统。

但是,有没有一个元素可以代表一个系统呢?

这里的系统是指子系统的超集。

您在外界看到系统的唯一 UML 图是 use-case 图。所考虑的系统由一个包围框表示,其中显示了 use-case。

在所有其他图表中,我们应该显示一些系统相关的内部结构,并且没有(甚至不需要)显示整个系统的符号。在某些结构图中,您可以显示更大的子系统。您将这些显示为以标准构造型 «Subsystem».

为首的组件

现在,boundaries of complex systems 可能会很模糊:您很可能在一个非常复杂的“系统之系统”上工作。在这种情况下,你有一个由其他系统组成的系统。从 UML 的角度来看,那些其他系统将只是“系统的系统”的子系统。

如果您需要在子系统的级别之间做出更清晰的区分,您可以简单地创建一个带有 «System» 构造型的 UML 配置文件。在另一个极端范围内,您可以使用 SysML with a dedicated SoS profile.

系统只是一个组件,是由子系统组成的。在系统的系统中,它本身就是一个子系统。所以,每个组件总是同时是一个系统和一个子系统——它只取决于建模者的观点。因此,可以使用相同的图表来显示系统和子系统的分解。

为了显示 观点中感兴趣的系统,您可以按照@Christophe 的建议创建一个«system» 原型。奇怪的是,对此没有标准的刻板印象,甚至在 SysML 中也没有。

由于子系统已经是标准配置文件中组件的构造型,您只需创建一个 «系统» 构造型,它也可以扩展您自己的配置文件中的组件元类。 这是考虑到您的系统范围只是软件和硬件,没有参与者 activity。 正如 Christophe 提到的,UML 中唯一表示系统的是围绕其用例的主题,主题甚至不是模型元素...