一,什么是构件图?
构件图从软件架构的角度来描述一个系统的主要功能,如子系统,类,包,构件等。使用构件最重要的是复用。
构件图的组成:构件,接口,关系。
构件图示例:
二,关于构件
1,什么是构件?
构件(component)是系统中遵从同一组接口且提供其实现的物理的,可替换的部分。
每个构件能实现一定的功能,为其它构件提供使用接口,方便软件的复用。
构件举例:
对象库,可执行体,com+,企业级java bean
2,构件的类型
1,源代码构件
源代码文件
2,二进制构件
目标码文件,静态链接库,动态连接库
3,可执行构件
可执行程序
4,数据文件或文档
3,构件和类
类表示逻辑抽象,而构件表示物理抽象。
构件是其他元素的物理实现。
类可以直接拥有属性和操作,一般情况下,构件一般只拥有只能通过其借口访问的操作。
4,构件的特点
构件是物理的;
构件是可替换的;
构件是系统的一部分;
构件遵从一组接口并提供对一组接口的实现;
三,接口
构件的接口和类的接口类似,都是通过接口来重用一些操作。组件的接口分为两类:
导出接口(export interface):导出接口由操作的组件提供。
引入接口(import interface):访问服务的组件使用导入接口。
接口的好处:有利于软件系统的构件重用。
四,构件图中的关系
在构件图中,包含:依赖,泛化,关联和实现关系,如下图示例:
五,构件图中的一些图标
1,子程序规范和子程序体
2,主程序
3,包规范和包体
包规范表示程序中的头文 件,包含类的函数原型信息。
4,任务规范和任务体
5,数据库
六,构件图示例
如图所示,用C++建立系统,每个类有自己的头文件和体文件,因此图中每个类映射自己的构件,例如ATM屏幕类映射两个ATM屏幕构件。这两个ATM屏幕构件表示ATM屏幕类的头和体。阴影构件称为包体,表示C++中ATM屏幕类的体文件(.cpp),构件版型是package
body。无阴影的构件称为包规范,这个包规范表示C++类的头文件(.H),构件版型是package
specification。构件ATM.exe是个任务规范,表示处理线程,是一个可执行程序。