一、本文思维导图

二、包图的概述
包图由包和包之间的关系构成,它是维护和控制系统总体结构的重要建模工具;
对复杂系统进行建模时,包方便理解和处理整个模型;设计良好的包是高内聚、低耦合的,并对其内容的访问具有严密的控制。
三、包的名字
每个包必须有一个与其他包相区别的名称,包的名字是一个字符串:
• 简单名:仅含一个简单的名称。
• 路径名::以包所位于的外围包的名字作为前缀的包名。


四、包拥有的元素
包是对模型元素进行分组的机制,他把模型元素划分成若干个子集。在包中可以拥有各种其它元素,包括类、接口、构件、节点、协作、用例和图,甚至是其它包或图。拥有是一种组成关系,这意味着模型元素被声明在包中,而且一个元素不能被一个以上的包所拥有。(也就是说一个元素如果放到了这个包里,那它就不能再放到别的包里了)。如果包被撤销,那么其中的元素也要被撤销。

五、包的可见性
包的可见性用来控制包外界的元素对包内元素的可访问权限。
1. 公有访问(public)用“+”来表示:包内的模型元素可以被任何引入了此包的其他包的内含元素访问。
2. 保护访问(protected)用“#”来表示:表示此元素能被该包的子包内所含元素访问。
3. 私有访问(private)用“-”来表示:表示此元素只能被属于同一包的内含元素访问。
六、引入与输出
引入(import):指允许一个包中的元素存取另一个包中的元素。
注意:输入依赖是单向的。
输出(export):包的公共部分,称为包的输出(Export)。包的输出只对另一个与它有输入依赖的包才是可视的、可取的。


七、包与包之间的关系:
* 依赖关系:一个包中引用了另一个包中的元素。
依赖关系中涉及两个子类型。他们是“访问”和“导入”。虽然用户可以使用自己的构造型来表示两个包之间的依赖类型,但有两种构造型。
①<<导入>> - 一个包导入其他包的功能

②示例 - << import >>依赖项

③<<访问>> - 一个包需要其他包的功能帮助

  • 泛化关系,就是继承关系,表明是一个包的家族。
    八、包图建模技术
    包与类的区别
    • 类是对问题领域或解决方案的事物的抽象,包是把这些事物组织成模型的一种机制。
    • 包可以没有标识.因为它没有实例,在运行系统中不可见;类必须有标识,它有实例,类的实例(对象)是运行系统的组成元素。
    建立包图的具体的做法如下:
    1.分析系统模型元素(通常是对象类),把概念上或语义上相近的模型元素纳入一个包。
    2.对于每一个包,标出其模型元素的可视性(公共、保护或私用)。
    3.确定包与包之间的依赖联系,特别是输入依赖。
    4.确定包与包之间的泛化联系,确定包元素的多态性与重载。
    5.绘制包图。
    6.包图精化。
    九、设计包的原则
    ①重用等价原则。把类放入包时,应考虑把包作为可重用的单元。
    ②共同闭包原则。把那些需要同时改变的类放在同一个包中。
    ③共同重用原则。不会一起使用的类不要放在同一个包中。
    ④非依赖循环原则。包之间的依赖关系不要形成循环。
    十、包图绘制原则和常见问题
    •最小化包之间的依赖,最小化每个包中的public、protected元素的个数,最大化每个包中private元素个数
    •在建模时应该避免包之间的循环依赖,也就是不能够包含相互依赖的情况。
    •在考虑如何对类进行分组时,主要是根据类之间的依赖关系进行分组。在建包时,尽量把概念和语义上接近的元素包含在同一个包中。
    •好的包图依然要体现高内聚低耦合的特性。测试时可以以包为测试单位。

