UML(Unified Modeling Language)中文统一建模语言,是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。 【维基百科】

最近做的项目,感觉项目越来越大,其中的关系也变得越来越复杂,急需理清其中的相关联系,所以就整理一下UML使用技巧,希望自己通过UML,能够理清自己的思路。

##类图作用
类图是软件工程的统一建模语言一种静态结构图,该图描述了系统的类集合,类的属性和类之间的关系。帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。学习好类图的绘制,是一位合格的软件工程师应有的技能。

##类图的示例
类主要包括类名、属性和方法以及方法所需的参数,用类图简单的表示如下图所示:
Alt Image Text
Java中,可见性分为三类:private、public、protexted,分别用-,+和#来表示。

###类名
对于Java中的类名,如果是抽象类的haunted,在类名的右下角会有一个(Abstarct)表示。

###属性
属性的一般表示格式为:

1
可见性  名称:类型 [ = 默认值 ]

如:+ name:String =zhoujunpeng

###方法
方法的表示格式为:

1
可见性  名称(参数列表) [ : 返回类型]

如:

    • setName(String name) : void
    • getName() :String;

##类与之间的关系

###泛化(Generalization)关系
泛化关系是指java中的继承,类和类,接口和接口之间的继承关系,一般用实线和带空心的三角形表示,如下图:
泛化关系

###实现(Realization)关系
实现关系是指类与接口之间的关系,一般用虚线和带空心的三角形表示,如下图:
泛化关系

###依赖(Dependence)关系
依赖关系可以理解为一个类使用了另外一个类,一般用带箭头的虚线表示,如图:

泛化关系

###关联(Association)关系
关联是指一个类和另外一个类有联系,一般用带箭头的实线表示,箭头指向被包含的类,如图:
泛化关系

线上的标志表示:
>

  • 1..1 表示另一个类的一个对象只与该类的一个对象有关系
  • 0..* 表示另一个类的一个对象与该类的零个或多个对象有关系
  • 1..* 表示另一个类的一个对象与该类的一个或多个对象有关系
  • 0..1 表示另一个类的一个对象没有或只与该类的一个对象有关系
  • 任意多个对象关联

###聚合(Aggregation)关系
聚合表示整体与部分的关系,而且部分可以脱离整体二存在,一般用带空心菱形的直线表示,如图:
泛化关系

###组合(Composition)关系
组合关系也是一种部分和整体的关系,但是部分存活周期受到整体的影响,若整体不存在则部分也将不存在。此时部分需在整体的构造方法中创建。在UML类中,组合关系用带实心菱形的直线表示。
泛化关系

##最后看下完整的类图展示
泛化关系