在UML中,所有的事物都被建模为类。类是对词汇表中一些事物的抽象。类不是个体对象,而是描述一些对象的一个完整集合。
强调抽象的最重要的部分:名称、属性和操作
类 (class)是对一组具有相同属性、操作、关系和语义的对象的描述。在图形上,把类画成一个矩形。
1、名称(name)
名称 (name)是一个文字串。单独的名称叫做简单名 (simple name),
用类所在的包的名称作为前缀的类名叫做限定名 (qualified name)。
要求类名的第一个字母通常要大写
2、属性 (attribute)
属性 (attribute)是已命名的类的特性,它描述了该特性的实例可以取值的范围。类可以有任意数目的属性,也可以没有属性。属性描述了正被建模的事物的一些特性,这些特性为类的所有对象所共有。
属性与聚合的语义有关
属性可以有默认值,可以只读、或者本类的所有对象共享
3、操作(operation)
操作 (operation)是一个服务的实现,该服务可以由任何类的对象来请求以影响其行为。
类可以有任意数目的操作,也可以没有操作。
特征标记包含所有参数的名称、类型和默认值,如果是函数,还要包括返回类型
可以把操作标记为多态的、不变的或描述它的可见性
4、对属性和操作的组织
4.1、衍型
为了更好地组织属性和操作的长列表,可以利用衍型在每一组属性和操作之前加一个描述其种类的前缀
衍型又称构造型或者版型,用<<>>表示
4.2、职责 (responsibility)
是类的合约或责任。当创建一个类时,就声明了这个类的所有对象具有相同种类的状态和相同种类的行为。在较高的抽象层次上,这些相应的属性和操作正是要完成类的职责的特征。
职责是一个已定义的衍型的例子
对类建模的一个好的起点是详述词汇表中的事物的职责。
职责是自由形式的文本。
要把这些职责转换成能很好地完成这些职责的一组属性和操作。
职责是一个已定义的衍型的例子
4.3、其他特征
- 单个属性和操作的可见性;
- 与特定语言相关的操作特征,例如多态的或静态的;
- 甚至类的对象可能产生或操纵的异常事件。
- 把类的实现与规约相分离【接口】
- 设计类的实现时,需要将其内部结构建模为一组连接起来的部件。
- 建立复杂的模型,主动类(进程和线程)、制品(物理软件构件)和节点(硬件)
- 类之间的交互、协作【类图】