Like other sciences and engineering disciplines, software engineering requires a cycle of model building, experimentation, and learning. Experiments are valuable tools for all software engineers who are involved in evaluating and choosing between different methods, techniques, languages and tools. The purpose of Experimentation in Software Engineering is to introduce students, teachers, researchers, and practitioners to empirical studies in software engineering, using controlled experiments. The introduction to experimentation is provided through a process perspective, and the focus is on the steps that we have to go through to perform an experiment. The book is divided into three parts. The first part provides a background of theories and methods used in experimentation. Part II then devotes one chapter to each of the five experiment steps: scoping, planning, execution, analysis, and result presentation. Part III completes the presentation with two examples. Assignments and statistical material are provided in appendixes. Overall the book provides indispensable information regarding empirical studies in particular for experiments, but also for case studies, systematic literature reviews, and surveys. It is a revision of the authors book, which was published in 2000. In addition, substantial new material, e.g. concerning systematic literature reviews and case study research, is introduced. The book is self-contained and it is suitable as a course book in undergraduate or graduate studies where the need for empirical studies in software engineering is stressed. Exercises and assignments are included to combine the more theoretical material with practical aspects. Researchers will also benefit from the book, learning more about how to conduct empirical studies, and likewise practitioners may use it as a cookbook when evaluating new methods or techniques before implementing them in their organization.
Cited By
- Horkoff J, Aydemir F, Cardoso E, Li T, Maté A, Paja E, Salnitri M, Piras L, Mylopoulos J and Giorgini P (2019). Goal-oriented requirements engineering, Requirements Engineering, 24:2, (133-160), Online publication date: 1-Jun-2019.
- Pinheiro E, Lopes L, Conte T and Zaina L The contribution of non-technical stakeholders on the specification of UX requirements Proceedings of the XXXII Brazilian Symposium on Software Engineering, (92-101)
Recommendations
Experimentation in software engineering
Experimentation in software engineering supports the advancement of the field through an iterative learning process. In this paper we present a framework for analyzing most of the experimental work performed in software engineering over the past several ...
Improving Software Engineering Research Through Experimentation Workbenches
From Software Engineering to Formal Methods and Tools, and BackAbstractExperimentation with software prototypes plays a fundamental role in software engineering research. In contrast to many other scientific disciplines, however, explicit support for this key activity in software engineering is relatively small. ...