技术开发 频道

基于复用的软件开发过程中的配置管理

    基于复用的软件开发 

    随着软件规模的不断扩大,人们对软件生产效率和质量的要求越来越高,长期以来,研究人员一直致力于提高软件生产率和软件质量.目前,人们逐渐认识到,软件复用是解决上述问题的现实可行的途径。

    基于复用的软件开发模型

    基于复用的软件开发主要分为两个方面:开发可复用构件和利用可复用构件进行开发.开发可复用构件是指将过去的软件产品改造成或直接开发出更复用的构件,这些构件应具有较高的质量和较好的可复用价值;利用可复用构件进行开发是指在已有的可复用构件的基础上构件应用系统,此时应保证复用已有构件比重新开发更有好处。

    开发可复用构件

    大多数软件人员进行软件开发时并没有考虑到复用,他们生产出的产品可复用性很差.例如,大量的程序只能运行在特定的环境中,程序模块存在着多种多样的调用关系,没有独立性和封装性,没有标准的接口,使得以后的开发很难将其复用.因此,基于复用的软件开发的一个重要方面,就是将复用性较差的软件产品改造成具有较高可复用性的构件。

    领域工程在构件开发中有着重要的地位.领域工程的主要思想是对应用于某一领域的已经存在的多个系统进行分析,通过相似系统之间的比较,寻找到该领域中存在的实体,关系和操作,并将它们进行抽象,最终改造为可复用的构件.构件开发出来后必须进行测试,以保证其可复用性。

    为了方便复用者找到需要的构件,对构件要进行分类,并将其存入构件库.构件的分类和构件的提取是密切相关的。

    利用可复用构件进行开发

    基于复用的软件开发者与传统的软件开发者的工作有很大的不同,他们不必一切从零做起,如不必编写所有的程序代码.主要任务是使用已存在构件库中的构件去构造满足用户需求的构件系统.用构件进行开发包括下述环节:

    构件提取 可复用构件可能数量庞大,它们应用于不同领域(如数据库管理和工程计算等),完成不同功能.为了方便复用者查找到,必须对构件进行有效的组织和管理,不同的构件系统提供了不同的分类和查询策略.好的分类和查询策略有助于提高查询的质量.基于关键词的分类和查询策略是一种最常见的分类和查询策略;REBOOT系统采用了一种基于刻面的分类方法,根据构件的抽象层次,功能,功能对象,环境依赖(不同平台)对构件进行描述和分类,在查询和提取构件时,复用者把对构件的要求转化为对刻面的描述,从构件库中查询和提取构件;JBⅢ中的构件系统采用了以刻面分类为主的多种分类和查询策略,这样可以结合各种策略的优点,提高查询的质量.另外,由于用户需求的不确定性,可能造成查询质量降低,因此构件库系统还可以提供模糊查询机制。

    构件的适应性修改 一般说来,提取出来的构件很难完全达到复用者的要求,复用者需要对这两者之间的差距进行评估,并对构件做一定的适应性修改,使之达到要求.构件的适应性修改包括三个方面:选择,修改和集成,其中修改是最重要的一个方面.复用的基本要求是复用构件的代价要小于重新开发的代价,如何减少构件修改的代价对复用是非常重要的。

    构件组装 找到所需的构件后,就要对构件进行组装,构件的组装并不一定要求将构件直接组装成应用系统,可以先将小粒度的构件组装成大粒度的构件,最后再组装成整个系统。

    软件开发环境对软件复用的支持

    整个基于复用的软件开发过程都离不开软件开发的环境的支持.软件开发环境将各种复用工具(如构件提取,构件组装,构件库的管理等)和开发工具集成一个系统,使各种工具能互相调用,协调工作;软件开发环境中所提供的通讯与并发机制加强了复用者之间的协调;软件开发环境为复用者提供了简单,一致和方便的界面。

    配置管理是软件工程环境的热点,在其中占有重要位置.在基于复用的软件开发过程中,配置管理也起了重要作用。

    基于复用的软件开发对配置管理的要求

    随着新技术(ActiveX,OLE,JAVA,IDL,COBRA等)的出现,软件复用对配置管理提出了新的需求,配置管理应记录项目中正在使用的构件与相应的在构件库中的构件的追踪关系;针对可复用构件,配置管理应记录更多的信息.实际上,配置管理和软件复用有着更密切的关系.复用使得软件开发分为两个阶段;可复用构件的开发和利用可复用构件进行开发,配置管理在这两个阶段中都能起到重要作用.
开发可复用构件时的配置管理

    可复用构件的开发也是一种开发,配置管理对软件开发的作用也可以在其中体现出来.提高可复用性是开发可复用构件的一个重要目标,目前主要从技术的角度研究如何提高可复用性,实际上,好的管理也对提高可复用性有着重要意义.构件的质量是构件可复用性的一个重要方面,构件使用者对构件质量的要求比对普通软件质量的要求要高.配置管理可以有效地提高构件的质量,从而提高其可复用性.另外,开发可复用构件时也可能会复用已有的构件。

0
相关文章