The Core Evaluation of a Software Engineering Research Result Must Be Empirical in Nature

This paper discusses the role of empirical evaluation in software engineering (SE) research and defends empirical approaches as the core part of the evaluation process for research results. We first describe SE research and the evaluation process with its important aspects. We then focus on empirical evaluation and highlight its crucial role in assessing SE research results. 1 Software engineering research Research in SE aims to achieve two main goals: 1) To increase the knowledge about what are useful in the SE discipline; 2) To introduce cost effective solutions to problems in SE. To demonstrate the results of SE research from different points of view, a set of questions can be used, ranging from how superior the new techniques are compared with the previous ones, to how they improve the software process [1]. 2 Evaluation of software engineering research The evaluation process for SE research assesses how much the initial claim of the research is achieved and how well the related research questions have been addressed. The quality of these answers is determined by how the evaluation is conducted and is important for assessing the reliability of research results. The evaluation methods depend on the type of a specific study and the claim it makes, varying from theory or method development to system analysis. However, from the SE point of view, the essential part of the evaluation is to convince people the reliability and the effectiveness of the claim, which is mostly related to the usability of the research results in future SE research studies and SE practices. We believe that the ability to evaluate the research results is a main factor in distinguishing good SE research from bad SE research. 3 Empirical evaluations 3.1 Empirical studies in software engineering The aim of empirical studies in SE is to provide a scientific and thus more rational basis for understanding, evaluating, predicting, controlling, and improving tools, methods, and techniques used in SE [3]. Empirical studies collect and analyze observations about theories, models, and systems, based on instances from either the real world or the models of the real world [6]. Controlled experiments and case studies are examples of empirical studies. Among all empirical studies, empirical evaluation especially focuses on providing evidences that support research results. 3.2 The purposes of empirical evaluation As any other evaluation method, empirical evaluation depends on the initial claim of the research. It assesses not only the success of the research based on the claim but also the effect of the claim on its applications. Moreover, empirical evaluation obtains a generalized prevision of how successful SE research results would be in the real-world practices. The generality of empirical evaluation is based on statistical theory of sampling, which is widely accepted by many other science disciplines as well. There are statistical guidelines on collecting data and assessing the confidence of the experimental results. For some specific set of problems, sampling is even moved further by having standard benchmarks. Finally, empirical evaluation of the existing techniques may serve as the motivation of developing new hypotheses and techniques. 3.3 The importance of empirical evaluation First of all, conducting experiments is a general approach to validate any idea in sciences [2]. It has been well known that software is complex, invisible, and difficult to visualize [5]. Due to such essential properties of software, it is hard to assess the success of an existing SE technique in different domains; it is even harder to predict the effect of a new SE technique on real-world applications. On one hand, non-empirical evaluation methods may be hard to find or even not exist in many cases, where deriving a sufficiently precise model of the problem space is difficult. To prove SE research results in a theoretical manner, we need make assumptions to reduce the complexity and build a simplified model. However, big assumptions are usually problematic when applied to the real world, and it is hard to map a simplified model to the complex real world. For example, a research work on software analysis claims cost reduction and uses asymptotic bounds in its evaluation. Such theoretical evaluation may not be strong enough for the SE community, because asymptotic bounds are not sufficient to convince people that the method will achieve the asserted cost reduction in real programs. This is due to the difficulty in mapping the evaluation model to the real applications. On the other hand, based on statistical methods such as sampling, empirical evaluation can access the full complexity of the real world, and give a realistic view of SE research results. Following the claim that the success of SE research is usually determined by its application to the real world, empirical evaluation is especially important in the field of SE. As shown in paper [2], SE research papers do have a higher percentage of empirical work than those from other areas of computer science. Therefore, based on the nature of software and the goals of SE research, we claim that the core evaluation of a software research must be empirical.