An encompassing life cycle centric survey of software inspection

Abstract This paper contributes an integrated survey of the work in the area of software inspection. It consists of two main sections. The first one introduces a detailed description of the core concepts and relationships that together define the field of software inspection. The second one elaborates a taxonomy that uses a generic development life-cycle to contextualize software inspection in detail. After Fagan's seminal work presented in 1976, the body of work in software inspection has greatly increased and reached measured maturity. Yet, there is still no encompassing and systematic view of this research body driven from a life-cycle perspective. This perspective is important since inspection methods and refinements are most often aligned to particular life-cycle artifacts. It also provides practitioners with a roadmap available in their terms. To provide a systematic and encompassing view of the research and practice body in software inspection, the contribution of this survey is, in a first step, to introduce in detail the core concepts and relationships that together embody the field of software inspection. This lays out the field key ideas and benefits and elicits a common vocabulary. There, we make a strong effort to unify the relevant vocabulary used in available literature sources. In a second step, we use this vocabulary to build a contextual map of the field in the form of a taxonomy indexed by the different development stages of a generic process. This contextual map can guide practitioners and focus their attention on the inspection work most relevant to the introduction or development of inspections at the level of their particular development stage; or to help motivate the use of software inspection earlier in their development cycle. Our work provides three distinct, practical benefits: First, the index taxonomy can help practitioners identify inspection experience directly related to a particular life-cycle stage. Second, our work allows structuring of the large amount of published inspection work. Third, such taxonomy can help researchers compare and assess existing inspection methods and refinements to identify fruitful areas of future work.

[1]  Edward F. Weller,et al.  Lessons from three years of inspection data (software development) , 1993, IEEE Software.

[2]  Yuri Chernak A Statistical Approach to the Inspection Checklist Formal Synthesis and Improvement , 1996, IEEE Trans. Software Eng..

[3]  Tzvi Raz,et al.  Factors affecting design inspection effectiveness in software development , 1997, Inf. Softw. Technol..

[4]  Erik Kamsties,et al.  An Empirical Evaluation of Three Defect-Detection Techniques , 1995, ESEC.

[5]  Horst Remus,et al.  Integrated software validation in the view of inspections/reviews , 1984 .

[6]  James Miller,et al.  Comparing and combining software defect detection techniques: a replicated empirical study , 1997, ESEC '97/FSE-5.

[7]  William C. Hetzel,et al.  An experimental analysis of program verification methods. , 1976 .

[8]  A. Coughlan,et al.  An Empirical Investigation * , 2002 .

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

[10]  Wei-Tek Tsai,et al.  N-Fold inspection: a requirements analysis technique , 1990, Commun. ACM.

[11]  A. Frank Ackerman,et al.  Software inspections: an effective verification process , 1989, IEEE Software.

[12]  Oliver Laitenberger,et al.  Perspective-based Reading of Code Documents at , 1997 .

[13]  John C. Kelly,et al.  An analysis of defect densities found during software inspections , 1992, J. Syst. Softw..

[14]  Wei-Tek Tsai,et al.  Distributed, collaborative software inspection , 1993, IEEE Software.

[15]  Peter J. Middleton,et al.  Software Inspection , 1994, J. Inf. Technol..

[16]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[17]  D. Ross Jeffery,et al.  Comparing inspection strategies for software requirement specifications , 1996, Proceedings of 1996 Australian Software Engineering Conference.

[18]  Stephen H. Kan,et al.  Metrics and Models in Software Quality Engineering , 1994, SOEN.

[19]  J. Elashoff,et al.  Multiple Regression in Behavioral Research. , 1975 .

[20]  M. Dyer,et al.  Verification based inspection , 1992, Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences.

[21]  Richard H. Thayer,et al.  Software Engineering Project Management , 2000 .

[22]  Glen W. Russell,et al.  Experience with inspection in ultralarge-scale development , 1991, IEEE Software.

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

[24]  Sheryl Duggins,et al.  Improving software quality , 1998, ACM-SE 36.

[25]  J. Levine,et al.  Progress in Small Group Research , 1990 .

[26]  J. Valacich,et al.  Computer brainstorms: More heads are better than one. , 1993 .

[27]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

[28]  C. Jones,et al.  Gaps in the O-O paradigm , 1994 .

[29]  Robert B. Grady,et al.  Successfully applying software metrics , 1994, Computer.

