· 概述
任何大的系统都必须被分成几个小的单元,使得人们可以一次只处理有限的信息,并且分别处理这些信息的工作组之间不会互相干扰。模型管理由包及包之间的依赖关系组成。
· 包
包是模型的一部分,模型的每一部分必须属于某个包。建模者可以将模型的内容分配到包中。但是为了使其能够工作,分配必须遵循一些合理的原则,如公用规则、紧密耦合的实现和公用观点等。 UML 对如何组包并不强制使用什么规则,但是良好的解组会很大地增强模型的可维护性。
包包含顶层的模型元素,即任何不被其他元素所包含的元素,如类和它们之间的关系、状态机、用例图、交互和协作。有些元素如属性、操作、状态、生命线和消息被其他元素包含,而不在包中直接出现。每个顶层元素都有一个包,它在这个包中被声明,该包被称作元素的“家”包。可能被别的包引用,但是其所有权属于家包。在一个好的配置控制系统中,建模者必须能够对家包进行访问以修改元素的内容,这为处理大的模型提供了访问控制机制。包也是任何版本出版机制的单元。
一个包可以包含其他的包,根包可间接地包含系统的整个模型。组织中的包有几种可能的方式,可以用视图、功能或建模者选择的其他基本原则来规划包。包是 UML 模型中一般的层次组织单元。它们可以被用来进行存储、访问控制、配置管理和构造可重用模型部件库。
如果包的规划比较合理,那么它们能够反映系统的高层构架—有关系统由子系统和它们之间的依赖关系组合而成。包之间的依赖关系概述了包的内容之间的依赖关系。