统一建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
软件开发的时候,系统设计师/系统架构师给出UML设计图,程序员将来要根据UML设计图进行编码/开发

类图(Class Diagram)

描述类的信息(包括属性、方法),以及类和类之间的关系信息

UML类图中,类使用包含类名、属性(field) 和方法(method)且带有分割线的矩形来表示
比如下图表示一个User类,它包含name,age和email这3个属性, 以及modify( )方法
image.png
加减号表示了这个属性或方法的可见性,UML类中表可见性的符号有三种:
+ :表示public
- :表示private
#:表示protected

属性的完整表示方式

可见性 名称 : 类型 [ =缺省值]

方法的完整表示方式

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

中括号中的内容表示是可选的

类与类之间关系

泛化关系(is a)

类和类,接口与接口的继承
image.png

实现关系(like a )

接口和实现类
image.png

关联关系(has a )

image.png
+coder 是programmer中computer的属性名
对应代码:public Computer coder;

自关联

单向关联
image.png

聚合关系

整体和部分的关系;聚合关系是比较特殊的关联关系,整体的生命周期不会决定局部的生命周期
image.png

组合关系

一种特殊的聚合关系,整体的生命周期决定部分的生命周期,部分是依附在整体上面的,部分离开整体是无法存活的(如每个人都有心脏)
image.png
**

依赖关系

依赖关系是所有关系中最弱的一种,这种关系通常体现在类和局部变量之间的关系
image.png
**

用例图(Use Case Diagram)

站在系统用户(系统角色)的角度分析系统存在哪些功能;实现用例图的时候,需要先进行系统角色的抽取

用例图中涉及的关系有
关联、泛化、包含、扩展**
image.png

**

时序图(Sequence Diagram)

描述程序的执行过程,方法的调用过程,方法的返回值等信息(程序是一 步一步怎么执行的,怎么调用的)
用例图中的一个用例会对应时序图当中的一个时序图
image.png

小人:动作的发起人
矩形/小圆圈(接口):对象
实线箭头:调用
虚线箭头:返回
柱状:对象的生命周期,柱状不能断,在同一个流程当中不能断
回折线:当前类的方法执行过程中调用自己当前类中的其它方法