Python设计模式 - UML - 包图(Package Diagram)

时间:2018-09-09 23:11:56   收藏:0   阅读:1266

 

 

简介

包图是对各个包及包之间关系的描述,展现系统中模块与模块之间的依赖关系。一个包图可以由任何一种UML图组成,可容纳的元素有类、接口、组件、用例和其他包等。包是UML中非常常用的元素,主要作用是分类、容纳其他元素。包与包之间的关系有泛化、细化和依赖,主要取决于包内部成员之间的关系。

 

包图建模步骤

    - 分析系统的模型元素,运用分层设计把概念、语义和逻辑上相近的元素包含在同一个包中

    - 对于每个包,分析包内每个元素的可访问属性,并标识出该元素的可见性

    - 确定包与包中元素之间的泛化、细化、依赖关系,相应处理重载、多重性及导入等关系

    - 分析包结构,对包进行refine, merge等操作

 

包图中的元素

包图中可以容纳很多元素,如类、接口、组件、注释等,这些元素在相应的UML图中都有涉及,这里主要介绍包元素。

 

        放在第一栏

 技术分享图片

放在第二栏

技术分享图片    技术分享图片

 

 

    - 简单包名

技术分享图片

    - 带路径包名

 

技术分享图片

 

      ‘+‘: public:对所有包可见

      ‘-‘: private:对本包之外不可见

      ‘#‘: protected:对本包的子包可见

 

      - 关系传递:如果包A和包B之间存在关系,包B和包C之间存在关系,那么包A和包C之间也存在关系          

      - 可见性传递:根据包与包之间依赖关系的不同传递可见性

            - <<import>>因为添加为公有元素的原因所以可见性可以传递

            - <<access>>的可见性由于添加为私有元素的原因可见性不可传递

 

      - <<system>>: 表示该包代表一个系统

      - <<subsystem>>: 表示该包代表一个子系统

      - <<facade>>: 表示该包是由其他包构成的一个视图

      - <<stub>>: 表示该包是一个代理包,该代理包为其他包提供公共服务

      - <<framework>>:表示该包代表一个框架

 

 

包图类的关系

 

 技术分享图片

 

 

技术分享图片

 

 

     

      <<use>>:一种默认的包依赖关系,表示客户包中的元素以某种方式使用着提供者包中的公共元素

技术分享图片

 

      <<import>>:最普遍的包依赖关系,表示提供者包中的公共元素被添加为客户包中的公共元素

技术分享图片

 

      <<access>>:表示提供者包中的公共元素被添加为客户包中的私有元素

 

技术分享图片

 

      <<merge>>:表示提供者包中的元素被扩展为客户包中的元素

 

技术分享图片

 

      <<trace>>:表示一个包的历史版本发展为另一个包的进化版本

 

技术分享图片

 

 

包图的高级特性

 

   技术分享图片

 

 

技术分享图片

 

 

包图示例

以书店在线订购系统为例

 技术分享图片

 

 

包图的注意事项

    - 若包被撤销,则其中的元素也会被撤销掉

    - 合理最小化包之间的依赖

    - 合理最小化每个包中public, protected元素的个数及最大化private元素个数

    - 避免包之间的循环依赖

    - 根据类之间的依赖关系对包进行分层、分组、合并、细化

    - 包之间关系遵循高内聚、低耦合的特性

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!