目录

一、包图

为什么会产生包?

包有哪些作用?

包的可见性

包的图符

包与包之间的关系

如何建立包图?

建包时要注意哪些问题?

二、组件图

三、部署图

项目应用


一、包图

为什么会产生包?

对复杂系统进行建模时,经常需要处理大量的类、接口、组件、节点和图,这时就有必要将这些元素进行分组,把那些语义相近并倾向于一起变化的元素组织起来加入同一包,这样方便理解和处理整个模型,同时也便于轻松地控制这些元素的可见性,使一些元素在包外可见,一些元素是隐藏在包内的。

设计良好的包是高内聚、低耦合的,并且对其内容的访问具有严密的控制

注意:若包被撤销,则其中的元素也被撤销了


包有哪些作用?

在我们的电脑桌面上,如果有很多各种各样的文件散落是不是看着很糟心,如何把这些文件分门别类的放在一起管理也是一种技巧。所以电脑就有了文件夹的这种形式让我们对自己电脑里面的内容进行规整化的管理,如下图。包就起着文件夹的作用,当一个程序中有很多类,就需要将这些类放在一起分组管理

                                                             


包的可见性

+:表示共有的(public),此元素可以被任何引入该包的包中的元素访问

-:表示私有的(private),此元素只能被同一个包的元素访问

#:表示受保护的(protected),此元素可以被继承该包的包中的元素访问


包的图符

                                                           


包与包之间的关系

泛化:继承关系,用于说明包的家族

依赖(常用):如果两个包中的任意两个类之间有依赖关系,则这两个包之间有依赖关系

                                               


如何建立包图?

1.分析系统模型元素(通常是对象类),把概念上或语义上相近的模型元素纳入一个包

2.对于每一个包,标出其模型元素的可见性(公共、保护或私有)

3.确定包与包之间的依赖关系,特别是输入依赖

4.确定包与包之间的泛化关系,确定包元素的多重性与重载

5.绘制包图

6.包图精化


建包时要注意哪些问题?

  • 避免循环依赖产生
  • 测试时可以以包为测试单位
  • 应该尽量把概念和语义上相接近的元素的包含在同一个包中
  • 对于一个包,找出哪些包内的元素是可以在包外访问的,把这些元素标记为公共的,其他所有元素都标记为受保护的或者私有的

在进行完前面的系统逻辑设计之后,下一步我们就需要定义设计的物理实现,如可执行文件、库、表、文件和文档等。UML的实现图又分为了:组件图和部署图两部分

二、组件图

1.组件图:

用来描述软件组件以及组件之间的关系,组件本身是代码的物理模块,组件图则显示了代码的结构

2.组件的类型:

构件是定义良好的接口实现单元,它可以是一下几种类型:

  1. 源代码构件:源代码文件.h(库文件)/.cpp
  2. 二进制构件:目标码文件、静态链接库.lib、动态链接库.dll
  3. 可执行构件:可执行程序.exe
  4. 数据文件或文档

3.组件的关系

实现构件与其对应接口之间的关系
依赖构件与其构件之间的关系

4.实例:

                                         


三、部署图

1.部署图:

在软件按照需求开发出符合要求的软件产品就可以使用了吗?不是的!软件开发人员还需要保证开出的软件产品能够在合适的硬件系统上运行。部署图的作用就是如何显示运行软件系统的物理硬件,以及如何将软件部署到硬件上例如计算机和设备,以及它们之间是如何连接的

2.元素:

节点(Node)是一个物理元素,它在运行时存在,代表一个可计算的资源,通常占用一些内存和具有处理能力。一个构件集合一般来说位于一个节点,但有可能从一个节点转到另一个节点

节点分为两种类型:处理器(Processor)和设备(Device)

  •  处理器

是能够执行软件、具有计算能力的节点,服务器、工作站和其他具有处理能力的机器都是处理器。

  • 设备

是没有计算能力的节点,通常情况下都是通过其接口为外部提供某种服务,哑终端、打印机和扫描仪都属于设备。

3.关联关系

  

依赖

组件和组件之间
关联对节点间的通信路径或连接进行建模

4.实例

                                  


项目应用

组件图

                                          

部署图

                                             

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