该篇文章是UML知识的扩充。
什么是包图
源文连接:https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-package-diagram/
包图是一种结构图,显示了中大型项目中模型元素的排列和组合。包图可以显示子系统或模块之间的结构和依赖关系,显示系统的不同视图。例如,多层应用程序模型。
一、包图的用途
包图用于构建高级系统元素。包用于组织包含图表,文档和其他关键可交付成果的大型系统。
- 包图可用于简化复杂的类图,它可以将类分组到包中。
- 包是逻辑上相关的
UML
元素的集合。 - 包被描述为文件夹,可以在任何
UML
关系图上使用。
二、包图概览
包图用于简化复杂的类图,可以将类分组到包中。包是逻辑上相关的UML
元素的集合。
下面是一个业务模型,其中类被分组到包中:
- 包显示为矩形,顶部有小选项卡。
- 包名称位于选项卡上或矩形内。
- 虚线箭头是依赖项。
- 如果另一个包中的更改可能会强制更改一个包,则一个包依赖于另一个包。
三、包图的基本概念
包图遵循嵌套包的层次结构。嵌套包的原子模块通常是类图。使用包图时几乎没有约束,如下图所示。
- 对于系统,包名不应相同,但不同包中的类可以具有相同的名称。
- 包可以包含整个关系图、单独的组件名称或根本不包含组件。
- 包的完全限定名具有以下语法。
Name owing the package::Name of the package
java::util::Date
包可以用符号标识,下面展示了一些示例:
四、包图的依赖关系表示法
依赖关系中涉及两个子类型。它们是<<import>>
和<<access>>
。尽管有两种构造型,但用户可以使用自己的构造型来表示两个包之间的依赖关系类型。
4.1 包图示例-导入
<<import>>
一个包导入其他包的功能。
4.2 包图示例-访问
<<access>>
一个包需要其他包的功能的帮助。
五、建模复杂分组
包图通常用于描述包与其他包或对象之间的层次结构关系(分组)。包表示命名空间。
包图示例:分层结构
六、包图示例
6.1 订单子系统
6.2 订单处理系统
订单处理系统-问题描述:
我们将为在线购物商店的“跟踪订单”方案设计包图。跟踪订单模块复杂为客户订购的产品提供跟踪信息。客户在搜索中填入订单序列号,跟踪订单模块调用系统并向客户更新当前发货状态。
识别系统的包
- 有一个跟踪订单模块,他必须与其他模块交流才能了解订单详细信息,姑且称之为“订单详细信息”。
- 接下来,在获取订单详细信息后,它必须了解运输详细信息,让我们将其称为“运输”。
确定系统中的依赖关系
- 跟踪订单应从“订单详细信息”中获取订单详细信息,并且“订单详细信息”必须知道客户提供的跟踪信息。两个模块相互访问,这是
<<access>>
双重依赖关系。
- 要了解运输信息,“运输”可以导入“跟踪订单”以使导航更容易。
- 最后,还映射了跟踪订单与UI框架的依赖关系,这完成了订单处理子系统的包图。
-------- The End
Thanks For Reading --------
相关文章