UML中有4种关系:依赖、关联、泛化和实现。
表示形式如表所示:
依赖关系 | dependency --------> |
关联关系 | association ______> |
聚合关系 | aggregation ______◇ |
组合关系 | Composition______◆ |
实现 | realization ------△ |
泛化 | generalization △---------- |
(1) 依赖(dependency)是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义。在图形上,把一个依赖画成一条可能有方向的虚线。箭头指向被依赖的哪一方。
说明:动物有几大特征,比如有新陈代谢,能繁殖。而动物要有生命力,需要氧气、水以及食物等。也就是说,动物依赖氧气和水。他们之间是依赖关系(dependency),用虚线箭头来表示,如果两个类有结构关系(关联关系),那么就不用依赖关系(两个事物一般都有这个关系)。
(2) 关联关系,表示两个类之间的关系,用一个无向线段表示,
如图所示,表示教师和学生类的的关联关系,可以是单向,也可以是双向的。
(3) 聚合关系,是一种特殊形式的关联,表示整体与部分之间的关系,用实现加菱形表示,例如一个电脑由显示器,主机,键盘,鼠标组成,菱形指向整体。
(4) 组合关系,是一种强的聚合关系,强调部分与整体的一致性,如果整体存活,则部分一定能存活,部分死亡,或者消失,整体也死亡或者消失。
(5) 泛化(generalization)是一种特殊/一般关系,是一种继承关系。特殊元素(子元素)的对象可替代一般元素(父元素)的对象,用这种方法,子元素共享了父元素的结构和行为。在图形上,把一个泛化关系画成一条带有空心箭头的实线,它指向父元素。 如图:儿子,和女儿继承了父亲的所有的属性,和方法。
(6) 实现(realization)是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。在两种地方要遇到实现关系:一种是在接口和实现它们的类或构件之间;另一种是在用例和实现它们的协作之间。在图形上,把一个实现关系画成一条带有空心箭头的虚线。 是一种单向的关系,通过类与接口来实现,例如,超人(类)会飞(接口)。
这4种关系是U ML模型中可以包含的基本关系事物。它们也有变体,例如,依赖的变体有精化、跟踪、包含和延伸。