Experimentation in Software Engineering

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.

[1]  Tom DeMarco,et al.  Controlling Software Projects , 1982 .

[2]  Kai Petersen,et al.  Systematic Mapping Studies in Software Engineering , 2008, EASE.

[3]  S. Siegel,et al.  Nonparametric Statistics for the Behavioral Sciences , 2022, The SAGE Encyclopedia of Research Design.

[4]  R. Larsson Case Survey Methodology: Quantitative Analysis of Patterns Across Case Studies , 1993 .

[5]  B. Kitchenham,et al.  Case Studies for Method and Tool Evaluation , 1995, IEEE Softw..

[6]  Natalia Juristo Juzgado,et al.  Replications types in experimental disciplines , 2010, ESEM '10.

[7]  Victor R. Basili,et al.  Experimentation in software engineering , 1986, IEEE Transactions on Software Engineering.

[8]  Jeffrey C. Carver,et al.  Knowledge-Sharing Issues in Experimental Software Engineering , 2004, Empirical Software Engineering.

[9]  Barbara A. Kitchenham,et al.  The case against cross-over designs in software engineering , 2003, Eleventh Annual International Workshop on Software Technology and Engineering Practice.

[10]  Sam Kash Kachigan Multivariate statistical analysis: A conceptual introduction, 2nd ed. , 1991 .

[11]  K. Narasimhan Quality from Customer Needs to Customer Satisfaction , 2003 .

[12]  Forrest Shull,et al.  Building Knowledge through Families of Experiments , 1999, IEEE Trans. Software Eng..

[13]  Mark Staples,et al.  Experiences using systematic review guidelines , 2006, J. Syst. Softw..

[14]  H. Sackman,et al.  An Exploratory Investigation of Programmer Performance Under On-Line and Off-Line Conditions , 1967 .

[15]  Ola Blomkvist,et al.  An Extended Replication of an Experiment for Assessing Methods for Software Requirements Inspections , 1998, Empirical Software Engineering.

[16]  Pearl Brereton,et al.  Presenting software engineering results using structured abstracts: a randomised experiment , 2008, Empirical Software Engineering.

[17]  Jeffrey C. Carver,et al.  Perspective-Based Reading: A Replicated Experiment Focused on Individual Reviewer Effectiveness , 2006, Empirical Software Engineering.

[18]  Janice Singer,et al.  Why and How Research Ethics Matters to You. Yes, You! , 2001, Empirical Software Engineering.

[19]  Natalia Juristo Juzgado,et al.  Developing search strategies for detecting relevant experiments , 2009, Empirical Software Engineering.

[20]  Liming Zhu,et al.  Evaluating guidelines for reporting empirical software engineering studies , 2008, Empirical Software Engineering.

[21]  David C. Hoaglin,et al.  Some Implementations of the Boxplot , 1989 .

[22]  Michael E. Fagan Design and Code Inspections to Reduce Errors in Program Development , 1976, IBM Syst. J..

[23]  Sivert Sørumgård,et al.  Verification of Process Conformance in Empirical Studies of Software Development , 1997 .

[24]  Tony Gorschek,et al.  A Model for Technology Transfer in Practice , 2006, IEEE Software.

[25]  Philip T. Cox,et al.  Human Centric Computing Languages and Environments , 2003 .

[26]  Barbara A. Kitchenham,et al.  Combining empirical results in software engineering , 1998, Inf. Softw. Technol..

[27]  Tracy Hall,et al.  Ethical Issues in Software Engineering Research: A Survey of Current Practice , 2001, Empirical Software Engineering.

[28]  Sandro Morasca,et al.  On the application of measurement theory in software engineering , 2004, Empirical Software Engineering.

[29]  Harvey P. Siy,et al.  An experiment to assess the cost-benefits of code inspections in large scale software development , 1995, SIGSOFT '95.

[30]  Pearl Brereton,et al.  Systematic literature reviews in software engineering - A systematic literature review , 2009, Inf. Softw. Technol..

