如何简化UML类图继承表示法?

时间:2010-11-26 16:23:51

标签: class uml diagram simplify

我有一个超级类,其他40个clases继承,此时我想简化图表,确切地说所有的继承关系(40个关系指向单个类)所有这些“箭头”只是使图表完全混乱,是否可以简化这个?

4 个答案:

答案 0 :(得分:0)

在UML规范中没有直接的方法来简化这种情况,但是真的有40个类可以从一个类继承吗?我想你可能需要重新考虑你的设计。

通常,您可以省略类中的属性和方法,至少这种方式更好。

答案 1 :(得分:0)

您是否使用继承进行代码重用?我从未遇到过有40个子类的场景。无论如何,一个想法是将逻辑上相关的类分组为单个包图,然后具有包关系。

我想提供一些建议

  1. UML图是90年代;-)。在当前的敏捷世界中,我看到很少使用这些图表
  2. 查看可以对代码进行反向工程并在需要时创建类和序列图的工具。这有助于您仅对应用程序的相关部分进行可视化“按需”
  3. 了解sub-typing versus sub-classing

答案 2 :(得分:0)

这是一个很好的问题,因为我的一个项目中遇到了类似的问题。我所做的是减少每个类的大小,以便显示名称。然后,我选择了圆形+分层布局,并用鼠标移动了所有这些链接。

结果很棒。我使用的工具是EclipseUML Omondo。

答案 3 :(得分:0)

我建议如下:

**

  • SCENARIO 1

**

如果您不打算使用该模型进行代码生成

  • 将所有子类放入包中。给这个包一个名称,表明它所包含的所有元素/类都继承自特定的超类。例如,如果超类被命名为“SuperFoo”,我会调用包“SuperFoo_SubTypes”
  • 在包中放置一个注释,表示包中的所有类都继承自超类。

**

  • SCENARIO 2

**

您的确计划从您的模型中生成代码:

选项1 我建议您按照正常情况绘制所有继承关联,然后使用建模工具上的隐藏功能隐藏超类。

选项2 使用替代表示法来描述继承/泛化,对于每个子类,以斜体字体和子类元素的右上角写出超类的名称。本文简要介绍了此方法: http://www.sparxsystems.com/resources/uml2_tutorial/uml2_classdiagram.html 这当然取决于您的建模工具是否支持这种表示法。

我希望这有帮助!