UML 包图简介
UML(统一建模语言) 包图是一种结构图,用于展示系统如何被划分为多个包,以及这些包之间的依赖关系。包用于对元素进行分组,包之间的依赖关系表明一个包中的更改可能如何影响另一个包。本指南将带你了解关键概念、技巧和窍门,并使用 Visual Paradigm 这一流行的 UML 工具.
关键概念
1. 包
一个包是一种对 UML 元素进行分组的机制。它用一个带有顶部小标签的文件夹图标表示,标签中包含包的名称。
2. 依赖
依赖是一种关系,表示一个包需要另一个包才能正确运行。它用一条从依赖包指向独立包的虚线箭头表示。
3. 导入
导入是一种特殊的依赖关系,允许一个包访问另一个包的内容。它用带有«import»构造型的虚线箭头表示。
4. 合并
合并是一种关系,表示一个包的内容与另一个包的内容合并。它用带有«merge»构造型的虚线箭头表示。
5. 泛化
泛化是一种关系,表示一个包是另一个包的特化版本。它用带空心三角形的实线箭头表示,箭头从特化包指向一般包。
技巧与窍门
- 组织你的包:使用包来逻辑地组织你的模型元素。将相关的类、用例和其他元素放在一起。
- 使用命名规范:为你的包遵循一致的命名规范,以便你的图表更容易理解。
- 避免循环依赖:确保你的包之间没有循环依赖,因为这会使你的系统更难维护。
- 记录你的图表: 在您的图表中添加注释和说明,以解释每个包及其关系的目的。
示例包图
下图所示的包图展示了大型系统中一个子系统(“订单”子系统)的结构和依赖关系。让我们来分解该图,并说明其中的关键概念:

1. 子系统
- 子系统: 整个图表代表一个名为“订单”的子系统。该子系统是更大系统的一部分,封装了与订单相关的功能。
2. 包
- 包: 该子系统被划分为多个包,每个包代表一种特定的功能或组件:
- UI: 用户界面包。
- 订单处理: 负责订单的处理。
- 价格计算器: 计算订单的价格。
- 外部存储: 管理外部存储需求。
- 随机存储: 一种特定类型的存储。
- 流式存储: 另一种特定类型的存储。
3. 依赖关系
- 依赖关系: 虚线箭头表示包之间的依赖关系:
- UI依赖于订单处理.
- 订单处理依赖于价格计算器和外部存储.
- 外部存储依赖于随机存储和流存储.
4. 泛化
- 泛化: 该图展示了泛化关系:
- 随机存储和流存储是以下的特化版本:外部存储.
5. 对外部包的依赖
- 对外部包的依赖: UI包依赖一个名为GUIManager.
6. 抽象包与具体包
- 抽象包: 存储管理是一个抽象包,定义了通用的存储管理功能。
- 具体包: 仓库和文件存储是以下包的具体实现存储管理包。
7. 导入
- 导入:订单子系统从以下包导入功能存储管理包,该包进一步由仓库和文件存储.
概念图示
子系统
- “订单”子系统封装了与订单相关的所有包和功能。它为该特定功能在更大系统中提供了清晰的边界。
包
- UI:包含所有与用户界面相关的组件。
- 订单处理:管理订单处理的逻辑。
- 价格计算器:处理订单价格的计算。
- 外部存储: 管理系统外部的存储需求。
- 随机存储和流存储: 存储解决方案的具体实现。
依赖
- 用户界面依赖于订单处理才能正确运行。
- 订单处理依赖于价格计算器用于计算价格,并依赖于外部存储来管理存储。
- 外部存储依赖于随机存储和流存储以实现特定的存储方案。
泛化
- 随机存储和流存储是外部存储的特化版本,继承其属性和行为。
对外包的依赖
- 该 UI 包依赖于外部 GUIManager 包,表明用户界面功能依赖于外部库或组件。
抽象包与具体包
- StorageMgmt 是一个定义通用存储管理功能的抽象包。
- Repository 和 FileStorage 是 StorageMgmt 包的具体实现,提供特定的存储解决方案。
导入
- 该 Ordering 子系统从 StorageMgmt 包导入功能,该包进一步由 Repository 和 FileStorage。这表明排序子系统依赖于这些包所提供的存储管理功能。
使用 Visual Paradigm 的逐步指南
步骤 1:创建一个新项目
- 打开 Visual Paradigm。
- 点击“文件”>“新建”>“项目”。
- 命名您的项目并点击“确定”。
步骤 2:创建包图
- 在项目浏览器中,右键单击您的项目,然后选择“新建图”>“包图”。
- 为您的图命名,然后单击“确定”。
步骤 3:添加包
- 在图工具栏中,单击“包”图标。
- 单击图以放置一个包。
- 通过双击包来为其命名。
步骤 4:添加依赖关系
- 在图工具栏中,单击“依赖”图标。
- 单击依赖包,然后将箭头拖动到独立包。
步骤 5:添加导入关系
- 在图工具栏中,单击“导入”图标。
- 单击导入包,然后将箭头拖动到被导入的包。
步骤 6:添加合并关系
- 在图工具栏中,单击“合并”图标。
- 单击合并包,然后将箭头拖动到被合并的包。
步骤 7:添加泛化关系
- 在图工具栏中,单击“泛化”图标。
- 单击特化包,然后将箭头拖动到一般包。
步骤 8:保存您的图
- 单击“文件”>“保存”以保存您的图。
参考列表
- Visual Paradigm 官方网站: Visual Paradigm
- UML 包图教程: UML 包图教程
- UML 规范: OMG UML 规范
结论
UML 包图对于组织和管理大型系统至关重要。通过遵循本指南,您可以使用Visual Paradigm。请记住要逻辑地组织您的包,使用命名约定,避免循环依赖,并为您的图表添加文档,以便更好地理解和维护。
包图参考











