UML图详解(九)包图

article/2025/3/13 4:54:41

一、概述

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

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

二、详细介绍

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


 


http://chatgpt.dhexx.cn/article/6k6HBbkv.shtml

相关文章

UML包图

UML包图 基本概述 包图(Package Diagram)是UML中的组织图形,其能有效的组织好各种UML图和表达思路,其功能是组织包内元素,控制访问。 基本语法 解释: 1、包有包的名字和包之间的关系。 2、包之间的关系有三种: 1、包…

UML 之 包图

包图(Package Diagram) 包图可以是任何一种的UML图组成,通常是UML用例图或UML类图。 包是一个UML结构,它使得你能够把诸如用例或类之类模型元件组织为组。 包被描述成文件夹,可以应用在任何一种UML图上。 虽然…

UML-包图

一、什么是包图 包图是在 UML 中用类似于文件夹的符号表示的模型元素的组合。系统中的每个元素都只能为一个包所有,一个包可嵌套在另一个包中。使用包图可以将相关元素归入一个系统。一个包中可包含附属包、图表或单个元素。 一个"包图"可以是任何一种的U…

【UML】UML中的“图”集

一、基本概念 UML作为统一建模语言,是一种模型化语言,那么该模型主要是用图来表示,这时候就自然而然产生了UML图。UML主要由基本构造块、规则、公共机制组成,其中基本构造块由事物、关系、图组成。 二、基本结构 图是UML中重要的组成部分,那么UML中图主要有九种,可以从…

UML--包图详解

包图 在UML的建模机制中,模型的组织是通过包(Package)来实现的。包可以把所建立的各种模型(包括静态模型和动态模型)阻止起来,形成各种功能或用途的模块,并可以控制包中元素的可见性&#xff0…

UML之包图

包图是UML中用类似于文件夹的符号表示的模型元素的组合,系统中的每个元素都只能为一个包所有,一个包可嵌套在另一个包中,使用包图可将相关元素归入一个系统,一个包中包含附属包、图表或单个元素。简单的来说,我们可以直…

UML --Package

一、本文思维导图 二、包图的概述 包图由包和包之间的关系构成,它是维护和控制系统总体结构的重要建模工具; 对复杂系统进行建模时,包方便理解和处理整个模型;设计良好的包是高内聚、低耦合的,并对其内容的访问具…

【CSS】过渡动画

目录 过渡动画1 css 属性1.1 transform 变换&#xff08;平移旋转缩放&#xff09;1.2 animation 动画1.2.1 keyframes 1.3 transition 过渡1.4 比较 2 方式2.1 css 伪类2.2 vue <Transition> 组件2.2.1 默认名称2.2.2 自定义名称2.2.3 自定义 class2.2.4 配合 animation…

【CSS】css转换、css过渡、css动画_09

目录 ❣️ 转换 1.什么是转换 2.转换的属性 3.2D转换 (1) 位移 (2) 缩放 (3) 旋转 (4) 倾斜 4.3D旋转 ❣️ 过度 1. 指定参与过渡的css属性 2.设置过渡的出持续时长 3.设置过渡的时间曲线函数&#xff08;设置过渡的速度&#xff09; 4.过渡的延迟 5.过渡代码的…

使用vue实现css过渡和动画

一、过渡和动画的区别 过渡&#xff1a;通常用来表示元素上属性状态的变化。动画&#xff1a;通常用来表示元素运动的情况。 二、使用Vue实现基础得css过渡与动画 1. 动画 /* css */ keyframes leftToRight {0% {transform: translateX(-100px);}50% {transform: translateX(-…

CSS动画过渡

CSS动画过渡: 过渡transition,我们可以在不使用 Flash 动画或 JavaScript 的情况下&#xff0c;当元素从一种样式变换为另一种样式时为元素添加效果. 要实现这一点&#xff0c;必须规定两项内容&#xff1a;1.规定希望把效果添加到哪个 CSS 属性上&#xff0c;2.规定效果的时长…

CSS 过渡效果

简述: CSS过渡&#xff0c;就是样式发生变化时&#xff0c;可以看上去更自然&#xff0c;更柔和。想让哪个盒子有过渡样式&#xff0c;就把transition属性加在那个盒子上。 语法: 属性描述取值范围transition-property应用过渡效果的 CSS 属性名CSS属性都可以(all, width, co…

css的过渡特效

在web端&#xff0c;我们实现很多有意思的效果&#xff0c;比如&#xff1a;元素的淡入淡出、菜单滑入颜色切换等等效果。 那这些效果最简单的方式就是过渡【transitions】&#xff0c;过渡是一个变化时。css的过渡&#xff0c;可以使用‘ease’来描述这个变化的状态。 trans…

CSS transition(过渡效果)

1. transition-property transition-property 属性用来设置元素中参与过渡的属性名称&#xff0c;语法格式如下&#xff1a; transition-property: none | all | property; 参数说明如下&#xff1a; none&#xff1a;表示没有属性参与过渡效果&#xff1b;all&#xff1a;…

CSS——过渡与动画

1. 缓动效果 给过渡和动画加上缓动效果&#xff08;比如具有回弹效果的过渡过程&#xff09; 回弹效果是指当一个过渡达到最终值时&#xff0c;往回倒一点&#xff0c;然后再次回到最终值&#xff0c;如此往复一次或多次&#xff0c;并逐渐收敛&#xff0c;最终稳定在最终值。…

CSS过渡效果、变形效果以及动画

一、CSS的过渡&#xff1a;&#xff1a;从一个样式变化到另一个样式 1、transition-property&#xff1a;指定过渡的属性 属性值作用none没有任何属性会获得过渡效果all所有属性都将获得过渡效果property定义应用过渡效果的CSS属性名称&#xff0c;多个名称之间以逗号分隔 2…

CSS过渡,转换与动画

目录 过渡(transition) 转换(transform) 什么是转换 二维坐标系 移动&#xff08;translate&#xff09; 用translate实现居中 旋转&#xff08;rotate&#xff09; 设置旋转中心点 缩放&#xff08;scale&#xff09; 使用 设置缩放中心点 动画 用keyframes定义动…

CSS过渡-Transitions

目录 过渡三要素 过渡触发 属性&#xff1a; 实例运用&#xff1a; 1.过渡时间曲线动画 2.文字放大效果 3.手风琴 4. 米兔过渡 CSS transitions 可以决定哪些属性发生动画效果 (明确地列出这些属性)&#xff0c;何时开始 (设置 delay&#xff09;&#xff0c;持续多久 …

CSS过渡动画

css中实现动画有两种方式&#xff1a;transition过渡动画、 animation自定义动画。 transition 是 css3 新增的⼀个功能&#xff0c;可以实现元素不同状态间的平滑过渡&#xff08;当元素从⼀个状态进⼊到另⼀个状态时&#xff09;&#xff0c;经常⽤来制作⼀些动画效果。 之…

CSS中过渡效果(transition)

CSS中过渡效果&#xff08;transition&#xff09; 过渡&#xff08;无继承性&#xff09;1、transition-property属性2、transition-duration属性3、transition-timing-function属性4、transition-delay属性5、transition属性 兼容性练习总结 过渡&#xff08;无继承性&#x…