关联(Association)

关联(Association)是表示模块(也包括其它各种可作为类型的元素)之间联系的元素。这种联系可能只是信息的交流,也可能是实实在在的一个具体的实体类型,例如某种型号的电连接器产品。关联本身也是一种类目(它是类目Classifier的继承类),它的连接端也都是类目,所以它可以出现在模块定义图或包图中。在用例图中表示执行者(Actor)和用例(UseCase)之间的通信路径(Communication path)也是关联。

在两个模块(或其它类目)之间建立一个关联的直接结果,是为模块添加相应的属性(在MBSES中称为“关联端属性”)。根据关联两端的元素类型,以及关联的方向,添加的属性类型不同。这个在关联一端添加的属性,类型是这一端的类目元素,所有者是另外一端的类目元素(就是添加到另外一端的类目元素中作为属性)。下面的例子中显示了在一个模块中通过关联添加部件属性(parts)、值属性(value properties)、引用属性(references)和约束属性(contraint properties)的情况。

图中,Block1和Block2之间添加了一个双向的组合关联,这个关联为Block1生成一个部件属性b2,类型是Block2;同时为Block2生成了一个引用属性b1,类型是Block1。:“双向”的意思就是Block1可以通过属性b2访问模块Block2中的属性和操作;同时Block2可以通过b1属性访问Block1的属性和操作。

Block1和ValueType3之间添加了一个单向的组合关联。这个关联为Block1生成了一个名称为v3、类型为ValueType3的值属性。这个关联同时在另外一端也生成了一个关联端属性,但这个关联端属性并不能属于ValueType3(一方面单向关联是不在不能访问的一端为连接的类目元素生成属性,而且值类型也不能拥有部件属性),因为这样是无意义的,但是这个元素是存在的,它属于这个关联关系元素。

Block1和约束模块Constraint4之间添加一个单向组合关联,这个关联为Block1生成了一个名称为c4、类型为Constraint4的约束属性。

如果在模块Block1和模块Block2的节点属性中,设置“显示关联端属性”打上勾,同时设置显示分区,则这两个模块的显示如下图所示。图中将显示关联生成的属性,虽然在一个图中,有关联关系的情况下没必要在属性分区中重复显示这些“关联端属性”,但在另外一个图中,如果没有显示关联关系的情况下,你可以按照上述的设置显示所有的属性。

关联关系生成的属性,和在属性分区中直接添加的属性本质上没有任何区别。你可以在内部模块图中更详细的描述属性之间的关系,包括这些关联端属性。

关联元素的属性框中的“前端”、“末端”就是指这两个关联端属性。“前端”指关联连线的起始端的那个端属性,“末端”指关联连线的末端的那个端属性。

MBSES用户使用说明书