封装图教程 - UML Package Diagram - Warren2Lynch
包图显示了中型到大型项目中模型元素的排列和组织,可用于显示子系统或模块之间的结构和依赖关系。
什么是UML中的包图?
大系统提供了特殊的挑战。为大型系统绘制一个类模型,它太大而无法理解。要理解的类之间有太多的链接。UML的一个有用的技术是处理这个问题。统一建模语言中的包有助于:
- 要分组元素
- 为分组元素提供命名空间
- 包可以包含其他包,从而提供包的分层组织。
- UML元素可以分组到包中。
下图显示了一个示例包图,用于表示业务的组成。
试试吧!
寻找在线包装图工具?只需单击右侧的绘图按钮即可在线创建包图。Visual Paradigm Online是免费*且直观的。在开始之前,您还可以通过此Package Diagram教程了解Package Diagram。
包图符号
包图用于构建高级系统。包用于组织包含图表,文档和其他关键可交付成果的大型系统。换句话说,包也可以用作其他图的一部分。
嵌套和分层包
包可以表示为具有嵌套包的层次结构。嵌套包的原子模块通常是类图。
下图给出了包含多个嵌套包的包图的示例。
使用包图时几乎没有约束,它们如下。
- 软件包的名称在系统中应该是唯一的。但是,允许不同包中的类具有相同的名称。例如,允许Package :: Product&Shipping :: Product。
- 用户应避免使用编程语言提供的包名。例如,Java将Date作为包提供。因此,程序员应该构造名为Date的包。
- 包可以包括整个图表,单独的组件名称或根本没有组件。
包也可以具有完全限定的名称。下图显示了此类包的示例用法。
注意:
- UML,C ++,Perl,Ruby myPkg :: foo :: bar
- Java,C#myPkg.foo.bar
包装遏制
- 包显示在静态图中
-
显示遏制的两种等效方式:
依赖
依赖涉及两种子类型。它们是<< access >>和<< import >>。虽然有两种构造型,但用户可以使用自己的构造型来表示两个包之间的依赖关系类型。
<< import >> – 一个包导入其他包的功能
示例 – << import >>依赖项
<< access >> – 一个包需要其他包的功能帮助
何时绘制包装图?
UML不会将包图视为一种单独的技术。通过将其他模型元素组合在同一图表上的不同包中来组合它们通常很有用。包图可以在许多方面有用,例如:
- 创建大量模型元素的概述
- 组织一个大型模型
- 分组相关元素
- 分隔名称空间
将系统分解为包的标准
- 不同的所有者 – 谁负责处理哪些图表?
- 不同的应用程序 – 每个问题都有自己明显的分区;
- 具有强大凝聚力的课程集群 – 例如,课程,课程描述,讲师,学生,……
- 或者:使用架构模式来帮助找到合适的分解,例如MVC框架
其他包裹指南
- 在一个包中收集具有强大内聚力的模型元素
- 在不同的包装中保持低耦合的模型元素
- 最小化不同包中的模型元素之间的关系,尤其是关联
- 命名空间含义:导入到包中的元素不“知道”它在导入的包中的使用方式
如何创建包图?
以下示例显示了在线购物商店的跟踪订单服务。
Track Order Service负责为客户订购的产品提供跟踪信息。跟踪序列号中的客户类型,跟踪订单服务是指系统并将当前的运输状态更新为客户。
第1步 – 确定系统中存在的包
- 有一个“跟踪订单”服务,它必须与其他模块交谈以了解订单详情,让我们称之为“订单处理”。
- 在获取订单详细信息后,它必须知道运输详细信息,我们称之为“运输”。
- 最后,如果知道订单的状态,它必须将信息更新给用户,让我们将此模块称为“UI框架”。
第2步 – 确定依赖关系
- “跟踪订单”包应该从“订单处理”获得订单详细信息,另一方面,“订单处理”还需要来自“跟踪订单”包的跟踪信息,因此,两个模块相互访问哪些足够<<访问>>双重依赖。
-
要了解送货信息,“送货”需要导入“跟踪订单”以完成送货过程。
步骤3 – 最后,跟踪订单对UI Framework的依赖关系也映射到完成Track Order子系统的Package Diagram的图表。
封装图示例
包图示例 – MVC结构
包图示例 – 分层结构
想绘制封装图?
您已经了解了封装图是什么以及如何逐步绘制封装图。现在是时候通过绘制自己的包装图来弄脏手了。使用Visual Paradigm Online 免费绘制UML图表*。它易于使用,直观。
Unified Modeling Language (UML) Useful Resources
-
What is UML?
- Why UML Modeling?
- Overview of the 14 UML Diagram Types
- What is Class Diagram?
- What is Component Diagram?
- What is Deployment Diagram?
- What is Object Diagram?
- What is Package Diagram?
- What is Composite Structure Diagram?
- What is Profile Diagram?
- What is Use Case Diagram?
- What is Activity Diagram?
- What is State Machine Diagram?
- What is Sequence Diagram?
- What is Communication Diagram?
- What is Interaction Overview Diagram?
- What is Timing Diagram
- What is UML Collaboration Diagram?
- UML Association vs Aggregation vs Composition
- UML Class Diagram Tutorial
- State Machine Diagram vs Activity Diagram