UML建模图文详解教程05——包图

news2024/11/15 13:36:46

版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl
  • 本文参考资料:《UML面向对象分析、建模与设计(第2版)》吕云翔,赵天宇 著

在这里插入图片描述

包图概述

包图(package diagram)是用来描述模型中的包和所包含元素的组织方式的图,是维护和控制系统总体结构的重要内容。包图通过对图中的各个包元素以及包之间关系的描述展示出系统的模块以及模块之间的依赖关系。

包图能够组织许多 UML 中的元素,其最常见的用途是用来组织用例图和类图。

核心知识点

请务必熟悉并掌握以下核心知识点。

包图中的主要组成元素包括包以及包的依赖关系。

包的概念

包(package)是用于把模型本身组织成层次结构的通用机制,它不能执行。包是一个组织模型的组块,是一种将设计元素分组组织的通用机制。包在图形上被表示为一个文件夹的形状,即一个大矩形的左上角附有一个小矩形,图形上显示有包名另外,也可以将包所包含的元素显示在上面。

在这里插入图片描述

包名

每个包都必须有一个与其他包相区别的名称。

包中的元素

包本身是一个容器,可以拥有很多元素,这些元素被称作该包的内部元素。包中可以容纳各种高级的模型元素,如类和类的关系、状态机、用例图、交互、协作等,甚至是一个完整的 UML图。

包的依赖关系

包元素之间最常见的关系就是依赖关系。包之间的依赖关系实际上是从一个更高的层次来描述包内某些元素之间的依赖关系。也就是说,如果不同包中任何元素之间存在着一个依赖,则两个包之间就存在着依赖关系。

包的依赖关系表示为一条带箭头的虚线。

在这里插入图片描述

包的引入

包的依赖关系同样可以通过添加构造型来使其语义更加明确。最常见的包依赖关系的构造型就是引入,表示为<< import >>。引入指的是允许一个包(客户包)中的元素可以自由访问另一个包(提供者包)中的公有元素。引人是单向的,其表示法的箭头从引入方指向输出方。在引入的过程中,客户包把提供者包的包名添加到自己的命名空间中,从而使客户包中可以使用引入元素的简单名来引用该元素。

例如,订单Ordering引入了产品Products包和价格Pricing包。Ordering是客户包,Products和Pricing是提供者。

在这里插入图片描述

航空购票系统包图

在此,继续使用航空购票系统演示包图的绘制方法。

用例图现状

目前,在航空购票系统中用例图如下:

在这里插入图片描述

元素分包

请选中用例图,然后选择添加包;图示如下:

在这里插入图片描述
点击确定后,图示如下:

在这里插入图片描述
请将所有参与者拖动至Actors包中;图示如下:

在这里插入图片描述
类似地,建立登录注册包并将登录用例和注册用例拖动至该包中;图示如下:

在这里插入图片描述

类似地,建立核心业务包并将查看行程用例、查询航班用例、购买机票用例、退订机票用例拖动至该包中;图示如下:

在这里插入图片描述
类似地,建立后台操作包并将设定航班安排用例拖动至该包中;图示如下:

在这里插入图片描述
类似地,建立信用评价包并将修改信用等级用例、检查信用等级用例拖动至该包中;图示如下:

在这里插入图片描述

最后我们做一个小调整,将Actors包下的用例图拖出,放至用例图下;图示如下:

在这里插入图片描述

至此,完成了元素分包工作。

创建包图

在用例图文件夹上右键选择添加图再选择UML Structural并选择Package;图示如下:

在这里插入图片描述

点击确定后,图示如下:

在这里插入图片描述
请将拖动各个包至绘图区,松开鼠标时请选择包元素;图示如下:

在这里插入图片描述

添加包中的关系

对于创建好的包图,可依据实际情况添加依赖和引入关系。利用Class Relationships 中的Associate添加关系,并在松开鼠标时选择Import;图示如下:

在这里插入图片描述

