何时在绘制UML时使用属性(属性)而不是关联/聚合/组合

the*_*tor 5 attributes uml associations relationship

好的,所以当我尝试在UML图中显示关系时,我应该向类添加属性与绘制类的关联时,我有点困惑.

例如,假设我有一个DFA类,其中包含10个状态对象,每个状态对象都有一组到DFA中各种状态的路径.我应该将构图线从DFA绘制到State类,还是只在DFA类的属性部分中键入所有10个状态.

基本上我试图弄清楚当A类包含(或由一个或多个B类)组成时,我是否应该在它们之间绘制一条线(聚合,组合,关联依赖等)或者只将一个作为属性放入另一个.

本文试图回答这个问题,但一旦他开始谈论他绘制的图表我就会感到困惑.

vai*_*olo 5

您指出的文章提供了一个指导方针:

在与不同的建模团队合作的多年中,我发现最有效的规则是对类使用关联,对数据类型使用属性。数据类型是一种特殊的分类器,类似于类。它与类的区别在于,数据类型的实例仅通过其值来标识。

我有点同意作者的观点,还补充一点:类图应该是可以理解的。如果您的图有很多线相互交叉,则该图是无用的。发生这种情况时,您必须尝试找到可以使用属性建模的关系,而又不会丢失过多的可视信息,然后将其替换为属性。

您可以使用关系而不使用属性来做的另一件事是显示双向关系(可以在关系的每个类中使用一个属性来执行此操作,但是可以松开关系的语义)。