统一建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
软件开发的时候,系统设计师/系统架构师给出UML设计图,程序员将来要根据UML设计图进行编码/开发
类图(Class Diagram)
描述类的信息(包括属性、方法),以及类和类之间的关系信息
UML类图中,类使用包含类名、属性(field) 和方法(method)且带有分割线的矩形来表示
比如下图表示一个User类,它包含name,age和email这3个属性, 以及modify( )方法
加减号表示了这个属性或方法的可见性,UML类中表可见性的符号有三种:
+ :表示public
- :表示private
#:表示protected
属性的完整表示方式
可见性 名称 : 类型 [ =缺省值]
方法的完整表示方式
可见性 名称(参数列表) [ :返回类型]
中括号中的内容表示是可选的
类与类之间关系
泛化关系(is a)
类和类,接口与接口的继承
实现关系(like a )
接口和实现类
关联关系(has a )

+coder 是programmer中computer的属性名
对应代码:public Computer coder;
自关联
单向关联
聚合关系
整体和部分的关系;聚合关系是比较特殊的关联关系,整体的生命周期不会决定局部的生命周期
组合关系
一种特殊的聚合关系,整体的生命周期决定部分的生命周期,部分是依附在整体上面的,部分离开整体是无法存活的(如每个人都有心脏)
**
依赖关系
依赖关系是所有关系中最弱的一种,这种关系通常体现在类和局部变量之间的关系
**
用例图(Use Case Diagram)
站在系统用户(系统角色)的角度分析系统存在哪些功能;实现用例图的时候,需要先进行系统角色的抽取
用例图中涉及的关系有关联、泛化、包含、扩展**
**
时序图(Sequence Diagram)
描述程序的执行过程,方法的调用过程,方法的返回值等信息(程序是一 步一步怎么执行的,怎么调用的)
用例图中的一个用例会对应时序图当中的一个时序图
小人:动作的发起人
矩形/小圆圈(接口):对象
实线箭头:调用
虚线箭头:返回
柱状:对象的生命周期,柱状不能断,在同一个流程当中不能断
回折线:当前类的方法执行过程中调用自己当前类中的其它方法
