首页 > 解决方案 > 如何在 Sparx Enterprise Architect (EA) 中对软件组件进行版本控制?

问题描述

我正在使用 Sparx Enterprise Architect 13 对软件系统进行建模。该系统包含不同版本的软件组件。我们通常在发布软件组件的新版本时添加服务和/或 API。

目前,为了反映组件ServiceV1暴露了接口A,ServiceV2暴露了接口A(与ServiceV1相同)和B,我让ServiceV2扩展了ServiceV1。但这并不简单:

有更好的方法吗?维护同一组件的多个版本的标准方法是什么?

谢谢!

标签: componentsumlversioningmodelingenterprise-architect

解决方案


实际上,没有标准可以为这样的场景建模。充其量你可以有约定——这可能因域而异。但是,这是我将如何建模它:

在此处输入图像描述

ServiceV2<<trace>>关系ServiceV1。UML 2.5.1 在 p 上说。682:

«追踪» | 抽象 | 指定在不同模型中表示相同概念的模型元素或模型元素集之间的跟踪关系。跟踪主要用于跨模型跟踪需求和更改。由于模型的变化可能发生在两个方向上,因此通常可以忽略依赖关系的方向性。映射指定了两者之间的关系,但它很少可计算并且通常是非正式的。

所以这应该意味着在这种情况下,ServiceV2 是使用 ServiceV1 创建的(我以前<<derive>>在这里使用过,因为它看起来很合乎逻辑。但实际上 UML 语义的定义不同;参见 UML 2.5.1 的第 680 页)。你可以在这里创造你自己的刻板印象并在领域上下文中解释它(例如<<version of>>)。

您可能会创建 ServiceV1 的副本或手动将其建模为新元素(您不会在大规模场景中这样做,对吗?)。这里我添加了提供的接口,它们都实现了通用接口A。快速链接器不提供这些关系。您需要使用笨拙的 Ctrl-I 方式,或者从工具箱中获取实现。

不直接提供<<derive>>依赖项(除非您有自己的 MDG 并在 QL 或工具箱中定义它)。因此,您创建一个依赖项并derive从构造型菜单中进行选择。


这是一个广泛的领域,版本控制并不像添加编号模式那么简单。无论如何,如果您创建一个新组件,它将有所不同。所以这<<derive>>可能是这里最好的选择。


推荐阅读