论文部分内容阅读
随着软件应用领域的不断扩展,社会对软件产品的需求也在急剧膨胀。经过近三十年的锤炼与积累的经验教训,软件组织已不再以开发出满足用户需求的产品作为唯一的项目成功目标,而是将控制预算、提高生产率、更有效利用资源等方面都列入了考虑范围。
对于软件组织而言,要获得组织整体的长远发展,需要实施量化项目管理、开发过程控制、持续过程改进等一系列措施,在项目的不同时期设立合理的控制点和决策点来指导和监控项目的进行情况。当前,全球性分布式开发、敏捷开发与开源代码开发等已经形成了软件开发的新趋势;同时,大型软件企业在选择外包承接商时需要考虑众多因素,包括软件开发过程因素、人员因素、产品技术因素等多项可以为他们的决策提供辅助支持的信息。软件项目相关的决策支持除了组织内部需求以外,也存在于其他场景。例如,政府在进行软件资助项目挑选时、在购买合同软件时,也需要更客观更严谨的对这些项目予以评价并作出决策。
而种种这些软件行业的决策支持所需要的信息主要借鉴两方面信息源,一方面是在行业或市场背景下的软件组织所积累的特征和经验数据,另一方面是来自学术研究领域的相关理论和模型的支持。正是在这样的应用环境下,软件工程领域的经验研究在过去的二十多年里逐渐兴起(最后演变为“经验软件工程”这个独立的研究方向),它强调从实际观察和历史数据中挖掘信息或设计一定的实验来进行对已有理论与模型的验证与推进。
本文以经验软件工程领域的研究特征为基础,提出了一种问题驱动的经验研究方法框架,以及遵循这个研究框架进行的实例化经验研究。其中主要的独创性内容包括:
提出了一种问题驱动的经验软件工程研究方法框架QD-ESE(Question-Driven Empirical Software Engineering),其结构上由开发实践层、经验研究层、经验管理层三个部分组成。在经验研究步骤的进行过程中,融合经验软件工程的研究成果,通过三个部分的交互,实现经验研究所需信息支持与利用、数据分析、知识提取与经验积累等工作。
通过对QD-ESE框架的实例化应用,实现了针对工作量分布的经验研究,分析了市场演变等五个维度对产品演化项目中工作量分布的影响。该实例足针对软件项目中对工作量阶段分布预测的困难而提出的。其中基于某组织系列版木的产品开发数据,从市场演变、产品内容、开发过程、开发团队与采用技术五个维度,分析了它们对各版本项目中的工作量分布的具体影响,为开发组织在项目中的工作量阶段分配提炼并积累了可以借鉴的实际经验。
在针对生产率的经验研究实例中,得到对中国软件行业生产率整体状况的调查结果,并发掘出开发类型、业务领域、团队规模等多个影响生产率差异的显著因素。该实例研究是在中国软件行业缺乏产业数据及相应的重要指标基准问题的实际背景下提出的,尤其针对产品演化项目。遵循QD-ESE研究框架,并基于首次发布并可用的中国软件基准组数据,对软件开发生产率的影响因子进行了分析,为软件组织在提高生产率和改善开发过程方面提供了有价值的数据、信息和建议。
最后,QD-ESE研究框架在针对软件成本估算的经验研究实例中进一步得到应用,提出了一套针对政府软件合同定价的估算建模方法并在政府资助等实际项目中予以应用。该实例是在分析政府在软件项目合同定价中遇到的挑战并发现软件成本预算与核算中问题的实际背景下提出的。最终,提出了针对政府软件合同定价的COGOMO成本估算模型(COnstructive GOvernment cost MOdel)。