论文部分内容阅读
经验软件工程是一个新的研究热点,目前已经引起很多人的关注。在过去10几年,经验研究发展非常迅速,而且也逐渐变得成熟起来。目前国内从事这方面研究的人还很少,所以我们首次采用经验研究的方法对中国的软件企业的组件复用情况进行了研究。
在构建新系统时使用预制组件可以达到降低开发成本,缩短投放市场的时间,提高软件质量,遵循业界标准等目的,这种方式越来越受到重视。近来,在系统开发中使用开源(OSS,Open Source Software)组件逐渐流行起来。这种组件有很多优点,例如可以免费获得源代码并且可以修改源代码。事实上,很多OSS组件具有很高的可靠性,高性能性和鲁棒性。另一方面,在系统中复用OSS组件(一般指外部组件)在很多方面也存在一系列的挑战,例如从正确选择组件到将组件成功地集成到系统中,再到测试选择的组件。此外,如果开发的系统要重新发布或者在市场上销售,在选择和集成OSS组件时,选择合适的开源许可证很重要。
以前的很多关于基于OSS组件开发的研究主要是理论研究(特别是围绕如何选择组件)和一些关于业界的案例研究。最近,为了研究基于OSS组件开发的实际状况,一些研究者在欧洲三个国家进行了一项大范围调查研究。在中国,业界越来越多地使用和部署开源软件,特别是软件平台,像Linux,但是,国内关于业界如何高效地复用OSS组件的研究却很少。
为了研究国内软件企业在系统开发中使用OSS组件的状况,我们设计了一项基于问卷的调查。研究的主要内容在三个方面,也就是组件选择,开源许可条款和系统维护,当然我们也研究了软件企业使用OSS组件的动机问题。我们利用合作关系从国内的软件行业协会获得了一份中国软件企业的名单。在调查的最后,我们得到了43家公司反馈的47份已完成的项目的信息。调查结果表明,在定位OSS组件时,使用搜索引擎是最常用的方法。在评估候选的组件时,当地专家的意见结合需求的满意度是最主要的决定因素。为避免法律方面的麻烦,公司在使用OSS组件时所采取的策略是使用没有许可证限制的组件或者将自己的私有代码分别打包。有大约84%的组件需要修改bugs或者更改代码,但做这些修改基本上不依赖于开源社区的支持。另外,尽管很多开发者认为与开源社区建立密切关系对于系统维护很重要,但调查结果表明有很少的公司这样做。最后,关于使用OSS组件的动机问题,调查结果表明降低开发费用是主要的原因,另外OSS组件的高质量也是一个重要原因。