UML图详解(九)包图

一、概述

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

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

二、详细介绍

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. 不同视图中的元素之间通常存在依赖关系。


 

  • 46
    点赞
  • 169
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
### 回答1: 绘制柱形包含误差线,可以使用Python的matplotlib库。以下是示例代码: ```python import matplotlib.pyplot as plt # 数据 x = [1, 2, 3, 4, 5] y = [5, 7, 6, 8, 9] error = [0.5, 0.4, 0.7, 0.2, 0.3] # 绘制柱形 plt.bar(x, y, yerr=error, capsize=5) # 设置形属性 plt.xlabel('X轴') plt.ylabel('Y轴') plt.title('柱形') # 显示形 plt.show() ``` 在示例代码中,我们使用了`plt.bar()`函数来绘制柱形,并设置了误差线的长度为0.5、0.4、0.7、0.2、0.3,误差线的顶部和底部使用了`capsize`参数进行设置。最后,我们设置了形的横轴、纵轴和标题,并调用`plt.show()`函数显示形。 ### 回答2: 绘制柱形时,可以使用误差线来显示数据的变动范围。误差线可以有效地表达柱形中数据的置信度和可靠性。 要绘制柱形包含误差线,首先需要确定柱形的数据和误差大小。一般来说,柱形的每个柱代表一组数据,柱的高度表示该组数据的大小。误差线则表示该组数据的误差大小。 在绘制柱形时,可以为每个柱形添加上下误差线。上误差线表示该组数据的最大值,下误差线表示该组数据的最小值。误差线可以用不同颜色或样式进行标识,以便区分。 为了让柱形更清晰和易读,可以在柱形的顶部或底部添加误差线的标记。这样,读者可以一目了然地看出每个柱形数据的变动范围。 绘制柱形包含误差线的步骤如下: 1. 收集数据并确定每组数据的误差大小。 2. 在纸上或电脑绘软件上绘制坐标轴,确定横轴和纵轴。 3. 根据数据确定每个柱形的高度,绘制柱形的柱。 4. 在每个柱形的顶部或底部添加上下误差线。 5. 按照需要,为误差线添加标记和符号,以便更清晰地表达数据的变动范围。 6. 添加例和标题,使柱形更具可读性和可理解性。 总之,绘制柱形包含误差线可以更直观和准确地展示数据的变动范围,有助于读者更全面地理解数据的内涵。 ### 回答3: 柱形是一种用于可视化数据的表类型,通过绘制垂直的柱形来表示不同类别或组之间的数值差异。为了更准确地表达数据的不确定性和误差范围,可以在柱形中添加误差线。 绘制包含误差线的柱形需要遵循以下步骤: 1. 收集数据:首先,需要收集所需的数据,包括不同类别或组之间的数值和相应的误差范围。 2. 创建柱形:使用绘工具(如Excel、Matplotlib等),创建柱形。将不同类别或组的名称作为横轴的刻度标签,将数值作为纵轴的刻度标签,并绘制相应的柱形。 3. 添加误差线:根据收集到的误差范围数据,确定每个柱形所代表的误差范围。可以使用垂直线、水平线或者带状区域来表示误差范围。 4. 标注误差线:在柱形上标注误差线的信息,可以使用文字标注、箭头或其他符号来表示。确保标注清晰明了,以便读者能够准确理解误差范围。 5. 美化表:根据需要,可以增加标题、坐标轴标签、例等元素来增加表的可读性和美观性。 绘制包含误差线的柱形可以更加直观地展现数据的差异和误差范围,帮助读者更好地理解数据。同时,合理的标注和美化可以增加表的可读性和吸引力。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值