8.3.8 包图
更新于 2026年10月10日
版权声明
8.3.8 包图
包图用于描述系统的分层结构,由包或类组成,表示包与包之间的关系。
包是一种组合机制。把各种各样的模型元素通过内在的语义关系连在一起,形成一个高内聚、低耦合的整体就叫作包。包通常用于对模型的组织管理,因此有时又把包称为子系统。
(1)包的内容。构成包的模型元素称为包的内容,包的内容可以是一个类图也可以是另一个包图。包与包之间不能共用一个相同的模型元素。“系统内部”包由“保险单”包和“客户”包组成,我们把“保险单”包和“客户”包称为“系统内部”包的内容。包的图示符号类似于图示卡片的形状,由两个长方形组成,小长方形位于大长方形的左上角。
当不需要显示包的内容时,包的名字放入主方框内(例如,“保险单”“Oracle界面”等)。
否则,包的名字放入左上角的小方框内(例如“系统内部”),而把包的内容放入主方框内。(https://www.daowen.com)
(2)包的依赖和继承。包与包之间允许建立依赖、泛化和细化等关系。例如,在图8.66中“保险单填写界面”包依赖于“保险单”包,整个“系统内部”包依赖于“数据库界面”包。

图8.66 包图
可以使用继承关系中“一般”和“特殊”的概念来说明通用包和专用包之间的关系。例如,“Oracle界面”包和“Sybase界面”包继承“数据库界面”包。通过“数据库界面”包,“系统内部”包既可以使用Oracle的界面也可以使用Sybase的界面。这是因为和类的继承关系相似,专用包必须与通用包的界面一致。通用包可标记为{abstract},表示该包只是定义了一个界面,具体实现由专用包完成。