组件图、部署图 UML——实现图、包图

目录
一、包图
为什么会产生包?
包有哪些作用?
包的可见性
包的图符
包与包之间的关系
如何建立包图?
建包时要注意哪些问题?
二、组件图
三、部署图
项目应用
一、包图
为什么会产生包?
对复杂系统进行建模时,经常需要处理大量的类、接口、组件、节点和图,这时就有必要将这些元素进行分组,把那些语义相近并倾向于一起变化的元素组织起来加入同一包,这样方便理解和处理整个模型,同时也便于轻松地控制这些元素的可见性,使一些元素在包外可见,一些元素是隐藏在包内的 。
设计良好的包是高内聚、低耦合的,并且对其内容的访问具有严密的控制
注意:若包被撤销,则其中的元素也被撤销了
包有哪些作用?
在我们的电脑桌面上,如果有很多各种各样的文件散落是不是看着很糟心,如何把这些文件分门别类的放在一起管理也是一种技巧 。所以电脑就有了文件夹的这种形式让我们对自己电脑里面的内容进行规整化的管理,如下图 。包就起着文件夹的作用,当一个程序中有很多类,就需要将这些类放在一起分组管理
包的可见性
+:表示共有的(),此元素可以被任何引入该包的包中的元素访问
-:表示私有的(),此元素只能被同一个包的元素访问
#:表示受保护的(),此元素可以被继承该包的包中的元素访问
包的图符

组件图、部署图  UML——实现图、包图

文章插图
包与包之间的关系
泛化:继承关系,用于说明包的家族
依赖(常用):如果两个包中的任意两个类之间有依赖关系,则这两个包之间有依赖关系
如何建立包图?
1.分析系统模型元素(通常是对象类),把概念上或语义上相近的模型元素纳入一个包
2.对于每一个包,标出其模型元素的可见性(公共、保护或私有)
3.确定包与包之间的依赖关系,特别是输入依赖
4.确定包与包之间的泛化关系,确定包元素的多重性与重载
5.绘制包图
6.包图精化
建包时要注意哪些问题?
在进行完前面的系统逻辑设计之后,下一步我们就需要定义设计的物理实现,如可执行文件、库、表、文件和文档等 。UML的实现图又分为了:组件图和部署图两部分
二、组件图
1.组件图:
用来描述软件组件以及组件之间的关系,组件本身是代码的物理模块,组件图则显示了代码的结构
2.组件的类型:
构件是定义良好的接口实现单元,它可以是一下几种类型:
源代码构件:源代码文件.h(库文件)/.cpp二进制构件:目标码文件、静态链接库.lib、动态链接库.dll可执行构件:可执行程序.exe数据文件或文档
3.组件的关系
实现
构件与其对应接口之间的关系
依赖
构件与其构件之间的关系
4.实例:
三、部署图
1.部署图:
在软件按照需求开发出符合要求的软件产品就可以使用了吗?不是的!软件开发人员还需要保证开出的软件产品能够在合适的硬件系统上运行 。部署图的作用就是如何显示运行软件系统的物理硬件,以及如何将软件部署到硬件上 。例如计算机和设备,以及它们之间是如何连接的
2.元素:
节点(Node):是一个物理元素,它在运行时存在,代表一个可计算的资源,通常占用一些内存和具有处理能力 。一个构件集合一般来说位于一个节点,但有可能从一个节点转到另一个节点
节点分为两种类型:处理器()和设备()