**
1, 定义
**
统一建模语言,Unified Modeling Language
**
2, 类
**
1) 一个矩形表示一个类,类名居中。
2) UML并不要求图中描述所有与该元素相关的内容。
3) 包也是使用矩形表示,但是包名左对齐,其下有更大的矩形,显示包中的类与其他类型。
4) 当包图下显示一个类时,说明该类所在的命名空间,即类所在的包下
5) 类的实例变量显示在类名下的矩形框中。实例变量名称后跟一个冒号,以及该实例变量的类型。
6) 实例变量或方法前的-,private;+,public属性;#,protected
7) 类的方法显示在类名下的第二个矩形框中
8) 如果方法有参数,就需要把这些参数显示出来,且在方法签名上的组织形式:变量名:变量类型。
9) 在实例变量或者方法下面加下划线,表明此变量或者方法是静态的。
10) 卷角矩形中加入注释,并使用虚线将它和其他元素连起来。注释可以出现在任何一个UML图中。
**
3, 类关系
**
1) 类名或者方法名为斜体,则表示该类或方法是抽象的。方法有下划线,则表示是静态的。
2) 使用闭合的空心箭头指向类的超类
3) 两个类之间的连线表示二者的实例存在关系,一般翻译为,一个类的实例变量引用了另一个类。
4) 连线一端的菱形表示一个类的实例包含另一个类的实例集合
5) 开放箭头表示某种引用关系,通常,一个类引用另外一个类,且被指向的类并没有反向指向前一个类。
6) 多重指示符,用于指示对象之间可能出现的连接数,星号(*)表示一个类有零个到多个实例与对应类的实例存在关联关系。
7) 如果一个方法会抛出异常,可以在开放箭头的虚线上使用<>构造标记,并执行这个异常类。
8) 可以用一个带箭头的虚线表示类之间不存在对象引用的依赖关系。
**
4, 接口
**
1) 可以使用<>文字与接口名的矩形框表示接口。
2) 使用一条线加一个圆形(棒棒糖形状),并在旁边标注接口名称来表示类实现了接口。
3) 使用带闭合空心箭头虚线表示类实现了接口。
4) 接口和其中的方法都是抽象的,但是,并不需要斜体表示。
**
5, 对象
**
1) 可以通过冒号和分隔对象名与类型来描述一个对象,也可以只显示对象的名称,或者只显示冒号和类型。对象的名称与类型都要加下划线
2) 在对象之间用一条线表示一个对象引用了另一个对象。可以使用开放箭头来重点标注引用的方向。
3) 可以用时序图表示对象发送消息给另一个对象的顺序。消息顺序自上而下,虚线表示对象的时间区间。
4) 使用<>构造姓表示一个对象创建另一个对象。
5) 通过为对象的矩形边框加粗,表示该对象是在另一线程、进程或另一个计算机上运行的活跃对象。
**
6, 状态图
**
1) 带圆角的矩形框表示一种状态
2) 使用开放箭头表示状态的迁移
3) 状态图无须直接映射到类图或对象图,当然,也可以对状态图进行这样的转换。