为系统的词汇建模其实是从词汇表中发现类,发现它的责任。数据库
协做是指一些类、接口和其余的元素一块儿工做提供一些合做的行为,这些行为 不是简单地将元素加能获得的。例如:当你为一个分布式的系统中的事务处理过程建模型时,你不可能只经过一个类来明白事务是怎样进行的,事实上这个过程的执 行涉及到一系列的类的协同工做。使用类图来可视化这些类和他们的关系。分布式
想象模式是概念上设计数据库的蓝图。在不少领域,你将想保存持久性数据到关系数据库或面向对象的数据库。你能够用类图为这些数据库模式创建模型。函数
(Class)spa
通常包含3个组成部分。第一个是类名;第二个是属性(attributes);第三个是该类提供的方法( 类的性质能够放在第四部分;若是类中含有内部类,则会出现第五个组成部分)。类名部分是不能省略的,其余组成部分能够省略。设计
类名书写规范:正体字说明类是可被实例化的,斜体字说明类为抽象类。htm
属性和方法书写规范:修饰符 [描述信息] 属性、方法名称 [参数] [:返回类型|类型]对象
属性和方法以前可附加的可见性修饰符:继承
加号(+)表示public;减号(-)表示private;#号表示protected;省略这些修饰符表示具备package(包)级别的可见性。接口
若是属性或方法具备下划线,则说明它是静态的。生命周期
描述信息使用 << 开头和使用 >> 结尾。
类的性质是由一个属性、一个赋值方法和一个取值方法组成。书写方式和方法相似。
包
(Package)
包是一种常规用途的组合机制。UML中的一个包直接对应于Java中的一 个包。在Java中,一个包可能含有其余包、类或者同时含有这二者。进行建模时,一般使用逻辑性的包,用于对模型进行组织;使用物理性的包,用于转换成系 统中的Java包。每一个包的名称对这个包进行了唯一性的标识。
接口
(Interface)
接口是一系列操做的集合,它指定了一个类所提供的服务。它直接对应于Java中的一个接口类型。接口的表示有大概两种方式。具体画法见下例:
常见的关系有:继承(Inheritance),关联关系(Association),聚合关系(Aggregation),复合关系(Composition),依赖关系(Dependency)。
其中,聚合关系(Aggregation),复合关系(Composition)属于关联关系(Association)。
通常关系表现为继承或实现关系(is a),关联关系表现为变量(has a ),依赖关系表现为函数中的参数(use a)。
通常化关系:表示为类与类之间的继承关系,接口与接口之间的继承,类对接口的实现关系。
表示方法: 用一个空心箭头+实线,箭头指向父类。或空心箭头+虚线,若是父类是接口。
关联关系:类与类之间的联接,它使一个类知道另外一个类的属性和方法。
表示方法:用 实线+箭头, 箭头指向被使用的类。
聚合关系:是关联关系的一种,是强的关联关系。聚合关系是总体和个体的关系。关联关系的两个类处于同一层次上,而聚合关系两个类处于不一样的层次,一个是总体,一个是部分。
表示方法:空心菱形+实线+箭头,箭头指向部分。
合成关系:是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中表明总体的对象负责表明部分的对象的生命周期,合成关系不能共享。
表示方法:实心菱形+实线+箭头,
依赖关系:是类与类之间的链接,表示一个类依赖于另外一个类的定义。例如若是A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。
表示方法:虚线+箭头 箭头指向被依赖的一方,也就是指向局部变量。