[31]  Lionel C. Briand,et al.  Practical guidelines for measurement-based process improvement , 1996, Softw. Process. Improv. Pract..

[32]  Tore Dybå,et al.  Strength of evidence in systematic reviews in software engineering , 2008, ESEM '08.

[33]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[34]  Henry C. Lucas,et al.  A Structured Programming Experiment , 1976, Comput. J..

[35]  M.M. Lehman,et al.  Programs, life cycles, and laws of software evolution , 1980, Proceedings of the IEEE.

[36]  Shirley Gregor,et al.  The Nature of Theory in Information Systems , 2006, MIS Q..

[37]  Tore Dybå,et al.  Evidence-based software engineering , 2004, Proceedings. 26th International Conference on Software Engineering.

[38]  Tore Dybå,et al.  A systematic review of statistical power in software engineering experiments , 2006, Inf. Softw. Technol..

[39]  Helen Sharp,et al.  Ethnographically-informed empirical studies of software practice , 2007, Inf. Softw. Technol..

[40]  James Miller Statistical significance testing--a panacea for software technology experiments? , 2004, J. Syst. Softw..

[41]  N. Dalkey,et al.  An Experimental Application of the Delphi Method to the Use of Experts , 1963 .

[42]  Vladimir Tosic,et al.  Guidelines for industrially-based multiple case studies in software engineering , 2009, 2009 Third International Conference on Research Challenges in Information Science.

[43]  Jeffrey C. Carver,et al.  The role of replications in Empirical Software Engineering , 2008, Empirical Software Engineering.

[44]  D. Ross Jeffery,et al.  Misleading Metrics and Unsound Analyses , 2007, IEEE Software.

[45]  Daniela E. Damian,et al.  Selecting Empirical Methods for Software Engineering Research , 2008, Guide to Advanced Empirical Software Engineering.

[46]  H. D. Rombach,et al.  THE EXPERIENCE FACTORY , 1999 .

[47]  James Miller,et al.  Applying meta-analytical procedures to software engineering experiments , 2000, J. Syst. Softw..

[48]  Natalia Juristo Juzgado,et al.  Basics of Software Engineering Experimentation , 2010, Springer US.

[49]  E. P. Doolan,et al.  Experience with Fagan's inspection method , 1992, Softw. Pract. Exp..

[50]  Amela Karahasanovic,et al.  A survey of controlled experiments in software engineering , 2005, IEEE Transactions on Software Engineering.

[51]  Stephen G. Eick,et al.  Estimating software fault content before coding , 1992, International Conference on Software Engineering.

[52]  Albert Endres,et al.  A handbook of software and systems engineering - empirical observations, laws and theories , 2003, The Fraunhofer IESE series on software engineering.

[53]  Lionel C. Briand,et al.  A Controlled Experiment for Evaluating Quality Guidelines on the Maintainability of Object-Oriented Designs , 2001, IEEE Trans. Software Eng..

[54]  Claes Wohlin,et al.  Using Students as Subjects—A Comparative Study of Students and Professionals in Lead-Time Impact Assessment , 2000, Empirical Software Engineering.

[55]  Pearl Brereton,et al.  Lessons from applying the systematic literature review process within the software engineering domain , 2007, J. Syst. Softw..

[56]  Mary Beth Chrissis,et al.  CMMI(R): Guidelines for Process Integration and Product Improvement (2nd Edition) (The SEI Series in Software Engineering) , 2006 .

[57]  Edward Yourdon,et al.  Object-oriented design , 1991, Yourdon Press Computing Series.

[58]  W. Edwards Deming,et al.  Out of the Crisis , 1982 .

[59]  Lars Mathiassen,et al.  Managing Risk in Software Process Improvement: An Action Research Approach , 2004, MIS Q..

[60]  Bryan F. J. Manly,et al.  Multivariate Statistical Methods : A Primer , 1986 .

[61]  Shari Lawrence Pfleeger,et al.  Experimental design and analysis in software engineering , 1995, Ann. Softw. Eng..

