UML

来自牛奶河Wiki
跳到导航 跳到搜索

UML(Unified Modeling Language, 统一建模语言)是软件工程领域中一种通用的、可视化的建模语言 ISO 标准。

UML 主要存在 UML 1.x 和 UML 2 两个大的版本系列,UML 2 于 2005 年正式发布。

从 UML 2 开始,UML 标准被划分为两个相对独立的部分:基础结构和上层结构;新增了包图、组合结构图、外廓图、交互概览图、时间图这 5 种图形(1.x 九种)

语义结构

结构建模(Structural Modeling)、行为建模(Behavioral Modeling)、补充建模(Supplemental Modeling)。

动作(Actions)是 UML 中的基本行为单元,用于定义细粒度的行为;在此基础上形成高层次的行为机制,包括状态机(StateMachines)、活动(Activities)和交互(Interactions)等。

既有结构化又有行为的辅助建模结构,包括用例(Use Cases)、部署(Deployments)和信息流(Information Flows)。

关系

类型 Type Describe Sign
泛化 generalization 一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。 带有空心三角箭头的实线指向基类
实现 realization 一个类(class)实现接口(interface,可以是多个)的功能 带有空心三角箭头的虚线指向接口
依赖 dependency 类与类之间的连接(use a) 。表示一个类依赖于另一个类,如:对静态方法的调用。 带有箭头的虚线指向被依赖的类
关联 association 关系表示类与类之间的联接(has a), 它使一个类知道另一个类的属性和方法。关联有两个端点, 在每个端点可以有一个基数, 表示这个关联的类可以有几个实例。 单箭头表示单向关联, 使用双箭头或不使用箭头表示双向关联
聚合 aggregation 整体和个体之间的关系,即 has-a 的关系。关联关系的一种特例,是强的关联关系。Java 语法上不分关联和聚合。 空心棱形+带有单箭头的实线指向被聚合的类
组合 composition 一种 contains-a 的关系,这种关系比聚合更强,也称为强聚合。与聚合的区别就是“部分”不能脱离“整体”单独存在。 实心棱形+带有单箭头的实线指向被聚合的类

分类

静态结构图

类、包(U2)、对象、结合结构(U2)、构件、部署、外廓(U2)

类型 Type 说明
Class Diagram 系统的类/接口的协作和关系。是软件的蓝图,用于详细描述系统内各个对象的相关类,以及这些类之间的静态关系
包(U2) Package Diagram 包和包之间的关系。用于展现由模型本身分解而成的组织单元(包)及它们的依赖关系
对象 对象和对象之间的关系
结合结构(U2) 系统某一部分的内部结构
构件 构件展示及构件相互依赖关系
部署 构件在各节点部署的展示
外廓(U2) 现有图的扩展

动态结构图

用例、活动、状态、顺序(时序)、通信(协作)、时间(U2)、交互概览(U2)

类型 说明
用例 对象和对象目标之间的关系
活动 事物执行的控制流和数据流
状态 对象自身经历的状态转移
顺序(时序) 强调消息执行顺序
通信(协作) 强调对象之间的协作
时间(U2) 强调真实时间信息
交互概览(U2) 对象之间的信息交互

业务分析设计过程

业务建模

采用软件建模方法分析和理解待开发的业务,描述业务流程;其目标是认识业务本质,该业务本质是后续用例建模的基础。

用例建模

采用 UML 用例建模技术描述软件需求,该需求模型将为后续用例分析提供输入。

用例分析

采用 UML 用例分析技术分析软件需求,建立软件系统的分析模型。

架构设计

在系统的全局范围内,以分析模型为基础,设计系统的架构。

构件设计

根据架构设计的成果,将分析模型细化,设计系统构件的实现细节。

代码实现

将系统构件映射到目标语言上。