一、概述

  • 维护和控制系统总体结构的重要建模工具
  • 方便理解和处理整个模型
  • 设计良好的包是高内聚、低耦合的,并对其内容的访问具有严密的控制

包的内容:拥有或引用的模型元素。
包的实例没有任何语义。 仅在建模时有意义,而不必转换到可执行的系统中。

二、详细介绍

2.1 名称

每个包必须有一个与其他包相区别的名称,包的名字是一个字符串:

  • 简单名:仅含一个简单的名称。
  • 路径名::以包所位于的外围包的名字作为前缀的包名。

包的表示:

  1. 当不需要显示包的内容时,将包的名字放入主方框内;
  2. 需要显示内容时包的名字放入左上角的小方框中,将内容放入主方框内。
  3. 标以 {global} 的包叫通用包,表示系统的所有其他包都依赖于该包。

2.2 拥有的元素

包拥有的元素:类、接口、组件、节点、协作、用例、图以及其他包。

  1. 一个模型元素不能被一个以上的包所拥有。
  2. 如果包被撤销,其中的元素也要被撤销。
  3. 一个包形成了一个命名空间。
  4. 一个包的各个同类建模元素不能具有相同的名字;
  5. 不同包的各个建模元素能具有相同的名字,因为它们代表不同的建模元素;
  6. 同一个包内,不同种类的模型元素能够具有相同的名字。

2.3 可见性

包的可见性用来控制包外界的元素对包内元素的可访问权限。

  1. 公有访问(public):包内的模型元素可以被任何引入了此包的其他包的内含元素访问。
  2. 保护访问(protected):表示此元素能被该包的子包内所含元素访问。
  3. 私有访问(private):表示此元素只能被属于同一包的内含元素访问。

2.4 引入与输出

引入(import):指允许一个包中的元素存取另一个包中的元素。
注意:输入依赖是单向的。

输出(export):包的公共部分,称为包的输出(Export)。包的输出只对另一个与它有输入依赖的包才是可视的、可取的。

2.5 标准元素

三、包之间的关系

包之间可以有两种关系:引入和访问依赖、泛化

3.1 依赖

  • 两个包存在依赖关系通常是指这两个包所含的模型元素之间存在着一个或多个依赖。
  • 对于有对象类组成的包,如果两个包中的任意两个类之间存在依赖关系,则这两个包之间存在依赖关系。
  • 包的依赖是不传递的。

引入和访问依赖(Import Dependency)是包与包之间的一种存取(Access)依赖关系。
表示方法:

3.2 泛化

  • 特殊包必须遵循一般包的接口。对于一般性包可以标明 {abstract},定义为一个接口,该接口有多个特殊包实现。
  • 特殊包从一般包继承其所含的公共类,并且可以重载和添加自己的类。特殊包可以替代一般包,用在一般包使用的任何地方。

四、包图建模技术

包与类的区别

  • 类是对问题领域或解决方案的事物的抽象,包是把这些事物组织成模型的一种机制。
  • 包可以没有标识.因为它没有实例,在运行系统中不可见;类必须有标识,它有实例,类的实例(对象)是运行系统的组成元素。

建立包图的具体的做法如下:

  1. 分析系统模型元素(通常是对象类),把概念上或语义上相近的模型元素纳入一个包。
  2. 对于每一个包,标出其模型元素的可视性(公共、保护或私用)。
  3. 确定包与包之间的依赖联系,特别是输入依赖。
  4. 确定包与包之间的泛化联系,确定包元素的多态性与重载。
  5. 绘制包图。
  6. 包图精化。

4.1 对成组的元素建模

  1. 浏览特定体系结构视图中的建模元素,找出由在概念和语义上相互接近的元素所定义的组块。
  2. 把每一个这样的组块放到一个包中。
  3. 对每一个包找出可以在包外访问的元素,将这些元素标记为公有的,把其他的元素标记为受保护的或私有的。如果不确定时,就隐藏该元素。
  4. 确定包与包之间的依赖关系,特别是引入依赖。
  5. 确定包与包之间的泛化关系,以及包的多重性和重载。

4.2 对体系结构视图建模

  1. 找出问题语境中一组有意义的体系结构视图。
  2. 找出对于可视化、详述、构造和文档化每个视图的语义来说充分必要的元素(和图),并将它们放到合适的包中。
  3. 如有必要,将这些元素进一步地组合到它们自己的包中。
  4. 不同视图中的元素之间通常存在依赖关系。