至此,完成了航空购票系统包图的绘制。

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

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

相关文章

DAOS低时延与高性能RDMA网络

什么是RDMA RDMA&#xff08;Remote Direct Memory Access&#xff09;远程直接内存访问是一种技术&#xff0c;它使两台联网的计算机能够在主内存中交换数据&#xff0c;而无需依赖任何一台计算机的处理器、缓存或操作系统。与基于本地的直接内存访问 ( DMA ) 一样&#xff0c…

抖音本地生活服务商申请怎么做?无保证金的申请方法来了

想做抖音的本地生活服务项目&#xff0c;却不知道去哪里申请&#xff0c;或者如何申请&#xff0c;其实&#xff0c;官方的通道在今年上半年还是有的&#xff0c;自己去平台上提交资料申请就可以了&#xff0c;但需要缴纳高额的保证金。 而在今年下半年&#xff0c;平台已经关…

SPS简单对应分析

前言&#xff1a; 本专栏参考教材为《SPSS22.0从入门到精通》&#xff0c;由于软件版本原因&#xff0c;部分内容有所改变&#xff0c;为适应软件版本的变化&#xff0c;特此创作此专栏便于大家学习。本专栏使用软件为&#xff1a;SPSS25.0 本专栏所有的数据文件请点击此链接下…

【算法】经典算法题

文章目录 专题一&#xff1a;双指针1. 移动零2. 复写零3. 快乐数4. 盛最多水的容器5. 有效三角形的个数6. 查找总价格为目标值的两个商品7. 三数之和8. 四数之和 专题二&#xff1a;滑动窗口1. 长度最小的子数组2. 无重复字符的最长字串3. 最大连续1的个数 III4. 将 x 减到 0 的…

【尚跑】2023泾阳半程马拉松144 PB完赛

1、赛事背景 来到泾阳&#xff0c;就来到了中国大地原点&#xff1b; 来到泾阳&#xff0c;就来到了陕西的“白菜心心”&#xff1b; 来到泾阳&#xff0c;就来到了具有2000多年的历史长河&#xff1b; 泾河水缓缓流&#xff0c;流过郑国渠&#xff1b; 泾河水缓缓流&…

线程提交线程到线程池,有几种方式,哪一种方式是工作中不能使用的,无法捕捉异常,线程池的拒绝策略,线程池的提交方式

线程池的工作原理 JDK中提交线程到线程池&#xff0c;有几种方式&#xff0c;哪一种方式是工作中不能使用的&#xff0c;无法捕捉异常 两种提交任务的方法 ExecutorService 提供了两种提交任务的方法&#xff1a; execute()&#xff1a;提交不需要返回值的任务 submit()&a…

gRPC之gRPC负载均衡(客户端负载均衡)(etcd)

1、gRPC负载均衡(客户端负载均衡)(etcd) 本篇将基于etcd的服务发现前提下&#xff0c;介绍如何实现gRPC客户端负载均衡。 1.1 gRPC负载均衡 gRPC官方文档提供了关于gRPC负载均衡方案Load Balancing in gRPC https://github.com/grpc/grpc/blob/master/doc/load-balancing.m…

二十一、文档操作

目录 一、添加文档 1、编写代码 2、运行并查看 二、查询文档 1、编写代码 2、运行并查看 三、删除文档 1、编写代码 2、运行并查看 四、修改文档 方式一&#xff1a;全量修改&#xff0c;会删除旧文档&#xff0c;添加新文档 方式二&#xff1a;局部修改。增量修改&…

TCP /UDP协议的 socket 调用的过程

在传输层有两个主流的协议 TCP 和 UDP&#xff0c;socket 程序设计也是主要操作这两个协议。这两个协议的区别是什么呢&#xff1f;通常的答案是下面这样的。 TCP 是面向连接的&#xff0c;UDP 是面向无连接的。TCP 提供可靠交付&#xff0c;无差错、不丢失、不重复、并且按序…

