UML(Unified
Modeling Language),即统一建模语言或标准建模语言,始于OMG(Object
Management Group,对象管理组织),是OOAD(Object
Oriented Analysis Design,面向对象的分析与设计)高潮时期的产物。UML是一门统一的可视化建模语言,主要表现形式是图,自然就会有许多不同种类的图,下面先介绍一下类图。
类图是一种静态图,用于描述系统中所包含的类以及它们之间的关系,是面向对象系统的建模中最为常见的一种图。在UML类图中,类通常可以分为实体类、控制类和边界类,具体由类名、类的属性和类的操作三部分组成,类与类之间的关系有不同的表示方式,下面一一介绍,需要特别注意的是各关系中的箭头形状及指向。
泛化(Generalization)——
泛化是一种继承关系,是一般与特殊的关系,例如BMW继承自Car,是Car的一个品牌,有Car的共性,但也有BMW自己的特性。
实现(Realization)——
实现是一种接口继承关系,是接口的具体实现,例如Car与ICar的关系,ICar声明一些抽象操作,Car完成这些操作的实现。
依赖(dependency)——
依赖是一种使用关系,表示一种事物对另一种事物的使用,例如Car与Wheel的关系,使用方式通常是把Wheel作为Car中方法的参数,也可以是局部变量或静态方法的调用。
聚合(Aggregation)——
聚合表示整体与部分的关系,但部分可以独立于整体而单独存在,如Car与Glass的关系,Glass是Car的一部分,一个成员对象,Glass可以不依赖于Car而独立存在。
组合(Composition)——
组合也表示整体与部分的关系,但部分不可以独立于整体而单独存在,如Car与Smoke的关系,Smoke是Car的一部分,一个成员变量,Smoke不可以独立于Car而单独存在,一旦Car的生命周期结束时,Smoke也就不存在了。
关联(Association)——
关联是一种结构化关系,表示一类对象与另一类对象之间有联系,可以是单向关联,如Car与Position的关系,也可以是双向关联,如Driver与Car的关系,还可以是自关联,如Gas与Gas的关系。另外,关联还可以是多重性关联,表示两个关联对象在数量上的对应关系,在UML类图中,对象之间的多重性可以直接在关联直线上用一个数字或一个数字范围表示。