假设您有一个包含大约40个类/实体的ERM。他们中的大多数人与其他人有着量化的关系,有些人只是站在那里。
如何处理经常使用的称为image类型的Image关系/属性?
我担心,因为我有那么多拥有Image的实体,所以图中会有表示这种关系的线条。
在某个地方将Image实体作为“独立”类并将其作为属性使用,这是一种良好的实践吗?
这两幅图像显示了不同之处。


发布于 2022-10-10 18:52:03
事实上,这两个符号在语义上几乎是等价的。唯一缺少的是,在第二个图中,您还表示了关联结束时的多重性,包括:
image: Image [0..1]UML规范的9.5.3节解释说:
属性可以表示分类器的属性、关联的memberEnd,或者在某些情况下同时表示二者。
两者之间的区别在于所有权(由类还是由关联)理解,在像您这样的二进制关联中,属性可以同时由两者拥有。
与属性(第二个图)相比,更倾向于成员端(第一个图)只是一个不需要强制执行的约定:
对于一般建模场景,一个有用的约定是,类型为类的属性是关联结束,而类型为DataType的属性则不是。这个约定不是由UML强制执行的。
实际上,«dataType»类似于类,但具有值语义:实例仅通过其值来区分(许多语言中典型的内建类型行为)。
这就是为什么您几乎总是看到原始的UML类型(String,Integer,Real,.)并将内置语言类型(假设使用了特定于语言的UML概要文件)作为属性,并将所有类作为关联元素。但是你不需要这样做,你的例子就是一个很好的例子,为什么有时候违背惯例是有意义的。
发布于 2022-10-10 13:14:37
你的String关系呢?我可以看到您使用String类,但是您还没有显示这种关系。
当您需要说明要点时,最好使用UML图。你想展示的东西。把注意力放在这上面。不要试图在页面上塞满所有的东西,否则你只会表现出困惑。
因此,除非Image是您在这里试图指出的重点,否则可以不使用它的行。在其他地方给我们看。
至于如何摆脱这些行,您就像处理String中的行一样,处理掉它们。
如果您在某个地方有Image的图表,比如在第42页,它是页面的重点,那么您可以添加一个注释,上面写着“请参阅42页”。
https://softwareengineering.stackexchange.com/questions/441544
复制相似问题