软件构件与中间件技术
作者:林慧苹(北京大学软件与微电子学院) 日期:2021-07-24
1. 为什么需要软件构件
软件构件的核心目标是实现 投入少、质量高、时间短 的软件开发。其主要途径包括:
- 更有效的软件生产:提高移植性、功能性、维护性、可靠性和易用性
- 软件复用:通过复用现有构件,提高开发效率和软件质量
软件构件技术以 构件 + 构件之间的关系 为核心,适应 网络环境 下的软件分布式开发。
传统行业中的构件概念
传统行业(如机械、建筑、计算机硬件)通过 标准化零部件 实现复用,这种模式是软件产业工程化的必由之路。
2. 软件复用的历史与方法
软件复用的产生
- 1968 年 NATO 软件工程会议上,McIlroy 提出了 “大量生产的软件构件” 的概念
- 面向对象技术逐步成为主流,为软件复用提供了技术支持
- 软件复用被视为解决软件危机、提高软件生产效率和质量的现实可行途径
软件复用的主要方法
- 产品复用:复用已有的软件构件,通过集成(组装)得到新系统
- 过程复用:复用已有的软件开发过程,使用可复用的应用生成器自动或半自动生成系统
- 过程复用依赖于软件自动化技术的发展,目前只适用于一些特殊应用领域
- 产品复用是目前现实的、主流的途径
3. 软件构件的定义与特点
软件构件的定义
软件构件是 系统中可以明确辨识的构成成分,具有以下特点:
- 可复用:可复用软件构件(Reusable Software Component: RSC)
- 独立性:可以被独立部署,由第三方组装
- 接口规范:具有约定式规范的接口,明确的依赖环境
构件的组成
- 构件规约(Specification):关于构件的知识,包括功能信息、使用说明、运行环境信息等
- 构件实现(Implementation):构件内部的代码实现体,描述如何完成构件功能
4. 领域工程与应用工程
领域工程
领域工程是获取可复用软件构件的主要途径,通过以下步骤实现:
- 领域分析:建立领域需求定义、领域术语字典、领域面向对象分析模型
- 领域设计:开发领域设计模型,如特定于领域的软件构架(DSSA)
- 领域实现:实现领域构架和构件,并建立可复用构件库
应用工程
应用工程是利用领域工程结果进行软件开发的过程,包括:
- 系统分析:根据领域分析模型和用户需求,固定变化性需求
- 系统设计:以 DSSA 为基础,获取具体系统设计模型
- 系统实现:集成构件与构架,实现最终应用系统
5. 构件的分类与实现模型
构件的分类
- 领域构件:特定于应用领域的构件成分
- 基础构件:特定于计算机系统的构件成分
实现模型
- OMG 的 CCM 模型:将构件的接口与实现进行有效分离
- 微软的 COM 模型:支持运行态的软件构件
- SUN 的 EJB 模型:支持分布式对象技术
6. 构件的获取、管理与复用
构件的获取
- 从头开发新构件
- 从现有系统中提炼(领域工程)
- 演化现有构件
构件的管理
- 构件的描述、分类与检索:通过刻面分类法、属性-值分类等方式管理构件
- 构件库管理系统:支持构件的描述、分类、检索和复用
7. 软件构件与面向对象的关系
- 面向对象:对象是纯技术性的,不涉及独立性和封装性,几乎不被出售或部署
- 软件构件:部署单元,基于构件技术的成功市场正在形成
8. 成功复用的特点
- 将复用范围缩小在一个特定领域
- 有一个良好的系统框架对应用系统进行支持
- 构件接口明确
9. 总结
软件构件技术是解决软件危机、提高软件生产效率和质量的重要手段。通过领域工程和应用工程的结合,可以实现软件的高效复用和开发。