mybatis 语法使用各种踩坑(持续更新中。。。)

1、大小写命名&#xff1a;这个别说了&#xff0c;都是泪。 2、联表查询查询&#xff0c;多条合成一条&#xff0c;不生效的原因 博主各种检查关联关系和字段大小写&#xff0c;本来是4条数据最后合成一条数据&#xff0c;死活给你直接返回了4条数据&#xff0c;而且每个类似p…

实现二叉搜索树的查找、插入和删除功能(思路+图文+代码详解)

文章目录 二叉搜索树一、搜索树1.二叉搜索树的查找2.二叉搜索树的插入3.二叉搜索树的删除4.性能分析 二叉搜索树 HashMap和HashSet的底层是一个哈希表 TreeMap 和TreeSet底层是一棵搜索树&#xff08;红黑树&#xff09; 涉及到一些搜索查找的场景可以调用Map和Set接口 一、…

SPSS多元对应分析

前言&#xff1a; 本专栏参考教材为《SPSS22.0从入门到精通》&#xff0c;由于软件版本原因&#xff0c;部分内容有所改变&#xff0c;为适应软件版本的变化&#xff0c;特此创作此专栏便于大家学习。本专栏使用软件为&#xff1a;SPSS25.0 本专栏所有的数据文件请点击此链接下…

IDEA、PHPSTORM 在命令行中进行 PHP debug

然在终端执行控制器的方法php yii test/ab 即可看到触发debug 调试

管理类联考——英语二——备考 100 句涵盖所有词汇

全中 在海里的这个地区&#xff0c;熊猫们喜欢就着苏打碗豆喝茶。而大洋州的民兵则喜欢经过半岛&#xff0c;带着编剧本的公式上餐厅去。附件的电影院里有额外的歌剧和香蕉&#xff0c;这一时代的斑马们被外面的天线所吸引。实验室里的蟹想用它的肋骨去戳四肢象灯炮的小羊。但…

虚拟机VMware上安装Ubuntu系统(详细图文教程)

关于虚拟机VMware的安装教程&#xff0c;学者看我另外一篇博客&#xff1a;VMware详细安装教程 目录 一、Ubuntn系统准备二、VMware上安装Ubuntn系统2.1 答疑 三、导入Ubuntu系统四、总结 一、Ubuntn系统准备 先下载好Ubuntn系统&#xff0c;这里我提供一个&#xff0c;下载链…

基于51单片机设计的人体温度检测与存储系统

一、前言 随着科技的快速发展和人们对健康生活的追求,准确、便捷的体温检测成为日常生活中的重要需求。在当前全球健康环境下,特别是在一些公共场合和家庭中,快速筛查体温以预防疾病传播变得至关重要。基于这一需求,当前设计了基于51单片机的温度检测与存储系统。 传统体…

外部 prometheus监控k8s集群资源(pod、CPU、service、namespace、deployment等)

prometheus监控k8s集群资源 一&#xff0c;通过CADvisior 监控pod的资源状态1.1 授权外边用户可以访问prometheus接口。1.2 获取token保存1.3 配置prometheus.yml 启动并查看状态1.4 Grafana 导入仪表盘 二&#xff0c;通过kube-state-metrics 监控k8s资源状态2.1 部署 kube-st…

电子学会C/C++编程等级考试2023年03月(一级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:字符长方形 给定一个字符,用它构造一个长为4个字符,宽为3个字符的长方形,可以参考样例输出。 时间限制:1000 内存限制:65536输入 输入只有一行, 包含一个字符。输出 该字符构成的长方形,长4个字符,宽3个字符。样例输入…

物联网AI MicroPython学习之语法 I2S音频总线接口

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; I2S 介绍 模块功能: I2S音频总线驱动模块 接口说明 I2S - 构建I2S对象 函数原型&#xff1a;I2S(id, sck, ws, sd, mode, bits, format, rate, ibuf)参数说明&#xff1a; 参数类型必选参数&#xff1f…