[30]  Elliot Soloway,et al.  A cognitive analysis of a code inspection , 1987 .

[31]  Edward Yourdon,et al.  Structured walkthroughs , 1978 .

[32]  Harvey P. Siy,et al.  A Review of Software Inspections , 1995, Adv. Comput..

[33]  楠本 真二,et al.  Quantitative Evaluation of Software Reviews and Testing Processes , 1993 .

[34]  Robert G. Ebenau,et al.  Software Inspection Process , 1993 .

[35]  Bill Brykczynski,et al.  An annotated bibliography on software inspections , 1993, SOEN.

[36]  Van Ark,et al.  Group Dynamics: The Psychology of Small Group Behavior , 1972 .

[37]  Michael E. Fagan Advances in software inspections , 1986, IEEE Transactions on Software Engineering.

[38]  Lionel E. Deimel,et al.  Applying program comprehension techniques to improve software inspections , 1994 .

[39]  Gerald M. Weinberg,et al.  Handbook of Walkthroughs, Inspections, and Technical Reviews: Evaluating Programs, Projects, and Products , 1990 .

[40]  Philip M. Johnson Reengineering inspection , 1998, CACM.

[41]  G. Wenneson Quality assurance software inspections at NASA Ames: Metrics for feedback and modification , 1985 .

[42]  Fevzi Belli,et al.  Towards automation of checklist-based code-reviews , 1996, Proceedings of ISSRE '96: 7th International Symposium on Software Reliability Engineering.

[43]  Priscilla J. Fowler In-process inspections of workproducts at AT&T , 1986, AT&T Technical Journal.

[44]  Laurence Brothers,et al.  ICICLE: groupware for code inspection , 1990, CSCW '90.

[45]  Audris Mockus,et al.  Understanding the sources of variation in software inspections , 1998, TSEM.

[46]  Mark E. Graden,et al.  Report: The effects of software inspections on a major telecommunications project , 1986, AT&T Technical Journal.

[47]  Samuel B. Williams,et al.  ASSOCIATION FOR COMPUTING MACHINERY , 2000 .

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

[49]  R. Rosenthal The file drawer problem and tolerance for null results , 1979 .

[50]  Tony Montgomery,et al.  Proceedings of the 14th international conference on Software engineering , 1992, International Conference on Software Engineering.

[51]  Lionel C. Briand,et al.  Quantitative evaluation of capture-recapture models to control software inspections , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.

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

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

[54]  Scott N. Woodfield,et al.  Evaluating the effectiveness of reliability-assurance techniques , 1989, J. Syst. Softw..

[55]  Wei-Tek Tsai,et al.  An experimental study of fault detection in user requirements documents , 1992, TSEM.

[56]  B. A. Kitchenham,et al.  The effects of inspections on software quality and productivity , 1986 .

[57]  Eric C Hughlett A Framework for Software Development , 1984 .

[58]  J. Ross,et al.  Annotated bibliography. , 1994, AJNR. American journal of neuroradiology.

[59]  H. Dieter Rombach,et al.  Fraunhofer Institute for Experimental Software Engineering (IESE) , 2002 .

[60]  Adam A. Porter,et al.  Assessing Software Review Meetings: Results of a Comparative Analysis of Two Experimental Studies , 1997, IEEE Trans. Software Eng..

[61]  Oliver Laitenberger,et al.  Perspective-based reading of code documents at Robert Bosch GmbH , 1997, Inf. Softw. Technol..

[62]  Claes Wohlin,et al.  Defect content estimations from review data , 1998, Proceedings of the 20th International Conference on Software Engineering.

[63]  B BisantDavid,et al.  A Two-Person Inspection Method to Improve Programming Productivity , 1989 .

[64]  John J. Marciniak Reviews and Audits , 2002 .

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

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

[67]  Michael Dyer The Cleanroom Approach to Quality Software Development , 1992, Int. CMG Conference.

[68]  Lawrence G. Votta,et al.  Assessing Software Designs Using Capture-Recapture Methods , 1993, IEEE Trans. Software Eng..

[69]  T. D. Crossman A method of controlling quality of application software , 1991 .

[70]  David Lorge Parnas,et al.  Active design reviews: principles and practices , 1985, ICSE '85.

[71]  Bernard Rous,et al.  The ACM digital library , 2001, CACM.

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

[73]  C. Jones,et al.  Software defect-removal efficiency , 1996 .

[74]  M. E. Shaw Group dynamics : the psychology of small group behavior , 1971 .

