第5章 建立辅助模型——包图
一、包图:描绘如何对模型元素分组以及分组之间依赖的图。其中要用到的包(package)是对模型元素进行分组的机制。
二、包:是一种模型元素,故一个包也可以包含其他包。
1、包拥有被声明在其中的元素:一个模型元素只能被一个包所拥有包本身是有名字的。
2、包的层次性:包之间形成一个层次结构,而且这个层次结构是一棵树。在实际使用中,最好要避免过深地嵌套包,一般几层即可。
3、包的命名:
①一个包形成了一个命名空间:在一个包的语境中同一种元素的名字必须唯一;在一个包中不同种类的元素可以有相同名字。
②一个包位于另一个包中,外层的包可作为里层包的前缀。
③不使用包来组织模型元素。
4、包中元素的可见性:通过在元素名字前加上一个可见性符号来指示。
5、包间的关系:
①拥有关系。
②引入依赖:
两个包之间的一种许可依赖关系,一个包中的可见性为公共的模型元素,可以在指定的包中被引用,相当于把提供者包的内容附加到客户包的公共命名空间中,而不必对名称进行限制。
③访问依赖:
两个包之间的一种许可依赖关系,一个包中的可见性为公共的模型元素,可以在指定的包中被引用,相当于把提供者包的内容附加到客户包的私有命名空间中,而不必对名称进行限制。
三、如何划分与组织包:设计良好的包,要把在语义上接近并倾向于一起变化的元素组织在一起。基本策略:
1、识别低层包;
2、合并或组织包:建议每个包有7+-2个内层成分;
3、组织包的层次;
4、标识包中的模型元素的可见性;
5、建立包间的关系。