本文和大家重点讨论一下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章)的实践:使用正确的工件。
图28 一个组织类的UML包图
◆把继承包放在基包的下面
图28中描绘了包之间的继承,可以看到,继承的包放在基包的下方。这一点和其他继承准则是一致的。
◆在垂直方向上分层组织类的UML包图
包之间的依赖表示这些依赖的包在内容上相互依赖,或者一个包需要了解其他包的结构方面的知识。如图28所示,图中的包反映了系统架构的逻辑分层。用户界面类和领域类交互;领域类又会用到基础结构类;部分基础结构类会访问数据库。通常,都采取自上而下的方式对这种情况进行分层组织。
【编辑推荐】