UML概述
- 统一建模语言(Unified Modeling Language,简称UML)是一种用于软件系统建模的图形化语言。
- 包含了一系列的图表、符号和规则 ,用于描述软件系统的结构、行为和交互。可以用UML来表示软件设计和开发过程中的需求分析、系统设计、模块设计、实现和测试等工作。
- UML是由Object Management Group(OMG)提出的标准化的建模语言,目的是为软件开发人员提供可视化的通用语言,使得开发人员在软件开发过程中能够更好地协同工作,提高软件的质量和可维护性。
- 软考(系统架构设计师)中,UML统一建模语言是面向对象的需求分析的重要工具。
UML主要组成部分
- uml包含静态图和动态图两类,静态图主要用于描述系统的结构,动态图主要用于描述系统的行为。
- 顺序、通信、定时、交互概览图又统称为交互图
用例图:系统与外部参与的的交互
顺序图:时间循序
定时图:强调实际时间
类图
- 是描述类、接口、协同以及他们之间关系的图,用来显示系统中这些概念的静态结构。
- 组成元素:类(属性、方法)、关系(实现= 泛化 > 组合 > 聚合 > 关联 > 依赖)、多重度
多重度
1: 一个对象
0…:0个或多个对象
1…: 至少对应一个
*:对应多个对象
关系
关系类型 | 关系描述 | 图形标识 | 方向 | 举例 |
---|---|---|---|---|
泛化 | 一般与特殊的关系,是一种继承关系 | 带三角箭头的实线 | 箭头指向父类 | 动物-老虎 |
实现 | 类与接口的关系 | 带三角箭头的虚线 | 箭头指向接口 | Iuser-VIPuser |
组合 | 整体与部分的关系,部分不能离开整体而单独存在 | 带实心菱形的实线 | 菱形指向整体 | 公司-部门 |
聚合 | 整体与部分的关系,部分可以离开整体而单独存在 | 带空心菱形的实心线 | 菱形指向整体 | 汽车-轮胎 |
关联 | 是一种拥有的关系,它使一个类知道另一个类的属性和方法 | 带普通箭头的实心线(双向可以没有箭头) | 指向被拥有者 | 老师-学生-课程 |
依赖 | 一种使用的关系,即一个类的实现需要另一个类的协助 | 带箭头的虚线 | 指向被使用者 | 人-电脑 |
顺序图
- 描述对象间基于时间的动态交互
- 顺序图有四部分:参与者(Actor)或对象(Object)、生命线(Lift Line) 、激活期 和 消息。
用例图
- 描述一组参与者、用例和他们的关系
- 关系:
- 包含(include):做某事前必须先做什么事,通常是抽象出的多个用例的公共部分
- 扩展(extend):有可能做也可能不做
- 泛化:抽象与具体的关系
- 参与者:人、组织、系统、时间、温度等
协作图(通信图)
- 交互图的一种,强调对象间的消息收发关系
状态图
- 对类图的补充,展现此类对象具有的可能状态,以及某些事件发生时其状态转移情况。
- 状态(节点上的内容)、事件(线上的内容)
活动图
- 一种特殊的状态图。
- 描述一个操作中要进行的各项活动的执行流程,也通常用来描述一个用例的处理流程或某种交互流程
- 活动图节点是动作,状态图节点是状态
定时图
- 交互过程中真实的时间信息、时间段
构件图、包图
部署图
- 包含软硬件的映射关系、通信协议等