��早在50年代用机器语言编写程序的时期,计算正弦、余弦、对数等的标准子程序包就开创了复用的先河。到70年代的早期,在语言、数据结构、操作系统、程序变换等方面各种技术的发展,都与代码的复用有关。当时,复用的应用领域有限,软件的复用问题没有提到很重要的位置上来讨论。70年代的中期和后期开始,为了缓解软件危机,许多人寄希望于软件复用技术,因为在提高软件生产率与质量,以及减少软件开发时间和成本的努力中软件复用已经成了关键因素。当前,美、日一些大公司的资料表明,软件复用率最高可望达到90%,而且软件复用使得企业在及时满足市场、软件质量、软件开发费用和维护费用等方面得到显著的改进。 为了保证软件的复用,需要注意解决的问题主要有:
�� 复用必须以对被复用对象的理解为基础;
�� 如何表达对软件构件的需求;
�� 如何寻找有关的软件构件;
�� 如何识别是否满足要求;
�� 如何调整或修改构件使之满足要求;
�� 如何组装到新系统中;
�� 如何保证结果的正确性;
�� 如何进行效益的定量估算。只有当复用能带来效益时人们才会考虑复用。
��为了能够在软件开发过程中复用现有的软件构件,必须在此之前不断地进行可复用构件的积累,并且将它们组织成可复用构件库。因此,软件复用不但要讨论如何检索所需的软件构件以及如何对它们进行必要的修剪,而且还要解决如何选取可复用构件、如何组织可复用构件库等问题。 课文注释:近年来,新的应用软件开发技术和工具,都是以"构件"为关键,复用大粒度的"对象",快速开发应用软件为其特征的。这些新技术包括微软公司的Visual Basic,ActiveX,OLE;SUN公司的Java,OMG的CORBA,IDL等。软件构件的商业市场正日益发展,市场上出现了比传统的对象类更大的功能块,叫做ActiveX构件,OLE构件(OCXs)。非面向对象语言(如COBOL和Fortran)在复用实践中已经取得较大的成功。这些非面向对象语言构件技术的成功实践说明:实现软件复用并不限于面向对象语言构件或类库。 当日益增多的基于构件的应用软件开发成功的时候,人们认识到仔细定义软件体系结构和组织机构的重要性,这些方面的工作将在更大程度上有利于软件的复用。
��业务对象和构件可以由不同的人群定义和构造,但为满足业务信息系统的需要,这些人必须协同工作。面向构件的建模方法和CASE支持工具会变得日益重要。此外,软件复用的实践经验还表明,有效管理软件体系结构、过程和组织机构非常重要。