[62]  Paul Lukowicz,et al.  Experimental evaluation in computer science: A quantitative study , 1995, J. Syst. Softw..

[63]  Bente Anda,et al.  Experiences from conducting semi-structured interviews in empirical software engineering research , 2005, 11th IEEE International Software Metrics Symposium (METRICS'05).

[64]  Venkataraman Ramesh,et al.  Research in software engineering: an analysis of the literature , 2002, Inf. Softw. Technol..

[65]  A. Strauss Basics Of Qualitative Research , 1992 .

[66]  James Miller,et al.  Further Experiences with Scenarios and Checklists , 1998, Empirical Software Engineering.

[67]  Janice Singer,et al.  Ethical Issues in Empirical Studies of Software Engineering , 2002, IEEE Trans. Software Eng..

[68]  Victor R. Basili,et al.  Evolving and packaging reading technologies , 1997, J. Syst. Softw..

[69]  Joan E. Sieber,et al.  Protecting Research Subjects, Employees and Researchers: Implications for Software Engineering , 2001, Empirical Software Engineering.

[70]  Adam A. Porter,et al.  An experiment to assess different defect detection methods for software requirements inspections , 1994, Proceedings of 16th International Conference on Software Engineering.

[71]  Daniela Cruzes,et al.  Research synthesis in software engineering: A tertiary study , 2011, Inf. Softw. Technol..

[72]  R.C. Linger,et al.  Cleanroom process model , 1994, IEEE Software.

[73]  Dietmar Pfahl,et al.  Reporting guidelines for controlled experiments in software engineering , 2005, 2005 International Symposium on Empirical Software Engineering, 2005..

[74]  James Miller,et al.  Replicating software engineering experiments: a poisoned chalice or the Holy Grail , 2005, Inf. Softw. Technol..

[75]  Martin Shepperd,et al.  Foundations of software measurement , 1995 .

[76]  Martin Bichler,et al.  Design science in information systems research , 2006, Wirtschaftsinf..

[77]  Leonard A. Marascuilo,et al.  Statistical methods for the social and behavioral sciences , 1990 .

[78]  Victor R. Basili,et al.  Software process evolution at the SEL , 1994, IEEE Software.

[79]  H. Dieter Rombach,et al.  Experimentation as a vehicle for software technology transfer-A family of software reading techniques , 1997, Inf. Softw. Technol..

[80]  Watts S. Humphrey,et al.  A discipline for software engineering , 2012, Series in software engineering.

[81]  Egon Berghout,et al.  The Goal/Question/Metric method: a practical guide for quality improvement of software development , 1999 .

[82]  Per Runeson,et al.  Reference-based search strategies in systematic reviews , 2009, EASE.

[83]  Victor R. Basili,et al.  Cleanroom Software Development: An Empirical Evaluation , 1987, IEEE Transactions on Software Engineering.

[84]  Trevor Wood-Harper,et al.  A critical perspective on action research as a method for information systems research , 1996, J. Inf. Technol..

[85]  Watts S. Humphrey,et al.  Managing the software process , 1989, The SEI series in software engineering.

[86]  Yvonne Dittrich,et al.  Cooperative method development , 2008, Empirical Software Engineering.

[87]  Tony Gorschek,et al.  Industry evaluation of the Requirements Abstraction Model , 2007, Requirements Engineering.

[88]  Sue Eckstein,et al.  Ethical research in psychology: revised ethical principles for conducting research with human participants. , 1991, Bulletin of medical ethics.

[89]  Standard Glossary of Software Engineering Terminology , 1990 .

[90]  Austen Rainer,et al.  The longitudinal, chronological case study research strategy: A definition, and an example from IBM Hursley Park , 2011, Inf. Softw. Technol..

[91]  Tony Gorschek,et al.  Requirements Abstraction Model , 2005, Requirements Engineering.

[92]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[93]  Natalia Juristo Juzgado,et al.  The role of non-exact replications in software engineering experiments , 2011, Empirical Software Engineering.

[94]  Pearl Brereton,et al.  Systematic literature reviews in software engineering - A tertiary study , 2010, Inf. Softw. Technol..

[95]  Watts S. Humphrey,et al.  Introduction to the Personal Software Process , 1996 .

[96]  Victor R. Basili,et al.  The TAME Project: Towards Improvement-Oriented Software Environments , 1988, IEEE Trans. Software Eng..

[97]  David Budgen,et al.  Reporting computing projects through structured abstracts: a quasi-experiment , 2010, Empirical Software Engineering.

[98]  Claes Wohlin,et al.  A project effort estimation study , 1998, Inf. Softw. Technol..

[99]  Claes Wohlin,et al.  An Experimental Comparison of Usage-Based and Checklist-Based Reading , 2003, IEEE Trans. Software Eng..

[100]  Pearl Brereton,et al.  Protocol analysis: a neglected practice , 2006, CACM.

[101]  Colin Atkinson,et al.  An experimental comparison of reading techniques for defect detection in UML design documents , 2000, J. Syst. Softw..

[102]  Carolyn B. Seaman,et al.  Qualitative Methods in Empirical Studies of Software Engineering , 1999, IEEE Trans. Software Eng..

[103]  Philip M. Johnson,et al.  Does Every Inspection Really Need a Meeting? , 1998, Empirical Software Engineering.

[104]  Per Runeson,et al.  Can we evaluate the quality of software engineering experiments? , 2010, ESEM '10.

[105]  Colin Robson,et al.  Real World Research: A Resource for Social Scientists and Practitioner-Researchers , 1993 .

[106]  Andreas Zendler,et al.  A Preliminary Software Engineering Theory as Investigated by Published Experiments , 2001, Empirical Software Engineering.

[107]  Jacob Cohen,et al.  Weighted kappa: Nominal scale agreement provision for scaled disagreement or partial credit. , 1968 .

[108]  Lawrence G. Votta,et al.  Does every inspection need a meeting? , 1993, SIGSOFT '93.

[109]  Tony Gorschek,et al.  Success Factors Powering Industry-Academia Collaboration in Software Research , 2012 .

[110]  Claes Wohlin,et al.  A Framework for Technology Introduction in Software Organizations 1 , 1996 .

[111]  Glenford J. Myers,et al.  A controlled experiment in program testing and code walkthroughs/inspections , 1978, CACM.

[112]  Pearl Brereton,et al.  Using a Protocol Template for Case Study Planning , 2008, EASE.

[113]  Adam A. Porter,et al.  Comparing Detection Methods For Software Requirements Inspections: A Replication Using Professional Subjects , 1998, Empirical Software Engineering.

[114]  Bill Hetzel,et al.  Making Software Measurement Work: Building an Effective Measurement Program , 1993 .

[115]  Marvin V. Zelkowitz,et al.  Experimental Models for Validating Technology , 1998, Computer.

[116]  G. Noblit,et al.  Meta-Ethnography: Synthesizing Qualitative Studies , 1988 .

[117]  Claes Wohlin,et al.  Context in industrial software engineering research , 2009, 2009 3rd International Symposium on Empirical Software Engineering and Measurement.

[118]  Sam Kash Kachigan Statistical Analysis: An Interdisciplinary Introduction to Univariate & Multivariate Methods , 1986 .

[119]  Austen Rainer,et al.  Case Study Research in Software Engineering - Guidelines and Examples , 2012 .

[120]  Tore Dybå,et al.  A Systematic Review of Theory Use in Software Engineering Experiments , 2007, IEEE Transactions on Software Engineering.

[121]  Ben Shneiderman,et al.  Experimental investigations of the utility of detailed flowcharts in programming , 1977, CACM.

[122]  Adam A. Porter,et al.  Comparing Detection Methods for Software Requirements Inspections: A Replicated Experiment , 1995, IEEE Trans. Software Eng..

[123]  Tore Dybå,et al.  The effectiveness of pair programming: A meta-analysis , 2009, Inf. Softw. Technol..

[124]  Colin Potts,et al.  Software-engineering research revisited , 1993, IEEE Software.

[125]  Mark C. Paulk,et al.  Capability Maturity Model for Software , 2001 .

[126]  Per Runeson,et al.  Checklists for Software Engineering Case Study Research , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).

