解析UML包图的目的和准则

本文和大家重点讨论一下UML包图的概念,包的符号是文件夹的样子,可以应用于任何UML图中。任何图中如果只包含包(以及包之间的依赖),都可以看作是UML包图。

UML包图

UML包图中描绘两个或更多的包以及这些包之间的依赖关系。包是UML中的一种结构,用来将各种建模元素(如用例或者类)分组组织起来。包的符号是文件夹的样子,可以应用于任何UML图中。任何图中如果只包含包(以及包之间的依赖),都可以看作是UML包图。UML包图实际上是UML2中的一个新概念,在UML1中一直是非正式的部分,过去被称为UML包图的东西实际上通常是仅仅包含包的UML类图或UML用例图。创建UML包图的目的在于:

◆给出需求的高层概览视图。

◆给出设计的高层概览视图。

◆将一个复杂图形从逻辑上模块化组织。

◆组织源代码。

◆对框架建模(Evitts2000)。

类的UML包图准则

◆使用类的UML包图从逻辑上对设计进行组织

图28给出了一个组织相关类的集合的UMLUML包图。本章后面内容中还会给出的各种准则,现在可以使用以下启发性准则来将类组织为包。

一个框架内的类属于一个包。

一般位于同一继承层次上的类也属于同一个包。

通过聚合或者组合关系相关联的类往往属于同一个包。

相互之间协作很多的类通常属于同一个包。

◆使用UML组件图从物理上对设计进行组织

如果你希望使用基于组件的方法来进行设计,就像EJB和VisualBasic所倡导的开发方法那样,那么最好使用UML组件图来组织你的设计,而不是使用UMLUML包图。第11章中给出了一个对应图28的UML组件图版本,它更适用于对物理设计的组织。

始终牢记敏捷建模(见第17章)的实践:使用正确的工件。

解析UML包图的目的和准则

图28 一个组织类的UML包图

◆把继承包放在基包的下面

图28中描绘了包之间的继承,可以看到,继承的包放在基包的下方。这一点和其他继承准则是一致的。

相关推荐