UML --Package相关推荐

  1. oracle中的柱状图,详解Oracle中XMI开发UML图表技术

    XML是面向机器的数据格式,虽然手工编写困难,但处理效率高.当 XML(扩展标记语言)于 1998 年 2 月被引入软件工业界时,它给整个行业带来了一场风暴.有史以来第一次,这个世界拥有了一种用来结构 ...

  2. Atitit.uml2 api 的编程代码实现设计uml开发 使用eclipse jar java 版本

    Atitit.uml2 api 的编程代码实现设计uml开发 使用eclipse jar java 版本 1. clipse提供了UML的底层Java包, 1 2. MDTUML2Getting St ...

  3. eclipse mdt java工程_Atitit.uml2 api 的编程代码实现设计uml开发 使用eclipse jar java 版本...

    Atitit.uml2 api 的编程代码实现设计uml开发 使用eclipse jar java版本 1.clipse提供了UML的底层Java包, 就是说用纯代码可以构建一个UML模型,当构建完之 ...

  4. oracle的uml图,详解Oracle中XMI开发UML图表技术

    描述 XML是面向机器的数据格式,虽然手工编写困难,但处理效率高.当 XML(扩展标记语言)于 1998 年 2 月被引入软件工业界时,它给整个行业带来了一场风暴.有史以来第一次,这个世界拥有了一种用 ...

  5. StarUML 3 中文文档 包图

    包图 文章目录 包图 创建包图 包 模型 子系统 包含层次 创建包图 要创建包图: 首先选择一个元素,其中包含新建包图的元素作为子元素. 在菜单栏选择 Model | Add Diagram | Pa ...

  6. Logical Architecture

    What is the Logical Architecture? And Layers? The logical architecture is the large-scale organizati ...

  7. MDT/UML2/Getting Started with UML2及我自己的一些理解

    原文地址:http://wiki.eclipse.org/MDT/UML2/Getting_Started_with_UML2 xiaogugood: 看完该篇文章的感想:通过这篇文章,我发现Ecli ...

  8. 【软件分析】软件分析、设计与建模迭代式详解

    软件分析.设计与建模迭代式详解 1.introduction 1.1 OOA/D 1.2 Iterative, Evolutionary, and Agile 2.Case Study and Req ...

  9. A002-186-2602-赵弦

    计算机科学与工程学院作业报告(首页) 课程名称 软件分析与建模 班级 18软6 作业名称 个人期末报告 教导教师 董瑞生 姓名 赵弦 学号 1814080902602 日期 2020.12.16 一. ...

最新文章

  1. 第十一届蓝桥杯省赛 A组 试题H:子串分值
  2. 天津科技大学计算机科学与信息工程学院,天津科技大学人工智能学院欢迎您!...
  3. python需要多久-在传智播客培训python需要多久?
  4. windows核心编程-第二章 Unicode
  5. openjdk_从CLI监视OpenJDK
  6. 论文浅尝 | MulDE:面向低维知识图嵌入的多教师知识蒸馏
  7. python 加锁_Python 共享变量加锁、释放详解
  8. 智能优化算法:野狗优化算法 - 附代码
  9. 文本处理 - 测试一个对象是否是类字符串
  10. 开源网站项目-静态网址导航网站
  11. 中文版orgin图像数字化工具_Engauge Digitizer官方版-图形数字化处理软件下载 v10.8 官方版 - 安下载...
  12. Linux4.14加密框架中的主要数据结构(1)—— struct crypto_alg(通用算法)
  13. 电大计算机绘图本任务检测,(更新版)国家开放大学电大《计算机绘图》网考形考作业试题及答案-20210724215340.pdf-原创力文档...
  14. 凑零钱动态规划java_凑零钱问题-动态规划回溯贪心
  15. 学习记录_美术部分_美术理论基础
  16. TCP的长连接与短连接
  17. 1、Centos7系统的初化始配置
  18. cmd打开时提示“系统找不到指定的路径”“the system cannot find the path specified”
  19. Logi-KafkaManager安装
  20. Python学习中的Pond是什么

热门文章

  1. GEditor女蜗设计器3.0发布
  2. 快速查看电脑内存型号方法
  3. C语言二级题库(刷题软件+60套真题+填空题+大题)2022年9月份新题第三套
  4. 文档翻译工具有哪些?Word文档翻译方法介绍
  5. 真骨传导耳机推荐:佩戴最舒适健康的蓝牙耳机
  6. 【游戏逆向】某某明月刀_技能冷却分析
  7. 分析:公众号运营+引流,怎么从0到1运营
  8. 一个数字几个字节_字节跳动安全沙龙闭幕 多位专家解析数字经济业务安全
  9. PS绘画效果滤镜Snap Art 4
  10. android视频的编辑(录制,裁剪,合成)(1)