前言:
在画图工具中有一个长的像文件夹的东西,它叫做包,由包含各种元素的包组合起来的图就叫做包图。为什么叫它小九九呢?因为包图并不是正式的UML图,但却可以由任何一种的UML图组成,通常是UML用例图或UML类图。既然有用例图和类图等图,为什么还要再来个小九九呢?这就要看包图的作用了——它不仅仅是长的像文件夹,在功能上起到了文件夹的功能。
包的概念:
包图是在 UML 中用类似于文件夹的符号表示的模型元素的组合。系统中的每个元素都只能为一个包所有,一个包可嵌套在另一个包中。使用包图可以将相关元素归入一个系统。一个包中可包含附属包、图表或单个元素。它是一个UML结构,它通过把我们的图模块化,简化我们的图,达到使图看的更一目了然的目的。就像我们的厨房中的摆设,我们将各种刀放在刀架上,形成“刀包”,把锅放在一个橱柜中,形成“锅包”,把锅铲,勺子,碗筷放在一个方便找到的橱柜中,形成“吃饭工具包”,这样在我们用到这些工具的时候可以很简单的直接到各个标记好的包中找,简化了查找过程也使厨房更整洁了。
包的关系:
但我们不能为了简单明了,只建立一个包,你给它起名叫“大包”,那就失去了包的意义了。包多了,就设计到包与包之间的关系了。
在打包的过程中,我们要特别注意包与包之间的耦合程度要低。还用上面的例子,如果我们把“吃饭工具包”和“刀包”统称为“工具包”,本来想找双筷子,很可能就被“工具包”里面的刀划伤了。以下是其他建立包图的注意事项。
注意事项:
1、一定要避免循环依赖产生;
2、测试时可以以包为测试单位;
3、应该尽量把概念和语义相接近的元素包含在同一个包中;
4、对于一个包,找出哪些包内的元素是可以在包外访问的(Access),把这些元素标记为公共的,其他所有元素都标记为受保护的或者私有的。
关于包的可见性(控制了包外元素访问包内元素的权限)
我的包图:
比较简陋,但真的是很努力画啦,大家见谅。
总结:
这是我初次接触UML图这不到一个月对包图的理解,解析尚浅,请大家批评指教。
另外向大家推荐几个具体的关于包图的链接: