UML用类图 (class diagram)表示类、接口及其关联。类图用于静态对象建模。
UML类元是“描述行为和机构特性的模型元素”。类元也可以被特化。它们是对众多UML元素的泛化,这些元素包括类、接口、用例和参与者。在类图中,最常见的两个类元是常规的类和接口。
1、表示类元属性的两种方式
a、属性文本表示法,例如:age:int。
b、关联线表示法
属性文本表示法的完整格式是:
visibility name : type multiplicity = default {property-string}
下面举例说明两种表示法:
其中age、name、income和ids都是属性文本的表示方法。head是关联线的表示法。
ids是集合属性,用[1...*]来表示。{ordered}是UML定义的关键字,表示集合中的元素是有序的。
2、操作和方法
UML操作是类方法的声明,其中包括名称、参数、放回类型、异常列表、可能的前置和后置条件约束等。但是,操作不是实现,而方法是实现。
操作的完整格式:
visibility name (parameter-list) : return-type {property-string}
UML方法是操作的实现。如果定义了约束,则方法必须满足这些约束。在类图中,方法可以使用构造型为<<method>>的UML注解符号。
表示如下:
访问操作是提取和设置属性的操作,如getAge、setAge。这些操作通常不包含在类图中,因为它们产生了较高的干扰。对于n个属性,可能会产生2n个访问操作。
3、泛化、抽象类
在UML中,泛化(generalization)用由子类到超类的实线和空心三角箭头表示。泛化是普通的类元与特殊的类元之间的分类学关系。在软件视角的类图中,可以理解为继承。
如上,抽象类的表示方法。
4、依赖
依赖线可以用于任何图形,在类图中常见。依赖关系(dependency relationship)表示,客户元素(任何种类,包括类、包、用例等)了解其他的提供者元素,并且表示当提供者有所改变时会对客户产生影响。
依赖用从客户到提供者的虚线箭头线表示。
依赖有很多种类,以下是在对象图和类图中比较常见的类型:
a、拥有提供者类型的属性
b、向提高者发送消息。对提供者的可见性可能是:属性、参数变量、局部变量、静态类或方法
c、接受提供者类型的参数
d、提供者是超类或接口
5、接口
Timer接口,Clock为接口实现。