包图的画法

news2024/12/27 12:46:36

包图

 1.包图

1.1概念

包图是UML中用来组织模型元素的模型元素。

可以把包图比作一个存放模型元素的箱子或者是容器,里面可以可以存放各种各样的模型元素。

包图中可以包含的信息主要有:类 构件 用例 结点 活动 状态 等其他的相关的模型元素。

1.2包图的表示

 

1.3包的命名

  1. 表示符组成,并且能够表示包的含义的名字。
  2. 包的名字放到包的顶部,或者包的内部。

包中的成员:就是包中包含的元素。和概念中的包含的东西是一致的。包中有什么东西。包图中就是可以存放什么东西的。

 

包中成员的命名规则

  1. 不可以重复
  2. 非限定名:不包含包的名字
  3. 限定名的形式。B::货品

包的可见性

  1. 公有
  2. 私有
  3. 受限

下面是常见的可见性的表示。

补充:如何设置可见性

可以选中我们的元素。点击属性可以设置元素的可见性。不同的可见性的表示的符号是不同的。

 

1.4包图

展示包与包之间关系的图。

 

1.5包之间的关系

1.依赖:一个包要访问另外一个包中的元素。则这两个包之间存在依赖关系。A依赖于B,那么A指向B。

依赖关系的类型

  • 使用
  • 抽象
  • 跟踪

(1)使用:一个包中的元素要使用到另外一个包中的元素。

 

(2)抽象:一个包中的元素对另外一个包元素的抽象。则两个包之间存在抽象。

(3)一个包中的元素对另外一个包元素的深化。则两个包之间存在跟踪关系。

2.导入:将A包导入到B包中。使得导入到B包中的A包中的元素在B包中访问程度等于访问B包中的元素。

 

导入任意元素。

导入包中的全部的元素。

导入指定的元素:

导入包中的全部内容:

 

3.合并关系:合并关系是指将源保重的元素合并到目标包中,实现扩展的效果。

合并之后,源包中的特性在自己原有的特性的基础上增加目标包的特性。

原先B包中只有如下的内容

 

A包中原先的内容

 

合并之后B包中内容

 

4.包含关系:是指一个包可以嵌套另外一个包作为自己的包。可以实现多层次的嵌套的。子包可以有自己的子包的。

内层包可以不用导入,直接访问外层包中的元素,但外层包要访问内层包的元素需要导入。

 

1.7包的设计原则

重用等价:相同的类尽量放到一个包中

共同重用原则:一个应用经常用到的多个模型放置到一个包中。减少包之间的依赖关系,提高包的独立性。

共同封闭原则:把可能同时修改,同时维护的模型元素放到一个包中。便于升级和维护。

无循环依赖原则:包之间依赖关系不要形参循环

稳定依赖原则:一个包应该依赖比它稳定的包,不应该依赖经常变化的包

1.8包图的作用

  1. 利用包图可以有效的组织模型元素

  2. 可以建立软件结构模型

  3. 可以解决元素名称的问题

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/546723.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

秒杀场景checklist

在面试中经常碰到的问题,列下来备忘。

车载以太网 - SomeIP - 协议用例 - Messages_01

目录 Service Discovery Messages 1、验证Instance ID为0xFFFF时DUT需要返回该Serveice ID包含的所有Instance ID

chatgpt赋能Python-python3去掉空格

Python3去掉空格——让你的代码更整洁高效 在Python3编程中,去掉无用的空格可以使代码更具可读性和高效性。因此,在本文中,我们将介绍如何使用Python3去掉空格,包括字符串中的空格和代码文件中的空格。 字符串中的空格 在Pytho…

学系统集成项目管理工程师(中项)系列23a_信息系统集成及服务管理(上)

1. 提供的专业信息技术咨询服务、系统集成服务、技术支持服务、运行维护服务等工作 2. 信息技术咨询服务 2.1. 信息系统集成及服务的前端环节 2.2. 为企业提供信息化建设规划和解决方案 3. 原因 3.1. 不具备技术实力的系统集成商搅乱信息系统集成及服务市场 3.2. 一些建设…

chatgpt赋能Python-python3快捷键大全

Python3快捷键大全 介绍 Python是一种高级编程语言,广泛应用于科学计算、人工智能、网络编程、Web开发和数据分析等领域。Python具有简洁、易读、易学和可扩展等特点,因此成为了生产力非常高的编程语言之一。Python3是Python语言的最新版本&#xff0c…

印度和巴基斯坦网络优势和劣势的综合研究

由于网络空间在当今世界的重要性日益增加,各国已将网络安全放在首位并开发技能来保护其重要基础设施、数字资产和私人数据。 没有豁免适用于印度和巴基斯坦,这两个拥有动荡历史的核武器邻国。 这项研究深入比较了他们的网络能力,并评估了巴…

基于DBSCAN密度聚类的风电-负荷场景削减方法

​目录 ​ 1 主要内容 基于密度聚类的数据预处理: 场景提取: 算法流程: 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序复现文章《氢能支撑的风-燃气耦合低碳微网容量优化配置研究》第三章内容,实现的是基于DBSCAN…

