在UML类图中建模图边缘类和节点类之间关系的最正确/优雅方法是什么?
我通常会使用两个关联Edge-> Node,一个用于源节点角色,一个用于目标节点角色。但最近我为项目提出了这种图表:
在这种情况下,聚合的使用是否被认为是正确的?
答案 0 :(得分:2)
是的,在此示例中,您使用聚合是正确的,前提是边必须具有两个节点。
我唯一可以补充的是,你的Node也可能与你的边缘类有一对多的关系,尽管这不会反映在当前类图的字段中。
答案 1 :(得分:-2)
尽管很多年后,这里还是有关如何在UML中对图形进行建模的更详细的想法。
我需要对关系和图形结构都进行建模,用于关系建模和数据映射的可视化工具非常强大,而对于图形来说却没有太多。因此,我正在研究如何使用一种模型类型来涵盖这两种情况...,并发现this方法从一开始就看起来很简单且足够健壮。
总体思路是使通用图模式表示具有足够的鲁棒性,以创建任何种类的图实例,如以下定义通用元模型结构的图片所示:
注意:可以看到,元模型反映了Neo4j和OrientDB的实现,因此其他图形数据库可能会有所不同(例如,属性仅绑定到顶点而不是边缘等)
好,所以我们有了元模型,现在它看起来或多或少清晰了,但是如何使用它来描述实际使用场景?
那么这副照片是什么?这是Graph本体定义,它是任何类型的基于图的项目所需的真实结果,以在图中正确反映真实世界。