图1中,"保险单"到"保险单上的项目"是单向 关联。UML规定,不带箭头的关联可以意味着未知、未确定或者该关联是双向关联三种选 择,因此,在图中应明确使用其中的一种选择。 关联的命名 既然关联可以是双向的,最复杂的命名方法是每个方向上给出一个名字 ,这样的关联有两个名字,可以用小黑三角表示名字的方向(见图1中最上部的"属于"/"签 定"关联)。为关联命名有几种方法,其原则是该命名是否有助于理解该模型。 角色 关联两头的类以某种角色参与关联。
例如图2中,"公司"以"雇主"的角色,"人 "以"雇员"的角色参与的"工作合同"关联。"雇主"和"雇员"称为角色名。如果在关联上没 有标出角色名,则隐含地用类的名称作为角色名。角色还具有多重性(Multiplicity),表 示可以有多少个对象参与该关联。在图2中,雇主(公司)可以雇佣(签工作合同)多个雇员 ,表示为"*"; 雇员只能与一家雇主签定工作合同,表示为"1"。
多重性表示参与对象的数 目的上下界限制。"*"代表0~∞,即一个客户可以没有保险单,也可以有任意多的保险单 。
"1"是1..1的简写,即任何一个保险单仅来自于一个客户,可以用一个单个数字表示,也 可以用范围或者是数字和范围不连续的组合表示。 关联类 一个关联可能要记录一些信息,可以引入一个关联类来记录。
图3是在图2的 基础上引入了关联类。
关联类通过一根虚线与关联连接。
图4是实现上述目标的另外一种 方法,就是使雇用关系成为一个正式的类。
聚集和组成 聚集(Aggregation)是一种特殊形式的关联。聚集表示类之间的关系是 整体与部分的关系。一辆轿车包含四个车轮、一个方向盘、一个发动机和一个底盘,这是 聚集的一个例子。在需求分析中,"包含"、"组成"、"分为……部分"等经常设计成聚集关 系。聚集可以进一步划分成共享聚集(Shared Aggregation)和组成。
例如,课题组包含许 多成员,但是每个成员又可以是另一个课题组的成员,即部分可以参加多个整体,我们称之 为共享聚集。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/