2

介绍

在设计 UML 活动图时,我经常遇到一个相当简单的问题,为此我必须绘制一个相当复杂的解决方案。我正在为以下问题寻找符合 UML 的快捷方式或更简单的解决方案。

问题

假设我们有一个类Parent与不同的 Children 相关联: 在此处输入图像描述

我们有一个带有Result类的模拟 Constalation和三个孩子Result Part A等。

现在我想细化一个活动,它接受一个Parent对象作为输入并产生一个Result作为输出: 在此处输入图像描述 在所需的细化中,我想访问子项或从结果部分创建结果。

当前解决方案

如果我想访问孩子或从结果部分创建结果,我总是必须为那些相当简单的任务引入额外的活动: 在此处输入图像描述

问题

这里是否有任何快捷方式或简化来访问、提取或合并对象的子项?所需的解决方案应该是合法的标准 UML。

像这样简单的东西会很好: 在此处输入图像描述

4

2 回答 2

2

UML 没有定义复杂的对象创建元素。如果您需要构造由子对象组成的结果对象,则必须呈现动作。您应该使用组合类型的结果引脚和每个子对象类型的输入引脚定义操作。只有当所有输入引脚都包含预期对象时,动作才能开始执行。为了将子对象与组合对象分离,请使用转换,如 Waog 的回答中所述。

在您当前的解决方案示例中,在合并结果子操作之前删除连接元素,并将所有对象节点连接到此操作。删除提取输入子项操作并使用转换。

于 2015-01-11T16:32:17.193 回答
1

关于如何拆分对象的答案

在得到@xmojmr 的提示后,我找到了关于如何在 Martin Fowlers UML 中拆分组合对象的答案

该书指出: 在此处输入图像描述 在此处输入图像描述 来源:UML Distilled:Martin Fowler 的标准对象建模语言简要指南 - 在 Google 图书上

我仍然不知道,是否允许省略这些转换注释而只绘制引脚和转换!?

缺少关于如何合并对象的答案

我仍然缺少关于如何在不引入合并活动的情况下将对象合并到组合对象的答案。

于 2015-01-11T14:46:44.207 回答