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

时间:2012-11-26 02:10:04

标签: attributes associations relationship uml

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

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

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

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

1 个答案:

答案 0 :(得分:4)

你指出的文章给出了一个指导原则:

  

在我与不同建模团队合作的这些年里,我发现最有效的规则是使用关联类和数据类型的属性。   数据类型是一种特殊的分类器,类似于类。它与类的不同之处在于,数据类型的实例仅由其值标识。

我同意作者的观点,并补充说:你的班级图应该可以理解。如果你的图表中有许多相互交叉的图表,那么图表就没用了。发生这种情况时,您必须尝试找到可以使用属性建模的关系,而不会丢失太多的可视信息,并用属性替换它们。

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