UML图详解(九)包图相关推荐

  1. K线图的看法实图详解

    K线图的看法实图详解 K线图最早是日本德川幕府时代大阪的米商用来记录当时一天.一周或一月中米价涨跌行情的图示法,后被引入股市. K线图有直观.立体感强.携带信息量大的特点,蕴涵着丰富的东方哲学思想,能 ...

  2. UML(Unified Modeling Language)统一建模语言--类图详解

    UML(Unified Modeling Language)统一建模语言--类图详解   2010-05-12 作者:fenglin1985 来源:fenglin1985的blog   类图是面向对象 ...

  3. UML概述及UML图详解

    ​ UML概述 一.UML简介 (一)UML (Unified Modeling Language)为面向对象软件设计提供统一的.标准的.可视化的建模语言.适用于 描述以用例为驱动,以体系结构为中心的 ...

  4. java uml类图教程_Java利器之UML类图详解

    原标题:Java利器之UML类图详解 (点击上方公众号,可快速关注) 来源:伯乐在线专栏作者- Code4Android 如需转载,发送「转载」二字查看说明 前言 UML(Unified Modeli ...

  5. UML总结(对九种图的认识和如何使用Rational Rose 画图)

    UML是一种建模语言,是系统建模的标准.我们之所以建模是因为大规模的系统设计时相当复杂的,当系统比较复杂时就会涉及到以下这几个问题: 开发人员如何与用户进行沟通来了解系统的需求? 开发人员之间如何沟通 ...

  6. 多图详解Spring框架的设计理念与设计模式

    Spring作为现在最优秀的框架之一,已被广泛的使用,51CTO也曾经针对Spring框架中的JDBC应用做过报道.本文将从另外一个视角试图剖析出Spring框架的作者设计Spring框架的骨骼架构的 ...

  7. android ui框架详解,多图详解 “Android UI”设计官方教程(二)

    编者注:本文为Android的官方开发者博客发了一份幻灯片的翻译文档的第二部分,专门介绍了一些Android UI设计的小贴士,我们在介绍这个幻灯片的第一部分<多图详解 "Androi ...

  8. 71张图详解IP地址、IP 路由、三层转发、ARP、ICMP

    71张图详解IP地址.IP 路由.三层转发.ARP.ICMP 架构师之道2021-04-07 13:51:24 https://www.toutiao.com/i6948285918986027531 ...

  9. 123 张图详解 177 个计算机网络名词

    大家好,我是小弗.上篇<60 张图详解 98 个常见网络概念>有一段时间了,现在重新汇总整理,把最近提到的网络名词也加上.同时为了方便阅读,增加了大量的配图,让网络小白也能轻松理解.考虑到 ...

  10. UML设计图(包含用例图,类图,对象图,包图,构件图,部署图)精华汇总,设计师必备

    UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明.可视化.和编制文档的一种标准语言.下面将对UML的九种图+包图的基本概念进行介绍以及各 ...

最新文章

  1. TensorFlow产品总监:机器学习进步让AI应用成可能
  2. c语言画图 钟表模拟程序,图形模拟时钟C语言课程设计
  3. 看看人家 SpringBoot + vue后台管理系统,多么优雅...
  4. LNMP一键安装脚本(第二版)
  5. asterisk配置会议室meetme.conf
  6. Android Studio 超级简单的打包生成apk
  7. IOS – OpenGL ES 调节图像灰色 GPUImageGrayscaleFilter
  8. myeclipse从svn检出代码转成maven后格式有误解决方法
  9. linux内核编译步骤
  10. 北大AI第八讲 李航 自然语言处理的现实与挑战
  11. Jenkins + Ansible + Gitlab之ansible篇
  12. 什么是SCM供应链管理
  13. android airplay工具开发,Android AirPin/AirPlay手机版使用图文教程
  14. python数学符号读法大全_常用数学符号读法大全
  15. 马踏棋盘(java)
  16. Python绘图案例实战——用Python画哆啦A梦(超详细步骤分解)
  17. 笔记本搞双系统-安装Ubuntu过程没有出现选择试用-安装、没有选择“安装类型”页面、安装类型页面为空等问题解决
  18. 拓扑排序之AOV,关键路径之AOE
  19. 接入GoogleAnalytics 统计
  20. Pulsar 社区周报|2021-01-04~2021-01-10

热门文章

  1. 自驾游分享你的快乐来[有车大师]吧!
  2. 清华大学建筑学计算机,建筑专业十强大学排名:清华第一,第四堪称黑马
  3. 二维列表的转置(行列互换,首行变首列,尾行变尾列)
  4. JAVA 05 输入年份判断生肖
  5. linux删除大量过期文件,linux删除大量文件的6种方法
  6. android调用录音编程,Android 调用MediaRecorder录音
  7. office excel 条件格式——使用公式确定要设置格式的单元格——筛选并标记一个表中每行数据的最小(大)值
  8. 1024程序员节日随笔
  9. 《单片机原理及应用(魏洪磊)》第七章第8题
  10. python图片转换成文字的手机软件_怎么把手机里的图片转换成WORD?迅捷文字识别帮你解决!...