[127]  Norman E. Fenton,et al.  Measurement : A Necessary Scientific Basis , 2004 .

[128]  B. Flyvbjerg Five Misunderstandings About Case-Study Research , 2006, 1304.1186.

[129]  Will Hayes,et al.  Research synthesis in software engineering: a case for meta-analysis , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

[130]  Robert B. Grady,et al.  Software Metrics: Establishing a Company-Wide Program , 1987 .

[131]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[132]  Michael R. Lyu,et al.  Handbook of software reliability engineering , 1996 .

[133]  Tore Dybå,et al.  Empirical studies of agile software development: A systematic review , 2008, Inf. Softw. Technol..

[134]  K. Eisenhardt Building theories from case study research , 1989, STUDI ORGANIZZATIVI.

[135]  Robert L. Glass,et al.  Science and substance: a challenge to software engineers , 1994, IEEE Software.

[136]  Victor R. Basili,et al.  Comparing the Effectiveness of Software Testing Strategies , 1987, IEEE Transactions on Software Engineering.

[137]  Jeffrey C. Carver,et al.  Replicating software engineering experiments: addressing the tacit knowledge problem , 2002, Proceedings International Symposium on Empirical Software Engineering.

[138]  Tore Dybå,et al.  A systematic review of effect size in software engineering experiments , 2007, Inf. Softw. Technol..

