文章目录
学习UML的动机,是在写需求、设计等文档的时候就需要画UML图。
UML
UML又称统一建模语言或标准建模语言。UML采用了一组形参化的图形(如类图)符号作为建模语言,使用这些符号可以形象地描述系统的各方面。
一、能够实现UML图的建模工具有哪些?
①Rational Rose 是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具
②StarUML现在大多数公司使用,我也是使用的是它
③Visio(比较在行的是流程图)
二、UML图常见的包括哪些图呢?
UML中一共有10种图,主要分为两大类:
静态模型图:描述系统的静态结构
- 类图(class Diagram):描述类的信息(包括属性、方法),以及类与类之间的关系信息。
- 对象图:是类图的一个实例,对象图用带下划线的对象名称来表示对象。对象图展现了多个对象的特征及对象之间的交互。
- 包图:由包与包之间的关系组成。包的图标就如同一个带标签的文件夹。
- 组件图(Component Diagram):
- 部署图 :用来帮助开发者了解软件中的各组件驻留在什么硬件位置,以及这些硬件之间的交互关系
动态模型图:描述系统行为的各方面 - 用例图(Use Case Diagram):站在系统用户(系统角色)的角度分析系统存在哪些功能。
- 时序图(Sequence Diagram):描述程序的执行过程,方法的调用过程,方法的返回值等信息。(程序时一步一步如何执行的,又是如何调用的)
- 协作图:表达对象之间的交互过程
- 状态图:通过建立对象的生命周期模型来描述对象随时间变化的动态行为。
- 活动图 :本质就是流程图。
重点是类图、用例图、时序图和活动图
1、类图(Class Diagram)
1.1、什么是类图?
描述类的信息,以及类与类之间的关系信息。
1.2、类与类之间的关系包括4种情况:
- 泛化关系(generalization):类和类、接口和接口的继承。实线空心箭头是子类指向父类。
- 实现关系(realization):类与接口的实现关系,虚线空心箭头是子类指向父类
- 关联关系(association)
3.1 . 聚合关系
聚合关系描述的是整体和部分的关系,聚合关系是比较特殊的关联,比如:汽车由引擎、轮胎以及其他零件组成。
3.2. 组合关系
组合关系可以看做是一种特殊的聚合关系,整体的生命周期决定部分的生命周期,部分是依附在整体上面的,部分离开了整体是无法“存活的”。例如:公司和部门的关系
- 依赖关系(realization)
依赖关系是所有关系中最弱的一种,这种关系通常体现在类和局部变量之间的关系。
//依赖(虚线): 一个类是另外一个类的函数参数或者函数返回值
class Car;
class ZhangSan
{
public:
//依赖关系
void GoWork(Car *p){}
Car * fix(){}
protected:
private:
};
class Car
{
public:
protected:
private:
};
2、用例图(use case diagram)
2.1、什么是用例图?
也称为用户模型图,是从软件需求分析到最终实现的第一步,简单的来说它就是从客户的角度来描述系统的功能。
2.2、用例图的3大基本组件:
- 参与者(Actor): 与系统打交道的人或其他系统即使用该系统的人或事物. 在 UML 中参与者用人形图标表示
- 用例(Use Case): 代表系统的某项完整的功能. 在 UML 中使用一个椭圆来表示
- 关系: 定义用例之间的关系 ------ 泛化关系, 扩展关系, 包含关系
- 泛化关系: 表示同一业务目的(父用例)的不同技术实现(各个子用例). 在 UML 中, 用例泛化用一个三角箭头从子用例指向父用例. 以下是某购物网站为用户提供不同的支付方式:
- 扩展关系:如果在完成某个功能的时候偶尔会执行另外一个功能, 则用扩展关系表示.在 UML 中扩展关系用虚线箭头加 “<>”, 箭头指向被扩展的用例
- 包含关系:一个用例可以包含其他用例具有的行为, 并把它包含的用例行为作为自身行为的一部分. 在 UML 中包含关系用虚线箭头加 “<>”, 箭头指向被包含的用例
3、时序图(sequence diagram)
3.1、什么是时序图?
时序图用于描述对象之间的传递消息的时间顺序, 即用例中的行为顺序。
当执行一个用例时, 时序图中的每条消息对应了一个类操作或者引起转换的触发事件。
在 UML 中, 时序图表示为一个二维的关系图, 其中, 纵轴是时间轴, 时间延竖线向下延伸. 横轴代表在协作中各个独立的对象. 当对象存在时, 生命线用一条虚线表示, 消息用从一个对象的生命线到另一个对象的生命线的箭头表示. 箭头以时间的顺序在图中上下排列.
3.2、借书的时序图
说明:其他的UML图在以后在做详细介绍
- 软件链接:链接: https://pan.baidu.com/s/1va_9YNREK04JNip3-zSE-g 提取码: 1cjd