为什么要在软件工程领域开展实验和其他经验研究呢?主要原因是采用定量的经验研究方法可以为软件开发的理解、控制、预测和改善提供客观且具有统计学意义的结果。对于寻求改进的组织而言,经验研究是其做决策时的重要依据。
在引入一种新技术、新方法或其他工作方式之前,最好针对这个改进的优点做一次经验评估。本节将介绍一个评估软件过程变化的框架,针对桌面、实验室和开发项目三种情境推荐不同的经验策略。
要成功地完成软件开发,有一些基本的要求[7,8,42]:
(1)理解软件过程和产品;
(2)定义过程和产品质量;
(3)评估成功和失败;
(4)为项目控制提供反馈信息;
(5)从经验中学习;
(6)整理并重用相关经验。
无论是对工业界的、学术界的软件工程研究,还是寻求持续改进的学习型组织的软件工程研究,经验研究都是达到以上要求的重要方法。Basili在提出质量改进范式(Quality Improvement Paradigm)[7]时同时提出的经验工厂(Experience Factory)就是学习型组织的一个范例,在本节的后续部分将进一步描述。该方法也包括一个通过度量来定义和评估一组操作目标的机制,即所谓的目标/问题/度量标准GQM(Goal/Question/Metric)方法[17],下文中将详细介绍。关于GQM方法更详细的介绍参见van Solingen和Berghout [172]。