软件复用

软件复用分为实体复用和概念复用两类。实体复用有三个层次:应用系统复用、组件复用、对象和函数复用。概念复用指的是复用一个思想、一个方法、一个操作或一个算法,它可以嵌入在设计模式、可配置系统产品以及程序生成器等方法中。复用的好处在于降低开发成本、增加可靠性、降低过程风险、有效使用专家、标准一致等;坏处在于可复用的开发和维护成本高、推广可能遭遇不利。

软件复用的方法包含:体系结构模式、设计模式、应用框架、软件产品线、COTS 商业现货产品、ERP 企业资源规划系统、可配置垂直应用、遗留系统包装、程序库、模型驱动工程、程序生成器、面向方面的软件开发、基于组件的开发。

应用框架

框架是“一个由类、对象和组件构成的完整集合,它们共同提供一个面向一系列相关应用的可复用的体系结构”。框架规定了应用的体系结构、类和对象的分割、类和对象的协作关系、各部分的主要责任、以及控制流程。框架也会提供对一般功能的支持。在使用框架的基础上,应用设计者或实现者就能集中精力于应用本身的特定细节。

企业应用框架通常使用模型 - 视图 - 控制器(MVC)复合模式。作为设计模式的实现,一个 MVC 框架包含观察者模式、策略模式、组合模式以及其他多种模式。大多数 web 应用框架支持以下功能:安全性、动态页面、数据库支持、会话管理和 Ajax 等用户交互。

软件产品线

软件产品线是一组应用,它们有相同的体系结构和共享组件,每个具体的应用程序反映不同的客户需求。核心系统通过配置以适应不同需求。软件产品线和应用框架的不同点在于:

  1. 应用框架使用面向对象的方式进行扩展,它一般是不允许被修改的,可修改部分也在于框架所允许盛纳的组件。软件产品线运行进行修改、删除或重写。
  2. 应用框架侧重于技术支持,与特定的业务领域无关。软件产品线与业务领域相关,内嵌了领域和平台信息。
  3. 软件产品线由一系列相关的应用程序构成,以支持一系列业务过程;它可能和硬件设变打交道。如车辆调度系统可以演变为警务、消防和急救服务系统。

软件产品线的配置方式有两种:设计时配置(即在系统中添加或删除组件)、部署时配置(通过配置界面交由专家和客户进行配置)。

COTS 产品

COTS 产品分为 COTS 解决方案系统和 COTS 集成系统两类。COTS 解决方案系统是一个供应商提供的独立产品,开发侧重于维护,由供应商负责维护。COTS 集成系统可能来自不同供应商,由多个异构系统构成,由系统拥有者维护个性化功能,开发侧重于系统集成。

COTS 解决方案系统可以表现为一个 ERP 系统,它由多个模块构成一整套业务流程,如购买模块、供应链模块、物流模块、CRM 用户关系管理模块。配置过程可以选择要包含的模块,配置这些单个模块,定义业务过程和业务规则,定义系统数据库的结构和组织。

基于组件的开发

基于组件的软件工程包含如下要素:

  1. 独立组件由接口完全定义,其实现可以被替换。