UML—包图

说到包图,我们先来了解一下包


1.什么是包?


包可直接理解为命名空间,文件夹,是用来组织图形的封装


2.包的作用?


  • 逻辑上把一个复杂的图模块化
  • 组织源代码


3.什么时候会用到包?


在面向对象软件开发的视角中,类显然是构建整个系统的基本构造块。但是对于庞大的应用系统而言,其包含的类将是成百上千,再加上其间存在着的关联关系、多重性等,必然是大大超出了人们可以处理的复杂度。这也就是引入了“包”这种分组事物构造块。


4.包的命名


每个包都必须有一个与其它包相区别的名称


5.包的符号






6.包中的元素


在包中可以拥有各种其它元素,包括类、接口、构件、节点、协作、用例,甚至是其它包或图


注意:若包被撤销,则其中的元素也会随之被撤销了


7.包的可见性


  • 用“+”来表示“public”,对所有包是可视的
  • 用“#”来表示“protected”,只能对该包的子包是可视的
  • 用“-”来表示“private”,对外包是不可视的
8.包图绘制原则

  • 最小化包之间的依赖,最小化每个包中的public、protected元素的个数,最大化每个包中private元素个数
  • 在建模时应该避免包之间的循环依赖,也就是不能够包含相互依赖的情况,对于这种情况应进行分析:
  • 测试时应以包为测试单位
  • 尽量把概念和含以上相近的元素包含在一个包中


9.包与包之间的关系

  • 依赖:是指一个元素的定义的改变会引起另一个元素发生相应的改变,包的依赖联系同样用一条虚线表示,虚线箭头从依赖包指向被依赖包
注意:标有{global}的包叫通用包,表示系统的所有其他包都依赖于该包


  • 泛化:表达事物的一般和特殊的关系。如果两个包之间有泛化联系,意指其中的特殊性包必须遵循一般性包的接口。{abstract}表明它定义了一个接口




10.UML包图使用说明


  • 对成组元素建模
  1. 每个包都应该是在概念、语义上相互接近的元素组成;
  2. 对每个包找出应标记为公共的元素,但应尽可能地少;
  3. 一般使用默认的《use》构造型,在映射到编程时考虑明确《import》构造型;
  4. 考虑采用泛化来对特殊包进行建模。
  5. 在表示这种模型时,注意只标明对每个包都起核心作用的元素;另外也可以标识每个包的文档标记值,以使其更加清晰


  • 对体系结构建模


对体系结构进行建模(程序分层),是UML包图更有意义的一个用途。体系结构是一个软件系统的核心逻辑结构


常用的体系结构模式包括分层、MVC、管道、黑板、微内核等,而在应用软件中,分层和MVC



包图是保持系统构架简明清晰的工具。可以这么说,如果不能将整个系统的类图压缩到一张A4纸上,就应该使用包图

你可能感兴趣的:(UML—包图)