【问题标题】:Graph Application UML Class Diagram图应用UML类图
【发布时间】:2016-11-03 19:20:43
【问题描述】:

我正在为一个从数据制作图表的应用程序设计一个 UML 类图。
我有应用程序驱动程序类本身,它读取数据然后创建图形。 我有一个“图形”类,它具有各种属性,包括一组“顶点”类。
如上所述,我还有一个“顶点”类,它具有与节点相关的属性。

我正在努力想出代表上述内容的最佳方式。
说“Graph”类是“Vertex”类的聚合是否正确?
驱动程序类应该如何显示它创建了图形?
谢谢。

【问题讨论】:

  • 我建议您尝试自己绘制类图。另请注意,很少有一个图表和一种图表类型足以用于单个项目。

标签: class graph uml


【解决方案1】:

见下图。假设每个 Vertex 只是一个 Graph 的一部分,我使用了组合,即强聚合形式。

【讨论】:

  • 谢谢!我的图表看起来非常相似,只是我有一个组合。我只有一个后续问题 - 为什么聚合更合适?是因为没有图就不能存在顶点吗?我的软件在驱动类中创建节点,然后在 Graph 实例上调用一个方法(例如:addVertex(Vertex: theVertex))来添加顶点。
  • 你不应该太在意共享/复合聚合。它与元素的生命周期有关,具体取决于聚合元素。它的使用增加了更多的混乱,而不是它实际上有助于理解模型。我个人认为这个钻石的唯一真正用途是外键约束和内存管理。
  • 就个人而言,我不使用开放菱形('共享聚合'),仅使用填充菱形('composition')来表示整体关系,但前提是部分实例必须当封闭的整个实例被销毁时被销毁(在数据库术语中:级联删除)。在您的情况下,如果图的顶点仅在图存在时才存在,则使用组合。否则,请使用普通关联。至少,这是我的建议。
猜你喜欢
  • 2012-03-21
  • 1970-01-01
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多