UML类图快速学习
UML(Unified Modeling Language)类图概览
UML统一建模语言,面向对象设计。
类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。
推荐使用processon作图。
UML 基本元素
三个基本模块:
事务,关系,图。
四种事务
- 结构事务:类,接口,协作,用例,活动类,组件,节点。
- 行为事务:交互,状态机。
- 分组事务:包
- 注释事务:注释。
六种关系
- 依赖
- 泛化
- 实现
- 关联
- 聚合
- 组合
十种图
- 用例图
- 类图
- 对象图
- 包图
- 部署图
- 活动图
- 状态图
- 序列图
- 协作图
- 组件图
类图画法
类
接口
关系
泛化(Generalization):
【箭头指向】:带三角箭头的实线,箭头指向父类(非抽象类)
实现(Realization):
【箭头指向】:带三角箭头的虚线,箭头指向接口等抽象类
关联(Association):
【关联关系】:是一种拥有的关系
【代码体现】:成员变量
【箭头及指向】:带普通箭头的实心线,指向被拥有者
依赖(Dependency) :
【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖。
【代码表现】:局部变量、方法的参数或者对静态方法的调用。
【箭头及指向】:带箭头的虚线,指向被使用者
聚合(Aggregation):
【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
【代码体现】:成员变量
【箭头及指向】:带空心菱形的实心线,菱形指向整体
组合(Composition):
【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。
【代码体现】:成员变量
【箭头及指向】:带实心菱形的实线,菱形指向整体。
领域UML类图 vs 设计UML类图
- 领域UML类图表示系统的静态领域结构,其中的类不与最终程序中的类对应。
- 设计UML类图表示系统的技术架构,是程序员的编码依据,其中的类与系统中的类对应。分析阶段由分析师绘制领域UML类图,设计阶段由设计师绘制实现UML类图。
在系统分析与设计阶段,类通常可以分为三种,分别是实体类(Entity Class)、控制类(Control Class)和边界类(Boundary Class),下面对这三种类加以简要说明:
(1) 实体类:实体类对应系统需求中的每个实体,它们通常需要保存在永久存储体中,一般使用数据库表或文件来记录,实体类既包括存储和传递数据的类,还包括操作数据的类。实体类来源于需求说明中的名词,如学生、商品等。
(2) 控制类:控制类用于体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度。控制类一般是由动宾结构的短语(动词+名词)转化来的名词,如增加商品对应有一个商品增加类,注册对应有一个用户注册类等
(3) 边界类:边界类用于对外部用户与系统之间的交互对象进行抽象,主要包括界面类,如对话框、窗口、菜单等。
在面向对象分析和设计的初级阶段,通常首先识别出实体类,绘制初始类图,此时的类图也可称为领域模型,包括实体类及其它们之间的相互关系。领域UML类图中类的属性与操作仅关注与业务相关的部分,实现UML类图中的属性与操作要包括最终需要实现的全部方法与操作。