[139]  Ray Welland,et al.  Collecting Feedback during Software Engineering Experiments , 2005, Empirical Software Engineering.

[140]  Barbara A. Kitchenham,et al.  The role of replications in empirical software engineering—a word of warning , 2008, Empirical Software Engineering.

[141]  Tore Dybå,et al.  Building Theories in Software Engineering , 2008, Guide to Advanced Empirical Software Engineering.

[142]  Giuseppe Visaggio,et al.  A Replicated Experiment to Assess Requirements Inspection Techniques , 2004, Empirical Software Engineering.

[143]  Claes Wohlin,et al.  Aggregating viewpoints for strategic software process improvement-a method and a case study , 2002, IEE Proc. Softw..

[144]  Tore Dybå,et al.  Evidence-Based Software Engineering for Practitioners , 2005, IEEE Softw..

[145]  Janice Singer,et al.  Studying Software Engineers: Data Collection Techniques for Software Field Studies , 2005, Empirical Software Engineering.

[146]  Izak Benbasat,et al.  The Case Research Strategy in Studies of Information Systems , 1987, MIS Q..

[147]  Victor R. Basili,et al.  A Methodology for Collecting Valid Software Engineering Data , 1984, IEEE Transactions on Software Engineering.

[148]  Forrest Shull,et al.  The empirical investigation of Perspective-Based Reading , 1995, Empirical Software Engineering.

[149]  Allen S. Lee A Scientific Methodology for MIS Case Studies , 1989, MIS Q..

[150]  Janice Singer,et al.  A Practical Guide to Ethical Research Involving Humans , 2008, Guide to Advanced Empirical Software Engineering.

[151]  Forrest Shull,et al.  Developing techniques for using software documents: a series of empirical studies , 1998 .

[152]  Robert L. Glass,et al.  The software-research crisis , 1994, IEEE Software.

[153]  Pearl Brereton,et al.  Using mapping studies as the basis for further research - A participant-observer case study , 2011, Inf. Softw. Technol..

[154]  James Miller Estimating the number of remaining defects after inspection , 1999 .

[155]  R. Hyman Quasi-Experimentation: Design and Analysis Issues for Field Settings (Book) , 1982 .

[156]  R. Stake The art of case study research , 1995 .

[157]  M. Host,et al.  Experimental context classification: incentives and experience of subjects , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[158]  Jean-Pierre Serre,et al.  Fermat ’ s Last Theorem , 2017 .