技术开发 频道

组件复用让软件开发事半功倍

【IT168 专稿】

  软件技术的不断发展给软件开发者带来了一个大问题:软件系统规模越来越庞大,开发周期越来越长,在一个系统中集成了各种功能使系统过于复杂,大多数功能不能灵活地装卸、单独升级或重复利用。而在削减开发成本的压力下,提高应用程序开发效率和质量,减少上市时间都使得开发人员承受着巨大的压力。
  
  软件开发已经不再是追求艺术创作的过程,而是尽可能地朝着工业化、标准化的方向发展。有人戏称:软件开发的非常好的方法是不进行任何开发。软件复用则正是朝着这一方向努力的一个表现。大多数有丰富经验的程序员都拥有自己的私人开发库,可以使他们有大约30%的复用代码来开发软件。面向组件的软件复用技术已成为近几年软件复用技术研究的热点,它正改变着软件系统的开发方式。

一.什么是软件复用?

  在越来越多的软件开发中,软件复用计划正慢慢开始成为标准开发过程中的强制执行部分。软件复用可以极大地降低开发成本和复杂性,但只有极少数的开发团队领悟到复用的潜力,将复用技术融入到软件开发生命周期之中。
  
  (1)什么是软件复用
  软件复用(Software Reuse)是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的成本。软件复用也是提高软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。
  
  因此,软件复用不仅仅是对程序的复用,它还包括对软件开发过程中任何活动所产生的制成品的复用,如项目计划、可行性报告、需求定义、分析模型、设计模型、详细说明、源程序、测试用例等。这里有一点需要区分清楚的是,在一个系统中多次使用一个相同的软件成分,则不称作复用,而称作共享;对一个软件进行修改,使它运行于新的软硬件平台也不称作复用,而称作软件移植。

  依据复用的对象,可以将软件复用分为产品复用和过程复用。产品复用指复用已有的软件组件,通过组件集成得到新系统。过程复用指复用已有的软件开发过程,使用可复用的应用生成器来自动或半自动地生成所需系统。过程复用依赖于软件自动化技术的发展,目前只适应于一些特殊的应用领域。
  
  产品复用是目前主流的途径,依据对可复用信息进行复用的方式,可以将软件复用区分为黑盒复用和白盒复用。黑盒复用指对已有组件不需作任何修改,直接进行复用。这是理想的复用方式。白盒复用指已有组件并不能完全符合用户的需求,需要根据用户需求进行适应性修改后才使用。实际上,在大多数应用的组装过程中,组件适应性修改是必需的。
  
  (2)什么是组件复用?
  软件复用的主要思想是将软件看成是由不同功能成分的“组件”所组成的有机体,每一个组件在设计编写时都被设计成可以完成同类工作的通用部件。这样,当完成各种工作的组件被建立起来后,编写一特定软件的工作就变成了将各种不同组件连接起来,这对于软件产品的最终质量和维护工作都有本质的改变。
  
  因此,软件组件(Software components)是共生于软件复用的,基于组件的软件复用是产品复用的主要形式,软件组件技术是当前复用研究的焦点。一般来说,软件组件是一种定义良好的、独立的、可复用的二进制代码,包括功能模块、被封装的对象类、软件框架和软件系统模型等。与面向对象编程语言不同,组件技术是一种更高层次的对象技术。它独立于语言,面向应用程序,只规定组件的外在表现形式,而不关心其实现方法。因此,组件最重要的特征是具有独立于应用的接口,这个优点可以使它不加修改或者基本不加修改就可作为一个部件和其它组件一起组装成更大的软件。
  
  在软件生命周期各阶段,组件复用可以是设计复用、代码复用或开发过程的其它产品复用。如程序模板、源代码或目标模块、需求说明、规格说明、程序说明、数据说明、测试说明和测试用例等。

0
相关文章