组件图介绍
组件图是用来描述组件与组件之间关系的一种UML图,组件图在宏观层面上显示了构成系统某一特定方面的实现结构。它是一种结构型图表。
组件图明确了系统设计,降低了沟通成本,而且按照面向对象方法进行设计的系统和子系统保证了低耦合度,提高了可重用性。
组件图可以用来显示编译、链接或执行时组件之间的依赖关系,以及组件的接口和调用关系。
组件图的组成元素
组件图由组件,接口,组件图中的关系,端口组成
组件(Component)
组件(Component)是系统设计的一个模块化部分,它隐藏了内部的实现,对外提供了一组接口。
组件是一个封装好的物理实现单元,它具有自己的身份标示和定义明确的接口。由于它对接口的实现过程与外部元素独立,所以组件具有可替换性。
一般来说,组件就是一个实际的文件或者多个文件组成的可执行程序。
组件分为如下几种:
1.源代码组件:一个源代码文件或者与一个包对应的若干个源代码文件。
2.二进制组件:一个目标码文件,一个静态的或者动态的库文件。
3.可执行组件:在一台处理器上可运行的一个可执行的程序单位,即所谓可执行程序。
接口
对于一个组件而言,它有两类接口,提供接口与需求接口。
1.提供接口:又被称为导出接口或供给接口,是组件为其他组件提供服务的操作的集合。
2.需求接口:又被称为引入接口,是组件向其他组件请求相应服务时要遵循的接口。
商品组件提供商品相关的接口,订单组件需要调用商品组件提供的接口。
端口(Port)
端口(Port) 是一个被封装的组件的对外窗口,在封装的组件中,所有出入组件的交互都要通过端口。它是被封装的组件与外界的交互点,遵循指定接口的组件通过它来收发消息。
组件间的关系
组件间的关系有两种:
1.依赖关系
依赖关系分为两种,一种是组件与需求接口之间建立依赖关系;另一种是组件与组件之间建立依赖关系,说明在运行过程中A某些行为上依靠组件B的支持
2.泛化关系
组件与提供接口之间建立实现关系
组件图的建模技术
1.对源代码结构建模
识别出同一功能点的源代码文件集合,并建模为组件
如果系统规模较大,使用包对组件进行分组
使用接口和依赖关系来表示这些源文件之间的关系
检查组件图的合理性,并识别源代码文件的优先级以便进行开发工作
2.对可执行程序结构建模
识别出相关的运行组件集合
考虑集合中每个组件的类型
如果系统规模较大,可以使用包对组件进行分组。这里包的使用可以对应于相应文件的文件存储结构。
分析组件之间的关系,使用接口和依赖关系建模这些关系。
考量建模结果是否实现了组件的各个特性,对建模的结果进行细化。
综合例子
下图展示了一个购物网站的组件图。
总结
本文详细介绍了组件图,组件图是一种描述组件以及组件之间关系的结构型图表。首先介绍了组件中的各种组成元素,接着介绍组件的建模技术,最后提供了一个实际案例。希望对读者朋友们有所帮助。