第六章 包图
目录:
6.1 包图的概念
包是一种常规用途的组合机制。UML中的一个包直接对应于Java中的一个包。在Java中,一个包可能含有其他包、类或者同时含有这两者。进行建模时,通常使用逻辑性的包,用于对模型进行组织;使用物理性的包,用于转换成系统中的Java包。
6.1.1 包图
包图是描述包及其关系的图。与所有UML的其它图一样,包图可以包括注释、约束。包间的关系有依赖关系和泛化关系。下图是一个典型的包图。
6.1.2 包的作用
在面向对象软件开发的过程中,类显然是构建整个系统的基本元素。但是对于大型的软件系统而言,其包含的类将是成百上千,再加上类间的关联关系、多重性等,必然是大大超出了人们对系统的理解和处理能力。为了便于管理这些类,我们引入了“包”这种分组元素。
包的作用是:
1.对语义上相关的元素进行分组。如,把功能相关的用例放在一个包中。
2.提供配置管理单元。如,以包为单位,对软件进行安装和配置。
3.在设计时,提供并行工作的单元。如,在设计阶段,多个设计小组,可以同时对几个相互独立包中的类进行详细设计。
4.提供封装的命名空间,同一个包中,其元素的名称必须惟一。
6.1.3 包中的元素
在包中可以拥有各种其它元素,包括类、接口、构件、节点、协作、用例,甚至是其它子包或图 。一个元素只能属于一个包。
6.2 包的表示
UML中,用文件夹符号来表示一个包。包由一个矩形表示,它包含2栏。下面是最常见的几种包的表示法
6.2.1 包的名称
每个包必须有一个与其他包相区别的名称。标识包名称的格式有两种:简单名和全名。
其中,简单名仅包含包一个简单的名称;全名是用该包的外围包的名字作为前缀,加上包本身的名字。
例如,Rose常用表示方法中,其包名UI就是一个简单名。而包System.Web.UI才是一个完整带路径的名称,表示UI这个包是位于System.Web命名空间中的。如图所示