[75]  Adam A. Porter,et al.  Evaluating Workflow and Process Automation in Wide-Area Software Development , 1996, EWSPT.

[76]  Arthur L. Price,et al.  Managing code inspection information , 1994, IEEE Software.

[77]  Harlan D. Mills,et al.  Structured programming - theory and practice , 1979, The systems programming series.

[78]  Philip M. Johnson,et al.  Assessing software review meetings: A controlled experimental study using CSRS , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[79]  James R. Lyle,et al.  A Two-Person Inspection Method to Improve Prog ramming Productivity , 1989, IEEE Transactions on Software Engineering.

[80]  Ilkka Tervonen,et al.  Support for Quality-Based Design and Inspection , 1996, IEEE Softw..

[81]  Les Hatton,et al.  Does OO Sync with How We Think? , 1998, IEEE Softw..

[82]  Raymond Madachy,et al.  Analysis of a successful inspection program , 1993 .

[83]  Paul Rook,et al.  Controlling software projects , 1986, Softw. Eng. J..

[84]  James Miller,et al.  A process for asynchronous software inspection , 1997, Proceedings Eighth IEEE International Workshop on Software Technology and Engineering Practice incorporating Computer Aided Software Engineering.

[85]  Philip Johnson,et al.  Exploring the effectiveness of formal technical review factors with csrs, a collaborative software review system , 1996 .

[86]  J. MillerEmpirical,et al.  Modelling Software Inspection Methods for the Application of Tool Support , 1995 .

[87]  Daniel Hoffman,et al.  Inspecting module interface specifications , 1994, Softw. Test. Verification Reliab..

[88]  Harris Cooper,et al.  Scientific Guidelines for Conducting Integrative Research Reviews , 1982 .

[89]  John C. Knight,et al.  An improved inspection technique , 1993, CACM.

[90]  Pankaj Jalote,et al.  Overcoming the NAH syndrome for inspection deployment , 1998, Proceedings of the 20th International Conference on Software Engineering.

[91]  Victor R. Basili,et al.  Communication and Organization: An Empirical Study of Discussion in Inspection Meetings , 1998, IEEE Trans. Software Eng..

[92]  Robert B. Grady,et al.  Key lessons in achieving widespread inspection use , 1994, IEEE Software.

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

[94]  F. MacDonald,et al.  A review of tool support for software inspection , 1995, Proceedings Seventh International Workshop on Computer-Aided Software Engineering.

[95]  Chris Sauer,et al.  Validating the defect detection performance advantage of group designs for software reviews: report of a laboratory experiment using program code , 1997, ESEC '97/FSE-5.

[96]  John C. Knight,et al.  Phased inspections and their implementation , 1991, SOEN.

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

[98]  Harvey P. Siy,et al.  An Experiment ot Assess the Cost-Benefits of Code Inspections in Large Scale Software Development , 1997, IEEE Trans. Software Eng..

[99]  Adam A. Porter,et al.  Anywhere, Anytime Code Inspections: Using the Web to Remove Inspection Bottlenecks in Large-Scale Software Development , 1997, Proceedings of the (19th) International Conference on Software Engineering.

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

[101]  L. L. Tripp,et al.  The application of multiple team inspections on a safety-critical software standard , 1991, [1991 Proceedings] Fourth Software Engineering Standards Application Workshop.

[102]  Lionel C. Briand,et al.  Using simulation to build inspection efficiency benchmarks for development projects , 1998, Proceedings of the 20th International Conference on Software Engineering.

[103]  Dennis A. Christenson,et al.  Statistical Quality Control Applied to Code Inspections , 1990, IEEE J. Sel. Areas Commun..

[104]  Gerald M. Weinberg,et al.  Reviews, Walkthroughs, and Inspections , 1984, IEEE Transactions on Software Engineering.

[105]  Vahid Mashayekhi,et al.  A Case Study of Distributed, Asynchronous Software Inspection , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[106]  Chris Sauer,et al.  A Framework for Software Development Technical Reviews , 1994, Software Quality and Productivity.

[107]  Philip M. Johnson,et al.  Improving Software Quality through Computer Supported Collaborative Review , 1993, ECSCW.

[108]  John W. Gintell,et al.  Lessons learned by building and using Scrutiny, a collaborative software inspection system , 1995, Proceedings Seventh International Workshop on Computer-Aided Software Engineering.