UML 包图的全面指南

UML 包图简介

UML(统一建模语言) 包图是一种结构图,用于展示系统如何被划分为多个包,以及这些包之间的依赖关系。包用于对元素进行分组,包之间的依赖关系表明一个包中的更改可能如何影响另一个包。本指南将带你了解关键概念、技巧和窍门,并使用 Visual Paradigm 这一流行的 UML 工具.

关键概念

1. 包

一个是一种对 UML 元素进行分组的机制。它用一个带有顶部小标签的文件夹图标表示,标签中包含包的名称。

2. 依赖

依赖是一种关系,表示一个包需要另一个包才能正确运行。它用一条从依赖包指向独立包的虚线箭头表示。

3. 导入

导入是一种特殊的依赖关系,允许一个包访问另一个包的内容。它用带有«import»构造型的虚线箭头表示。

4. 合并

合并是一种关系,表示一个包的内容与另一个包的内容合并。它用带有«merge»构造型的虚线箭头表示。

5. 泛化

泛化是一种关系,表示一个包是另一个包的特化版本。它用带空心三角形的实线箭头表示,箭头从特化包指向一般包。

技巧与窍门

  1. 组织你的包:使用包来逻辑地组织你的模型元素。将相关的类、用例和其他元素放在一起。
  2. 使用命名规范:为你的包遵循一致的命名规范,以便你的图表更容易理解。
  3. 避免循环依赖:确保你的包之间没有循环依赖,因为这会使你的系统更难维护。
  4. 记录你的图表: 在您的图表中添加注释和说明,以解释每个包及其关系的目的。

示例包图

下图所示的包图展示了大型系统中一个子系统(“订单”子系统)的结构和依赖关系。让我们来分解该图,并说明其中的关键概念:

Package Diagram Order Subsystem

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:创建一个新项目

  1. 打开 Visual Paradigm。
  2. 点击“文件”>“新建”>“项目”。
  3. 命名您的项目并点击“确定”。

步骤 2:创建包图

  1. 在项目浏览器中,右键单击您的项目,然后选择“新建图”>“包图”。
  2. 为您的图命名,然后单击“确定”。

步骤 3:添加包

  1. 在图工具栏中,单击“包”图标。
  2. 单击图以放置一个包。
  3. 通过双击包来为其命名。

步骤 4:添加依赖关系

  1. 在图工具栏中,单击“依赖”图标。
  2. 单击依赖包,然后将箭头拖动到独立包。

步骤 5:添加导入关系

  1. 在图工具栏中,单击“导入”图标。
  2. 单击导入包,然后将箭头拖动到被导入的包。

步骤 6:添加合并关系

  1. 在图工具栏中,单击“合并”图标。
  2. 单击合并包,然后将箭头拖动到被合并的包。

步骤 7:添加泛化关系

  1. 在图工具栏中,单击“泛化”图标。
  2. 单击特化包,然后将箭头拖动到一般包。

步骤 8:保存您的图

  1. 单击“文件”>“保存”以保存您的图。

参考列表

  1. Visual Paradigm 官方网站Visual Paradigm
  2. UML 包图教程UML 包图教程
  3. UML 规范OMG UML 规范

结论

UML 包图对于组织和管理大型系统至关重要。通过遵循本指南,您可以使用Visual Paradigm。请记住要逻辑地组织您的包,使用命名约定,避免循环依赖,并为您的图表添加文档,以便更好地理解和维护。

包图参考

 

Leave a Reply