包可直接理解为命名空间、文件夹,是用来组织图形的封装。包图把语义上相近的、可能一起变更的模型元素组织在一起,它并非正式的UML图。一个包图可以由任何一种UML图组成,通常是用例图或类图。
在面向对象软件开发的视角中,类显然是构建整个系统的基本构造块。但是对于庞大的应用系统而言,其包含的类将是成百上千,再加上其间“阡陌交纵”的关联关系、多重性等,必然是大大超出了人们可以处理的复杂度。这也就是引入了“包”这种分组事物构造块。
?命名:
可以用一个字符串或路径名表示,包名可以放在大矩形框中,也可以放在左上角的小矩形框中。
?可见性:
用“+”来表示“public”,对所有包是可视的。
用“#”来表示“protected”,只对该包的子包可视。
用“-”来表示“private”,对外包是不可视的。
?包之间的关系:
1.依赖:一个元素定义的改变会引起另一个元素发生相应的改变。
2.泛化:表达事物的一般和特殊关系,其中的特殊性包遵循一般性包的接口。
3.关联
包括类、接口、构件、节点、协作、用例,甚至是其它包或图。
(所有的UML模型元素都可以放入包内。若包被撤销,则其中的元素也被撤消了。)
1)对语义上相关的元素进行分组,具有高内聚、低耦合的特点。
2)逻辑上把一个复杂的图模块化,一种组织源码的方式。
3)提供配置管理单元,在设计时,提供并行工作的单元。
4)用来表述功能组命名空间的组织层次,反应系统的高层架构。
5)提供封装的命名空间,其中所有名称必须惟一。
原文:http://blog.csdn.net/cyl_happygirl/article/details/19283495