包图,跟类的作用很相似,同是把相关或某方面具有共同特征的信息房子一起分隔开来;不同的是,包的范围更大容量更广。
包能容纳UML中的任何元素,例用例、业务实体、包(子包)等。Rose画图软件中的Use Case View(用例视图)、Logic View(逻辑视图)和Component View(组件视图)就是三个包。
包是一种容器,如同文件夹一样,它将某些信息分类,形成逻辑单元,使用包的目的是为了整合复杂的信息。
包这么亲和,那为了避免无意的滥用,造成混乱。对包的划分进行了一些约束,总结为一句话:高内聚、低耦合。
具体指导原则:
(1)分入同一包的各元素之间应是联系紧密的,甚至是不可分割的。
(2)包与包之间应该是互相不存在牵制关系的,即对一个包进行修改时,不会影响另一个包。
(3)包与包之间不存在传递依赖。这是在对(2)的放松的情况下的补充和另一道防线。即对修改A包影响B包,但影响后的B包不能同时影响另一个包C。
(4)单向性,尽量避免双向依赖和循环依赖。即A包影响B包,B包不能再回过头来影响A包。
在实际生活中,包的运用可以灵活多样。下面是包的一些灵活变换用法举例:
(1)领域包:用于对业务领域内的业务单元进行分类。
(2)子系统:用于分类系统内的逻辑对象并形成子系统,子系统包视图可用于展示系统的高层次逻辑结构关系。
(3)组织结构:用于分类业务领域中的组织结构,它可以直接用来表述企业的组织结构。
(4)层:用于分类软件中的层改, 层可以用于展示软件的架构信息。
在这儿说点儿肺话,实际上就这个领域包而言,在实际工作中可以不用包来表示,随便用一个正方形、长方形、三角形都可以,只要注明所表示的意思,并表示清楚就好。但既然学习过UML,那么就应遵从这样的规范。尽量地在实际生活实际中也统一来用,规范习惯,让我们所做的事在哪儿都能给阅读者带来方便。学习并运用UML,更运用UML的思想。