This book gathers chapters from some of the top international empirical software engineering researchers focusing on the practical knowledge necessary for conducting, reporting and using empirical methods in software engineering. Topics and features include guidance on how to design, conduct and report empirical studies. The volume also provides information across a range of techniques, methods and qualitative and quantitative issues to help build a toolkit applicable to the diverse software development contexts
This book presents contemporary empirical methods in software engineering related to the plurality of research methodologies, human factors, data collection and processing, aggregation and synthesis of evidence, and impact of software engineering research. The individual chapters discuss methods that impact the current evolution of empirical software engineering and form the backbone of future research. Following an introductory chapter that outlines the background of and developments in empirical software engineering over the last 50 years and provides an overview of the subsequent contributions, the remainder of the book is divided into four parts: Study Strategies (including e.g. guidelines for surveys or design science); Data Collection, Production, and Analysis (highlighting approaches from e.g. data science, biometric measurement, and simulation-based studies); Knowledge Acquisition and Aggregation (highlighting literature research, threats to validity, and evidence aggregation); and Knowledge Transfer (discussing open science and knowledge transfer with industry). Empirical methods like experimentation have become a powerful means of advancing the field of software engineering by providing scientific evidence on software development, operation, and maintenance, but also by supporting practitioners in their decision-making and learning processes. Thus the book is equally suitable for academics aiming to expand the field and for industrial researchers and practitioners looking for novel ways to check the validity of their assumptions and experiences. Chapter 17 is available open access under a Creative Commons Attribution 4.0 International License via link.springer.com.
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.
This book constitutes the thoroughly refereed post-proceedings of the International Dagstuhl-Seminar on Empirical Software Engineering, held in Dagstuhl Castle, Germany in June 2006. The 54 revised full papers in this state-of-the-art survey are organized in topical sections on the empirical paradigm, measurement and model building, technology transfer and education, as well as roadmapping.
Empirical research has now become an essential component of software engineering yet software practitioners and researchers often lack an understanding of how the empirical procedures and practices are applied in the field. Empirical Research in Software Engineering: Concepts, Analysis, and Applications shows how to implement empirical research pro
Nowadays, societies crucially depend on high-quality software for a large part of their functionalities and activities. Therefore, software professionals, researchers, managers, and practitioners alike have to competently decide what software technologies and products to choose for which purpose. For various reasons, systematic empirical studies employing strictly scientific methods are hardly practiced in software engineering. Thus there is an unquestioned need for developing improved and better-qualified empirical methods, for their application in practice and for dissemination of the results. This book describes different kinds of empirical studies and methods for performing such studies, e.g., for planning, performing, analyzing, and reporting such studies. Actual studies are presented in detail in various chapters dealing with inspections, testing, object-oriented techniques, and component-based software engineering.
In the decade since the idea of adapting the evidence-based paradigm for software engineering was first proposed, it has become a major tool of empirical software engineering. Evidence-Based Software Engineering and Systematic Reviews provides a clear introduction to the use of an evidence-based model for software engineering research and practice.
Empirical verification of knowledge is one of the foundations for developing any discipline. As far as software construction is concerned, the empirically verified knowledge is not only sparse but also not very widely disseminated among developers and researchers. This book aims to spread the idea of the importance of empirical knowledge in software development from a highly practical viewpoint. It has two goals: (1) Define the body of empirically validated knowledge in software development so as to advise practitioners on what methods or techniques have been empirically analysed and what the results were; (2) as empirical tests have traditionally been carried out by universities or research centres, propose techniques applicable by industry to check on the software development technologies they use. Contents: Limitations of Empirical Testing Technique Knowledge (N Juristo et al.); Replicated Studies: Building a Body of Knowledge about Software Reading Techniques (F Shull et al.); Combining Data from Reading Experiments in Software Inspections OCo A Feasibility Study (C Wholin et al.); External Experiments OCo A Workable Paradigm for Collaboration Between Industry and Academia (F Houdek); (Quasi-)Experimental Studies in Industrial Settings (O Laitenberger & D Rombach); Experimental Validation of New Software Technology (M V Zelkowitz et al.). Readership: Researchers, academics and professionals in software engineering."
Based on their own experiences of in-depth case studies of software projects in international corporations, in this book the authors present detailed practical guidelines on the preparation, conduct, design and reporting of case studies of software engineering. This is the first software engineering specific book on the case study research method.