在UML活动图中处理组合对象

时间:2015-01-11 13:24:02

标签: uml composition simplify activity-diagram

简介

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

问题

让我们假设我们有一个类与不同的孩子有关联: enter image description here

我们有一个模拟Constalation,类结果和三个孩子结果A部分等。

现在我想改进一个活动,它接受一个对象作为输入,并产生结果作为输出: enter image description here 在期望的细化中,我想要访问子节点或从结果部分创建结果。

当前解决方案

如果我想访问子项或从结果部分创建结果,我总是需要为这些相当简单的任务引入额外的活动: enter image description here

问题

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

像这样简单的东西会很好: enter image description here

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

关于如何拆分对象的答案

我从@xmojmr获得提示之后找到了一个关于如何在Martin Fowlers UML中自行分割组合对象的答案

该书指出: enter image description here enter image description here 资料来源:UML Distilled: A Brief Guide to the Standard Object Modeling Language By Martin Fowler - on Google Books

我仍然不知道,如果它允许省略转换注释并只是绘制引脚和转换!?

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

我仍然没有找到关于如何在不引入合并活动的情况下将对象合并到合成对象的答案。