shiro与Spring Boot 整合

目录 框架整合 创建模块 添加依赖 添加配置文件 添加启动类 ​编辑 登录认证实现 后端接口服务实现 实现前端页面 框架整合 创建模块 添加依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-p…

音视频windows安装ffmpeg6.0并使用vs调试源码笔记

建立在上一步&#xff0c;vs已经能够正常调试qt项目&#xff0c;可以实现&#xff1a; 1&#xff1a;qt可以使用mvsc &#xff08;使用cdb&#xff09;进行调试。 2&#xff1a;vs已经可以加载qt项目&#xff0c;借助vs进行调试。 本文目标&#xff1a;编译ffmpeg库&#xf…

chatgpt赋能Python-python3的内置函数

Python3内置函数大全 Python3是一种高级编程语言&#xff0c;拥有丰富的内置函数库。这些内置函数包括许多核心功能和常用操作。在这篇文章中&#xff0c;我们将介绍一些最常用和最有用的Python3内置函数。 1. print() print()函数用于将输出打印到控制台。它是Python中最常…

chatgpt赋能Python-python3怎么换行

Python3中的换行是许多初学者和经验丰富的工程师们都需要掌握的关键概念之一。在本文中&#xff0c;我们将探讨Python3中如何使用换行&#xff0c;包括介绍和结论。 什么是Python3中的换行&#xff1f; 在Python3中&#xff0c;换行是指将一行代码分成多个部分&#xff0c;以…

数据结构-单调栈1

先介绍一下单调栈是什么 一种特别设计的栈结构&#xff0c;为了解决如下的问题&#xff1a; 给定一个可能含有重复值的数组arr&#xff0c;i位置的数一定存在如下两个信息 1&#xff09;arr[i]的左侧离i最近并且小于(或者大于)arr[i]的数在哪&#xff1f; 2&#xff09;arr[…

【天线专题】史密斯(Smith)圆图

对一个器件进行表征时,所发生的反射大小取决于入射信号“看到的”阻抗。由于任何阻抗都能用实部和虚部(R+jX 或 G+jB )表示,故可以将他们绘制在所谓复阻抗平面的直线网络上,如下图所示。遗憾的是,开路(一种常见的射频阻抗)在实轴上表现为无限大,因而无法表示出来。 …

集合Arrary

目录 ArraryList 引用基本类型 案例1&#xff1a;定义一个集合添加学生姓名年龄 案例2&#xff1a;查看是否存在这个id 案例3&#xff1a;手机 案例4&#xff1a;学生管理系统&#xff08;不完整&#xff09; 集合长度可变&#xff1a;自动扩容集合和数据 长度存储数据类…

Riiid Answer Correctness Prediction - lgb baseline 学习

链接 特征 features [user_questions, user_mean, content_questions, content_mean, prior_question_elapsed_time]user_df train[train.answered_correctly ! -1].groupby(user_id).agg({answered_correctly: [count, mean]}).reset_index() user_df.columns [user_id, …

chatgpt赋能Python-python3怎么安装util

如何安装python3的util模块 Python是一种高级编程语言&#xff0c;可用于从网页应用到人工智能的各种应用程序。它具有简单易学的语法和强大的功能&#xff0c;而且其可扩展性也非常好。 然而&#xff0c;要使用Python的所有功能&#xff0c;需要具有各种库和模块的支持。本文…

【设计模式】单例模式(创建型)

一、前言 学习设计模式我们关注的是什么&#xff0c;如何实现么&#xff1f;是也不是。我认为比了解如何实现设计模式更重要的是这些设计模式的应用场景&#xff0c;什么场景下我们该用这种设计模式&#xff1b;以及这些设计模式所包含的思想&#xff0c;最终帮助我们把代码写…

DNS正反向解析- 的基本实现步骤和报错解决过程

先copy一张图提升一下理解 DNS解析过程如图分为以下三种过程&#xff1a;首先是DNS客户机解析器&#xff0c;从WEB浏览器中输入相应URL&#xff0c;DNS客户机解析器会首先检查自己本地host文件是否存在网站映射关系&#xff0c;成功则直接完成域名解析。如果host中没有相关映射…

Java学习路线(3)——基础数据类型操作

一、自动类型转换 1、什么是自动类型转换&#xff1f; 自动类型转化是范围小的数据可赋值给范围大的数据且精度不损失&#xff0c;且可以跨越式转化。 基础数据类型之间的转换如下&#xff1a; byte(1)—short(2)—char(2)—int(4)—long(8)—float(4)—double(8) 2、表达式的…

cs109-energy+哈佛大学能源探索项目 Part-2.1(Data Wrangling)

博主前期相关的博客见下&#xff1a; cs109-energy哈佛大学能源探索项目 Part-1&#xff08;项目背景&#xff09; 这次主要讲数据的整理。 Data Wrangling 数据整理 在哈佛的一些大型建筑中&#xff0c;有三种类型的能源消耗&#xff0c;电力&#xff0c;冷冻水和蒸汽。 冷冻…