经验调查
经验调查涉及对任何工具、技术或方法的科学调查。此调查主要包含以下 4 个原则。
- 选择调查技术
- 陈述假设
- 控制变量
- 使调查有意义
选择调查技术
软件工程中经验调查的关键组成部分是 -
- 调查
- 案例研究
- 正式实验
调查
调查是对某种情况的回顾性研究,以记录关系和结果。它总是在事件发生后进行。例如,在软件工程中,可以进行调查以确定用户对特定方法、工具或技术的反应,以确定趋势或关系。
在这种情况下,我们无法控制手头的情况。我们可以记录一种情况并将其与类似的情况进行比较。
案例研究
这是一种研究技术,您需要识别可能影响活动结果的关键因素,然后记录活动:其输入、约束、资源和输出。
正式实验
这是一项对活动进行的严格控制的调查,其中识别并操纵关键因素以记录其对结果的影响。
可以根据以下指南选择特定的调查方法 -
如果活动已经发生,我们可以进行调查或案例研究。如果尚未发生,则可以选择案例研究或正式实验。
如果我们对可能影响结果的变量有很高的控制力,那么我们可以使用实验。如果我们无法控制变量,则案例研究将是首选技术。
如果在较高层次上无法进行复制,则无法进行实验。
如果复制成本低,则可以考虑实验。
陈述假设
为了促进特定调查技术的决策,研究的目标应表达为我们要检验的假设。假设是程序员认为解释他们想要探索的行为的暂定理论或假设。
控制变量
在陈述假设之后,接下来我们必须确定影响其真实性的不同变量以及我们对其有多少控制权。这一点至关重要,因为实验和案例研究之间的关键区别在于影响行为的变量的控制程度。
状态变量是可用于表征项目并可能影响评估结果的因素,用于在正式实验中区分控制情况和实验情况。如果我们无法区分控制和实验,则案例研究技术将是首选技术。
例如,如果我们想确定编程语言的变化是否会影响项目的生产力,那么语言将是一个状态变量。假设我们目前使用 FORTRAN,我们想用 Ada 替换它。那么 FORTRAN 将是控制语言,Ada 将是实验语言。
使调查有意义
实验结果通常比案例研究或调查更具普遍性。案例研究或调查的结果通常仅适用于特定组织。以下几点证明了这些技术在回答各种问题的有效性。
符合理论和传统智慧
案例研究或调查可用于确认传统智慧以及许多其他标准、方法或工具在一个组织中的有效性和实用性。但是,正式实验可以调查这些主张普遍成立的情况。
探索关系
案例研究或调查可以表明资源和软件产品的各种属性之间的关系。
例如,对已完成项目的调查可能会发现,用特定语言编写的软件比用其他语言编写的软件错误更少。
了解和验证这些关系对于任何未来项目的成功至关重要。这些关系中的每一个都可以表达为一个假设,并且可以设计一个正式的实验来检验这些关系成立的程度。通常,通过保持其他属性恒定或受控来观察一个特定属性的值。
评估模型的准确性
模型通常用于预测活动的成果或指导方法或工具的使用。在设计实验或案例研究时,它提出了一个特别困难的问题,因为它们的预测通常会影响结果。项目经理经常将预测转化为完成的目标。当使用成本和进度模型时,这种影响很常见。
一些模型(例如可靠性模型)不会影响结果,因为衡量为平均故障时间(MTTF)的可靠性只有在软件准备好用于现场后才能进行评估。
验证度量
有许多软件度量来捕获属性的值。因此,必须进行一项研究来检验给定的度量是否反映了它应该捕获的属性的变化。通过将一个度量与另一个度量相关联来执行验证。应使用第二个度量(也是影响因素的直接且有效的度量)来进行验证。此类度量并不总是可用或易于测量。此外,所使用的度量必须符合人们对正在测量的因素的认识。