在UML的静态机制中类图是一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心。建模工具也主要根据类图来产生代码。类图在UML的9个图中占据了一个相当重要的地位。 James Rumbaugh对类的定义是:类是具有相似结构、行为和关系的一组对象的描述符。类是面向对象系统中最重要的构造块。类图显示了一组类、接口、协作以及他们之间的关系。在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构建这些类从而实现系统。类加上他们之间的关系就构成了类图,类图中还可以包含接口、包等元素,也可以包括对象、链等实例。接口在类图中通过版型来表示<<interface>>,下面的介绍将主要介绍类,接口和类类似。
下面具体介绍一下类。
类包括类名(name)、属性(attrrbutes)、方法(operation)
如图所示:
总共的五种表示方法:
类是任何面向对象系统中最重要的构造块。类是一种重要的分类器,用来描述结构和行为特性的机制,它包括类、接口、数据类型、信号、组件节点、用例和子系统。
类是对一组具有共同属性、操作、关系和语义的对象的描述。这些对象包括实现现实世界中的软件事物和硬件事物,甚至包括纯粹概念的事物,它们是类的实例。一个类可以实现一个或多个接口。结构良好的类具有清晰的边界,并成为系统中指责均衡分布的一部分。
1.名字(name)
类的名称是每一个类所必有的构成,用于和其它类区别。名称(name)是一个文本串,一种是简单名,另一种如果该类存在于某包中其名字(name)下面会有说明。具体分别如图1、2所示。
2.属性(attribute)
类的属性是类的一个组成部分,它描述类在软件系统中代表的事物所具备的特性。类可以有任意数目的属性,也可以没有属性。属性描述了正在建模的事物的一些特性,这些特性是所有对象所共有的。例如学生来建模,每个学生都有名字、专业、籍贯,这些都可以作为学生的属性。
在uml中类的属性的语法为:
[可见性]属性名[ :类型] [ =初始值] [ {属性字符串} ]
其中[ ]中的部分是可选的。类中的属性的可见性主要包括public、private和protect 3种,分别用“+、- # ”表示。
3.操作(Operation)
类的操作是对类的对象所能做的事务的抽象。它相对于一个服务的实现,该服务可以由类的对象请求以影响其行为。一个类可以有任何数量的操作或者根本没有操作。类的操作必须有一个名字,可以有参数表,可以有返回值。根据定义,类的操作所提供的服务可以非为两类,一类是操作的结果引起对象状态的变化,状态的改变也包括相应的动态行为的发生:另一类是为服务的请求者提供返回值。
在UML中类的操作的语法为:
[可见性]操作表[(参数表)] [:返回类型] [ {属性字符串} ]
实际建模中,操作名是用来描述所属类的行为的短动词或动词短语(通常以小写字母开头。)如果是抽象操作,则用斜体字表示。
一个比较全的类图如下:
类的关系:
关联
普通关联 :一条直线
对于关联还有修饰作用例如:
简单的修饰如下:
聚合:
该关系表示类间的关系是整体与部分的关系。更简单的说,关联关系中的一个类描述了一个较大的事物,它由较小的事物组成,这种关系就是聚合,他描述了“has---a”的关系,即整体对象与不分对象。
表示方法:
组合:
组合是比聚合更强形式的关联,强调部分不能离开整体而单独存在。
表示方法:
依赖
依赖是一种使用关系,它说明一个事物规格说明的变化可能影响到使用它的另个一个事物。
表示方法:
泛化
就是描述类与类之间的继承关系。
表示方法:
实现
表示方法:
类的结构:
Class 类
Interface 接口
Collaborations 协作
Dependency,Generalization and Association relationships 四种关系
Paceages or subsystems(for grouping) 包 or子系统
一个完整的类图包括以上部分。具体关于类的描述我将在机房收费系统中展现,敬请期待。