电脑/网络 >> 软件
CBD(基于构件的软件开发)的原理需要先了解什是构件(也称为组件)。构件的内涵非常丰富,因此在CBD的发展阶段出现了许多不一致的定义和容易混淆的概念,例如对象、中间件、框架、软件架构、子系统、COTS和产品线。以下是一些理论家和实践者对构件的不同看法:
一、构件的描述性定义
1. Brown和Wallnau认为构件是“系统中的一个非平凡、几乎独立、可替换的部分,在定义完善的体系结构环境中实现某一清晰的功能”。他们进一步指出,软件构件只能是“一个说明了合同并且明显地与语境无关的组合单元”。
2. Clemens认为构件是一个独立部署的单元,是一个第三方合成的单元,构件没有一致性的状态。
3. OMG的定义更通俗、详细一些,构件是一个物理的、可替换的系统组成部分,它包装了实现体且提供了对一组接口的实现方法。构件表示了系统实现体的一个物理片段,包括软件代码(源代码、二进制代码或可执行代码),或者等同体,例如脚本或命令文件。构件自身必须相容于接口且实现接口,接口表示了驻留在构件内的成分所实现的服务。
4. Gartner Group定义:运行时软件构件是一个可动态绑定的、含一个或多个程序的软件包,它作为一个独立单位,通过运行时可辨别的文档化接口加以管理和存取。
5. Bertrand Meyer定义了构件的七个条件,包括可被其它软件成分使用、客户的使用不干扰构件的开发者、包括依赖的全部说明、提供功能的精确说明、可以和其它构件合成、可以快速且平滑地集成到系统。
二、构件的理论模型
在理论上,对构件模型一直存在争论,有代表性的理论模型包括:
1. 3C模型:从概念、内容和语境三个不同方面来描述构件。
2. REBOOT模型(刻面模型):基于已有软构件的一种刻面分类和检索模型,从各个角度刻画软构件属性。
3. 青鸟模型:以三个视角(形态、层次和表示)和九个方面定义构件模型,更多地关心构件的易理解性、封装性及间关系。
温馨提示:答案为网友推荐,仅供参考