UML
跳到导航
跳到搜索
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 用例分析技术分析软件需求,建立软件系统的分析模型。
架构设计
在系统的全局范围内,以分析模型为基础,设计系统的架构。
构件设计
根据架构设计的成果,将分析模型细化,设计系统构件的实现细节。
代码实现
将系统构件映射到目标语言上。