经验软件工程概述
经验软件工程(
经验之辩
Empirical
:指通过系统观察、实验或可验证的数据获得的知识,强调客观性、科学性和可重复性。
Experience
:指个人通过亲身参与或实践积累的知识、技能或感受,强调主观性和个体性。
人类的知识是不断迭代的,这一迭代是在与现实世界交互的过程中产生的。关于知识的具体看法,产生了不同的哲学立场。
//TODO:图片
哲学立场
Positivism
(实证主义):所有知识必须基于由现实世界观察得出的事实为基础的逻辑推导。Constructivism
(建构主义):知识是由个体在与现实世界交互的过程中建构的,科学知识无法从人类、社会和文化的影响中分离出来。Transformative
(变革主义):研究的过程应该与社会与政治相关。Pragmatism
(实用主义):知识是在实践中产生的,知识的价值取决于它的获取方式和实际应用。任何知识都是暂时的、相对的、不完全的。
经验研究的过程
经验研究的过程一般包含六个步骤:Asking research questions
(提出实验问题)、Selecting empirical methods
(选择实验方法)、Designing empirical study
(设计实验研究)、Collecting data
(收集数据)、Analyzing data
(分析数据)和Reporting empirical study
(报告结果)。
- 提出实验问题:一般来说,问题主要包含两个种类:
Exploratory
(探索性)和Explanatory
(解释性)。探索性的问题通常用于发现新的现象和关系,经常使用定性研究方法;解释性的问题通常用于验证理论和模型,经常使用定量研究方法。提出的问题应该保证范围合理、存在可验证性、具有实际意义。 - 选择实验方法:实验方法的选择取决于哲学立场、研究问题的性质、资源的可获取性、研究者自身的经验等因素。常见的实验方法包括:
Survey
(调查)、Case study
(案例研究)、Experiment
(实验)、Ethnography
(民族志)、Action research
(行动研究)等。//TODO:图片 - 设计实验研究:实验研究通常分为
Observational Studies
(观察性研究)和Experimental Studies
(实验性研究)。观察性研究是通过观察现象来推断因果关系,实验性研究是通过设计实验来验证因果关系。实验研究的设计应该包含实验对象、实验变量和测度、具体实验过程、结论泛化能力等内容。 - 收集数据:数据的收集方式同样取决于研究问题的性质和实验方法的选择。数据的收集分为直接的和间接的。直接的数据收集方式包括实验、问卷调查、访谈、参与观察、焦点小组等;间接的数据收集方式包括文献调研(二级研究)、数据库分析(内容分析)等。
- 分析数据:数据分析方法主要分为定量和定性两类。定量的数据分析方法如统计学方法、模拟、
meta-analysis
(元分析)等;定性的数据分析方法如定量化分析、数据建模和可视化、提出理论等。 - 报告结果:实验研究的结果报告有一系列
Guidelines
(指导方针),总体上包括透明度、可重复性、结论的一致性、结论的泛化能力等。