封装图教程 - UML Package Diagram

阅读更多

包图显示了中型到大型项目中模型元素的排列和组织,可用于显示子系统或模块之间的结构和依赖关系。

封装图教程 - UML Package Diagram_第1张图片

什么是UML中的包图?

大系统提供了特殊的挑战。为大型系统绘制一个类模型,它太大而无法理解。要理解的类之间有太多的链接。UML的一个有用的技术是处理这个问题。统一建模语言中的包有助于:

  1. 要分组元素
  2. 为分组元素提供命名空间
  3. 包可以包含其他包,从而提供包的分层组织。
  4. UML元素可以分组到包中。

下图显示了一个示例包图,用于表示业务的组成。

封装图教程 - UML Package Diagram_第2张图片

试试吧!

寻找在线包装图工具?只需单击右侧的绘图按钮即可在线创建包图。Visual Paradigm Online是免费*且直观的。在开始之前,您还可以通过此Package Diagram教程了解Package Diagram。

现在画画
 

包图符号

包图用于构建高级系统。包用于组织包含图表,文档和其他关键可交付成果的大型系统。换句话说,包也可以用作其他图的一部分。

嵌套和分层包

包可以表示为具有嵌套包的层次结构。嵌套包的原子模块通常是类图。

下图给出了包含多个嵌套包的包图的示例。

封装图教程 - UML Package Diagram_第3张图片

使用包图时几乎没有约束,它们如下。

  1. 软件包的名称在系统中应该是唯一的。但是,允许不同包中的类具有相同的名称。例如,允许Package :: Product&Shipping :: Product。
  2. 用户应避免使用编程语言提供的包名。例如,Java将Date作为包提供。因此,程序员应该构造名为Date的包。
  3. 包可以包括整个图表,单独的组件名称或根本没有组件。

包也可以具有完全限定的名称。下图显示了此类包的示例用法。

封装图教程 - UML Package Diagram_第4张图片

注意:

  1. UML,C ++,Perl,Ruby myPkg :: foo :: bar
  2. Java,C#myPkg.foo.bar

包装遏制

  1. 包显示在静态图中
  2. 显示遏制的两种等效方式: 
    封装图教程 - UML Package Diagram_第5张图片

依赖

依赖涉及两种子类型。它们是<< access >>和<< import >>。虽然有两种构造型,但用户可以使用自己的构造型来表示两个包之间的依赖关系类型。

<< import >> - 一个包导入其他包的功能

封装图教程 - UML Package Diagram_第6张图片

示例 - << import >>依赖项

封装图教程 - UML Package Diagram_第7张图片

<< access >> - 一个包需要其他包的功能帮助

封装图教程 - UML Package Diagram_第8张图片

何时绘制包装图?

UML不会将包图视为一种单独的技术。通过将其他模型元素组合在同一图表上的不同包中来组合它们通常很有用。包图可以在许多方面有用,例如:

  1. 创建大量模型元素的概述
  2. 组织一个大型模型
  3. 分组相关元素
  4. 分隔名称空间

将系统分解为包的标准

  1. 不同的所有者 - 谁负责处理哪些图表?
  2. 不同的应用程序 - 每个问题都有自己明显的分区;
  3. 具有强大凝聚力的课程集群 - 例如,课程,课程描述,讲师,学生,......
  4. 或者:使用架构模式来帮助找到合适的分解,例如MVC框架

其他包裹指南

  1. 在一个包中收集具有强大内聚力的模型元素
  2. 在不同的包装中保持低耦合的模型元素
  3. 最小化不同包中的模型元素之间的关系,尤其是关联
  4. 命名空间含义:导入到包中的元素不“知道”它在导入的包中的使用方式

如何创建包图?

以下示例显示了在线购物商店的跟踪订单服务。

Track Order Service负责为客户订购的产品提供跟踪信息。跟踪序列号中的客户类型,跟踪订单服务是指系统并将当前的运输状态更新为客户。

第1步 - 确定系统中存在的包

  1. 有一个“跟踪订单”服务,它必须与其他模块交谈以了解订单详情,让我们称之为“订单处理”
  2. 在获取订单详细信息后,它必须知道运输详细信息,我们称之为“运输”
  3. 最后,如果知道订单的状态,它必须将信息更新给用户,让我们将此模块称为“UI框架”

封装图教程 - UML Package Diagram_第9张图片

第2步 - 确定依赖关系

  1. “跟踪订单”包应该从“订单处理”获得订单详细信息,另一方面,“订单处理”还需要来自“跟踪订单”包的跟踪信息,因此,两个模块相互访问哪些足够<<访问>>双重依赖。 
    封装图教程 - UML Package Diagram_第10张图片
  2. 要了解送货信息,“送货”需要导入“跟踪订单”以完成送货过程。 
    封装图教程 - UML Package Diagram_第11张图片

步骤3 - 最后,跟踪订单对UI Framework的依赖关系也映射到完成Track Order子系统的Package Diagram的图表。 
封装图教程 - UML Package Diagram_第12张图片


封装图示例

包图示例 - MVC结构

封装图教程 - UML Package Diagram_第13张图片

包图示例 - 分层结构

封装图教程 - UML Package Diagram_第14张图片

# 免费包装图示例

可在包装图软件中编辑的免费包装图示例和模板:Visual Paradigm Online。使用模板作为起点来创建自己的包图。

分层应用程序封装图教程 - UML Package Diagram_第15张图片

MVC结构

封装图教程 - UML Package Diagram_第16张图片

股票交易系统

封装图教程 - UML Package Diagram_第17张图片

售票系统封装图教程 - UML Package Diagram_第18张图片

一般业务系统

封装图教程 - UML Package Diagram_第19张图片

你可能感兴趣的:(封装图教程 - UML Package Diagram)