【设计模式】UML建模之包图、组件图和部署图学习笔记

UML建模中包图、组件图和部署图学习笔记

对于较大的项目进行UML建模,由于有很多的类和用例,仅仅利用类图和用例图的话,常常会使结构变得更为复杂。此时如果可以以功能模块划将类图和用例图进行封装,可以很好地简化结构图,让开发人员或者使用人员更容易看懂整个结构或流程。此时包图会是不错的选择。利用包图可以封装相同类型的类或用例,包与包之间利用不同的联系进行连接。此时,庞大复杂的系统变成了,一目了然的关系图。顿时,整个系统的架构都尽收眼底。

而组件图和部署图,个人感觉则是它们之间有点相似,如果说组件图把整个系统中用到的组件进行了虚拟的连接的话,那么部署图则是把整个系统所需硬件设备的物理连接体现了出来。

下面分别将这三种图进行一个总结。

1      包图

什么是包图

书上给出的包的定义:包是将一些具有共性的类组合在一起。在ROSE建模中包的作用相当于目录结构。但它与某些编程语言的包组织功能相对应,实际上它与Java语言的包概念十分相似。在UML中包用如下图所示。

包图不仅仅能封装类

而包图不仅仅局限于封装类,对于用例,组件等其他模型元素也可以进行封装,甚至一个包可以嵌套到另一个包中,进行包的封装。

包图中包之间的关系

包之间和类之间一样可以画出依赖性关系。包依赖性也可以用虚线箭头表示,如图所示。

从NewPackage1到NewPackage2的依赖性关系表示NewPackage1中的某些类与Package2中的某些类存在单向关系。也就是说,NewPackage1中的某些类要知道NewPackage2中的某些类。这具有复用意义。如果两个包存在如上依赖关系,则NewPackage1包依赖于NewPackage2包。由于存在依赖关系,因此不能直接在一个应用程序中复用NewPackage1,但可以复用NewPackage2包,因为后者没有依赖于其他包。

包图中最好不要有循环依赖关系

要确定包依赖关系,就要检查类图中的关系。如果不同包中的类之间有关系,则包也有关系。而且创建包依赖性关系时,要尽量避免循环依赖性关系。循环依赖性如图所示。

此时Package1包中的某些类要知道Package2中的某些类,而Package2包中的某些类又要知道Package1包中的某些类,这样两个包都不容易复用,一个包改变时会影响另一个包。这样会失去包封装性的好处。如果要破坏循环依赖性,可以将一个包一分为二。比如我们要破坏上图的依赖循环性,那么可以将Package2包中的Package1包所依赖的类移到Package3中。如图所示。

这样更能体现包图的实际运用意义,使每个功能都模块化并封装成包,并且尽最大程度降低模块之间,也就是包之间的耦合度。

2      组件图

什么是组件图

书上的定义:组件图是个UML框图,用来显示系统中的组件及其相互依赖性。在组件图中,我们着重考虑的是系统的实际结构。主要描述的是系统组件及其相互依赖性关系。这里我们定义组价是代码的物理模块。它包括代码库和运行文件。比如,我们使用C++语言,那么每个.cpp和.h文件都是单独的组件。编译后生成的.exe文件也是组件。

组件的类型

1)        实施构件:这类构件是构成一个可执行系统必要和充分的构件,例如动态链接库(dll)、可执行文件(exe),另外还包括如COM+、CORBA及企业级Java Beans、动态Web页面也属于实施构件的一部分

2)        工作产品构件:这类构件主要是开发过程的产物,包括创建实施构件的源代码文件及数据文件。这些构件并不是直接地参与可执行系统,而是用来产生可执行系统的中间工作产品

3)        执行构件:作为一个正在执行的系统的结果而被创建的,例如由DLL实例化形成的COM+对象

组件之间的关系

组件之间不仅仅只有依赖关系。组件实现了某个接口的话,那么组件与接口之间的关系就是实现关系。另外,关联、继承关系也可以在组件之间体现。

所以组件图可以有四种关系,依赖、实现、关联和继承。

3      部署图

什么是部署图

相比组件图,部署图考虑的是应用程序的物理部署,如网络布局和组件在网络上的位置的问题。部署图显示了网络中的所有结点、结点间的连接和每个结点上运行的过程。它是对硬件物理设备的描述。如图就是一个部署图的例子。

部署图中主要包括处理器和设备。处理器和设备都是网络上的节点。

部署图的基本要素

1.      处理器

处理器是任何具有处理功能的及其。服务器、工作站和其他具有处理功能的机器都是处理器。在UML中处理器用下面符号表示:

处理器有很多细节问题,比如它的处理器版型、特性和计划等信息。

2.      设备

设备是没有处理功能的及其或硬件,包括哑终端、打印机、扫描仪等。在UML中,设备用下面的符号表示:

和处理器一样,设备也有各种细节,比如它的版型。特性等。这些细节与处理器大致相似。

3.      结点之间的连接

连接是两个处理器、两个设备或处理器与设备之间的实际连接。通常,连接表示网络结点之间的物理网络连接。连接也可以表示两个结点间的Internet连接。同时,连接可以指定版型,也可以指定连接的特性。

  • 11
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路易斯·李

点个赞再走呗 :)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值