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.
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.
From the reviews: "The revised edition includes new chapters and examples, which further cements its place as the premier book on the topics of designing, constructing, executing, and assessing experiments in software engineering. (...) The revisions will make this book even more valuable. (...) It ought to be required reading for all PhD students; every academic's bookcase should have a copy." (Michael Oudshoorn, Computing Reviews, October, 2012) "This book is a landmark in allowing us to train both the researcher and practitioner in software engineering experimentation." (Victor R. Basili, University of Maryland, MD, USA) "The additions and modifications in this revised version very nicely reflect the maturation of the field of empirical software engineering." (Anneliese A. Andrews, University of Denver , CO, USA) "The volume, a revised edition of a work by the same name ... published in 2000, presents a very useful review of methods in software engineering research. It is structured as a textbook, making it useful for an introductory graduate-level course or a fourth-year course at the undergraduate level. Practitioners and experts will also benefit from this book, as they can use it as a starting point for more in-depth approaches. ... Summing Up: Highly recommended. Upper-division undergraduates through professionals/practitioners." (L. Benedicenti, Choice, Vol. 50 (9), May, 2013)
`This is a well written and concise book, which provides the reader with the essentials necessary to design, conduct and analyse a software engineering experiment. Its value lies in that it is specifically written for the software engineering field, and has surveyed the major contributions by a number of leading researchers in this area. A `how to' book is always welcome, both as a useful starting point to the inexperienced and as a helpful reference and reminder of best practice to others.'
Software Testing Verification and Reliability, 11 (2001)
Software Testing Verification and Reliability, 11 (2001)