UML类图 - 线路交叉是不好的做法?

时间:2017-01-20 05:01:11

标签: uml

在UML图中跨越不同类之间的行是不好的做法?这是一种设计气味吗?它是否表明您的课程过于纠结或独立或其他什么?它总是/通常是不可避免的吗?或者我是否想过这个?

如果感兴趣,这是我当前的UML图。你会看到我一直绕过几行以避免重叠......

3 个答案:

答案 0 :(得分:3)

  

跨越不同类之间的行是不好的做法

是的,因为它可能妨碍对图表/图表的理解。

  

总是/通常是不可避免的

并非所有图形都是平面的(参见平面度测试),因此有时它是不可避免的。

问题并不像“我只是路线”那么简单。有许多规则和建议构成良好的布局或有助于良好的视觉美学;仅举几例:

  • 划线(你可能已经在一些图表中看到了一条小的,当线穿过时)
  • 线弯数
  • 总行长
  • 层次结构(通常应该向上绘制继承行)

你已经可以看到一些规则在竞争;所以布局始终是一种平衡行为。如果您对更多细节感兴趣,我建议谷歌搜索“图形美学”或“自动(图形)布局”。

不幸的是,我所拥有的大多数研究论文都落后于付费专区,所以我无法链接到pdf,但其中一些可能是google-able;例如UML Diagram Layouting: the State of the ArtAesthetics of Class Diagrams

答案 1 :(得分:2)

在我看来,线路交叉可能是不可避免的,但通常情况下,当我试图用一个图表显示太多东西时就会发生这种情况。我认为这是一种“沟通”气味而不是设计气味。

我经常发现明确写下我试图回答的问题有助于发现那些并非严格必要的模型元素,我应该省略。此外,几个图表可能比单个饱和图表更能传达一个想法/设计。

在您的示例中,您可以按照已识别的彩色区域细分图表。

答案 2 :(得分:1)

当有交叉线时,现在是停下来思考图表是否变得过于复杂的好时机。

我觉得你的图表试图同时具有抽象性和具体性。我觉得它太复杂了。它是抽象的,它提供了一个架构概述,具体的是它显示了与实现相关的结构细节。

就个人而言,我可能会将您的图表拆分为组件图;然后使用单独的类图表达每个组件的结构。