Improving software inspection process with patterns

Concrete guidelines are often helpful, when planning software process improvement activities. Especially minor companies may have difficulties in implementing full-scale SPI programs. One solution is to focus the improvement on the most effective quality methods. This work introduces a set of patterns to direct the improvement of the software inspection process. Patterns help in setting overall goals for the improvement and describe specific actions that are needed to enhance the process. The patterns have been experimented in a software company that is carrying out a process improvement project. The experiment started with an evaluation of the inspection process capability, after which the process was updated according to determined goals. The process has been performing more effectively after the improvement effort in this case. Results of the experiment show that the pattern approach provides a feasible and quick method for launching SPI activities, although some refinements are needed to fully exploit them.

[1]  Inderpal S. Bhandari,et al.  In-Process Evaluation for Software Inspection and Test , 1993, IEEE Trans. Software Eng..

[2]  Gustavo Rossi,et al.  Improving Web Information Systems with Navigational Patterns , 1999, Comput. Networks.

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

[4]  Stefan Biffl,et al.  Investigating the Defect Detection Effectiveness and Cost Benefit of Nominal Inspection Teams , 2003, IEEE Trans. Software Eng..

[5]  Oliver Laitenberger,et al.  Cost-effective Detection of Software Defects through Perspective-based Inspections , 2001, Empirical Software Engineering.

[6]  Håkan Petersson,et al.  Individual reviewer contribution to the effectiveness of software inspection teams , 2001, Proceedings 2001 Australian Software Engineering Conference.

[7]  George Yamamura Process Improvement Satisfies Employees , 1999, IEEE Softw..

[8]  James D. Herbsleb,et al.  Benefits of CMM-Based Software Process Improvement: Executive Summary of Initial Results , 1994 .

[9]  Ounsa Roudiès,et al.  A pattern based approach for requirements engineering , 1999, Proceedings. Tenth International Workshop on Database and Expert Systems Applications. DEXA 99.

[10]  Khaled El Emam,et al.  The application of subjective estimates of effectiveness to controlling software inspections , 2000, J. Syst. Softw..

[11]  Perdita Stevens,et al.  Systems reengineering patterns , 1998, SIGSOFT '98/FSE-6.

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

[13]  Mary Lynn Manns,et al.  Fearless Change: Patterns for Introducing New Ideas , 2004 .

[14]  Michael S. Deutsch,et al.  Software Quality Engineering , 1988 .

[15]  Gustavo Rossi,et al.  Design reuse in hypermedia applications development , 1997, HYPERTEXT '97.

[16]  Scott W. Ambler,et al.  More Process Patterns: Delivering Large-Scale Systems Using Object Technology , 1998 .

[17]  Patrick Finnegan,et al.  Process improvement (PI) programs and information systems: a cross-case analysis of impact , 2004, J. Inf. Technol..

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

[19]  Dennis R. Goldenson,et al.  A systematic survey of CMM experience and results , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

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

[21]  Stefan Biffl,et al.  A Knowledge Management Framework to Support Software Inspection Planning , 2003 .

[22]  Daniel Galin,et al.  Software Quality Assurance: From Theory to Implementation , 2003 .

[23]  J. Nunamaker,et al.  Proceedings of the 32nd Hawaii International Conference on System Sciences , 1999 .

[24]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[25]  Harald Störrle,et al.  Describing Process Patterns with UML , 2001, EWSPT.

[26]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[27]  Andreas Rausch,et al.  Towards a Living Software Development Process Based on Process Patterns , 2001, EWSPT.

[28]  Philip M. Johnson An instrumented approach to improving software quality through formal technical review , 1994, Proceedings of 16th International Conference on Software Engineering.

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

[30]  Harlan D. Mills,et al.  Understanding and Documenting Programs , 1982, IEEE Transactions on Software Engineering.

[31]  Mats P. E. Heimdahl,et al.  Enhancing annotation visibility for software inspection , 1999, 14th IEEE International Conference on Automated Software Engineering.

[32]  Hossein Saiedian,et al.  Towards an evaluative framework for software process improvement models , 1999, J. Syst. Softw..

[33]  Thomas Gilb,et al.  Software Inspection , 1994 .

[34]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[35]  D. Ross Jeffery,et al.  An explanatory study on the goal alignment problem in joint software reviews , 2000, Proceedings 2000 Australian Software Engineering Conference.

[36]  Douglas C. Schmidt,et al.  Experience Using Design Patterns to Develop Reuseable Object-Oriented Communication Software , 1998 .

[37]  Jean-Claude Derniame Software Process Technology , 1992, Lecture Notes in Computer Science.

[38]  Meliha Handzic,et al.  Managing Software Engineering Knowledge , 2010, Springer Berlin Heidelberg.

[39]  Pericles Loucopoulos,et al.  Towards a systematic approach to the capture of patterns within a business domain , 2003, J. Syst. Softw..

[40]  A. R. Crathorne,et al.  Economic Control of Quality of Manufactured Product. , 1933 .

[41]  James A. Landay,et al.  Design Patterns for Ubiquitous Computing , 2003, Computer.

[42]  Steve McConnell,et al.  Real quality for real engineers , 2002, IEEE Software.

[43]  K. Lano,et al.  Reeingineering legacy applications using design patterns , 1997, Proceedings Eighth IEEE International Workshop on Software Technology and Engineering Practice incorporating Computer Aided Software Engineering.

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

[45]  Mark C. Paulk,et al.  How ISO 9001 Compares With The CMM , 1995, IEEE Softw..

[46]  Thomas Lee Rodgers,et al.  Process maturity and inspector proficiency: feedback mechanisms for software inspections , 1999, Proceedings of the 32nd Annual Hawaii International Conference on Systems Sciences. 1999. HICSS-32. Abstracts and CD-ROM of Full Papers.

[47]  Martin Höst,et al.  Evaluation of code review methods through interviews and experimentation , 2000, J. Syst. Softw..

[48]  Zhichao Yin,et al.  Self-assessment of performance in software inspection processes , 2004, Inf. Softw. Technol..

[49]  Jay F. Nunamaker,et al.  Systems Development in Information Systems Research , 1990, J. Manag. Inf. Syst..

[50]  Karl E. Wiegers,et al.  Peer Reviews in Software: A Practical Guide , 2001 .

[51]  Stefan Biffl,et al.  Investigating the effect of a second software inspection cycle. Cost-benefit data from a large-scale experiment on reinspection of a software requirements document , 2000, Proceedings First Asia-Pacific Conference on Quality Software.

[52]  Yadran Eterovic,et al.  Adopting the SW-CMM in a small IT organization , 2004, IEEE Software.

[53]  Lionel C. Briand,et al.  A Comprehensive Evaluation of Capture-Recapture Models for Estimating Software Defect Content , 2000, IEEE Trans. Software Eng..

[54]  Claes Wohlin,et al.  Applying sampling to improve software inspections , 2004, J. Syst. Softw..

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

[56]  Henrik Hedberg,et al.  Introducing the Next Generation of Software Inspection Tools , 2004, PROFES.

[57]  Perdita Stevens,et al.  Identifying nd communicting expertise in systems reengineering: a patterns approach , 1999, IEE Proc. Softw..

[58]  Atsushi Yamada,et al.  Experiences of software quality management using metrics through the life-cycle , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[59]  Martin Fowler,et al.  Analysis patterns - reusable object models , 1996, Addison-Wesley series in object-oriented software engineering.

[60]  Tore Dybå,et al.  Factors of software process improvement success in small and large organizations: an empirical study in the scandinavian context , 2003, ESEC/FSE-11.

[61]  Peter Coad,et al.  Object-oriented patterns , 1992, CACM.

[62]  Lasse Harjumaa,et al.  A tailored capability model for inspection process improvement , 2001, Proceedings Second Asia-Pacific Conference on Quality Software.

[63]  Ralph Johnson Documenting frameworks using patterns , 1992, OOPSLA 1992.

[64]  Didar Zowghi,et al.  A Maturity Model for the Implementation of Software Process Improvement: an Empirical Study , 2022 .

[65]  W. W. Royce,et al.  Managing the development of large software systems: concepts and techniques , 1987, ICSE '87.

[66]  Diane Kelly,et al.  Task-directed software inspection , 2004, J. Syst. Softw..

[67]  M. Paulk Using the Software CMM in Small Organizations , 1998 .

[68]  Marc Roper,et al.  Further investigations into the development and evaluation of reading techniques for object-oriented code inspection , 2002, ICSE '02.

[69]  Ilene Burnstein,et al.  Practical Software Testing , 2003, Springer Professional Computing.

[70]  Mike Bauer,et al.  Proceedings of the 2001 conference of the Centre for Advanced Studies on Collaborative Research, November 5-7, 2001, Toronto, Ontario, Canada , 2001, CASCON.

[71]  Adam A. Porter,et al.  Quality Time: What Makes Inspections Work? , 1997, IEEE Softw..

[72]  Ellen Agerbo,et al.  How to preserve the benefits of design patterns , 1998, OOPSLA '98.

[73]  Terence P. Rout,et al.  SPICE: A Framework for Software Process Assessment , 1995, Softw. Process. Improv. Pract..

[74]  Khaled El Emam,et al.  Spice: The Theory and Practice of Software Process Improvement and Capability Determination , 1997 .

[75]  Judith G. Brodman,et al.  Realities and Rewards of Software Process Improvement , 1996, IEEE Softw..

[76]  Paul Anderson,et al.  Tool Support for Fine-Grained Software Inspection , 2003, IEEE Softw..

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

[78]  E. F. Berman Software inspections at Fermilab-use and experience , 1998 .

[79]  Yuk-Kuen Wong,et al.  An exploratory study of software review in practice , 2003, PICMET '03: Portland International Conference on Management of Engineering and Technology Technology Management for Reshaping the World, 2003..

[80]  Gérard Memmi,et al.  Scrutiny: A Collaborative Inspection and Review System , 1993, ESEC.

[81]  Joseph Moses Juran,et al.  Quality-control handbook , 1951 .

[82]  Forrest Shull,et al.  How perspective-based reading can improve requirements inspections , 2000, Computer.

[83]  Helga Drummond,et al.  Book Review , 1999 .

[84]  Ilkka Tervonen Consistent support for software designers and inspectors , 2004, Software Quality Journal.

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

[86]  Michael Diaz,et al.  How Software Process Improvement Helped Motorola , 1997, IEEE Softw..

[87]  James O. Coplien,et al.  A generative development-process pattern language , 1995 .

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

[89]  Gerald M. Weinberg,et al.  Psychology of computer programming , 1971 .

[90]  J. Kiiskila Practical aspects on the assessment of a review process , 1998, Proceedings. 24th EUROMICRO Conference (Cat. No.98EX204).

[91]  David E. Delano Patterns mining , 1998 .

[92]  Christian Salzmann,et al.  A Pattern-Based Approach for a Flexible, Self-Extending Document System , 1997 .

[93]  Siew Hock Ow,et al.  A study on the requirements review process in software development: problems and solutions , 1997, Proceedings Twenty-First Annual International Computer Software and Applications Conference (COMPSAC'97).

[94]  Paul Anderson,et al.  Software Inspection Using CodeSurfer , 2001 .

[95]  K. Sakamoto,et al.  Cultural adaptation of the CMM : A Case Study of a Software Engineering Process Group in a Japanese Manufacturing Company , 1996 .

[96]  Mark C. Paulk,et al.  Capability Maturity Model , 1991 .

[97]  Narciso Cerpa,et al.  An experience: a small software company attempting to improve its process , 1999, STEP '99. Proceedings Ninth International Workshop Software Technology and Engineering Practice.

[98]  Neil B. Harrison,et al.  Organizational patterns for teams , 1996 .

[99]  Diane Kelly,et al.  Qualitative observations from software code inspection experiments , 2002, CASCON.

[100]  Ronald A. Radice,et al.  High Quality Low Cost Software Inspections , 2001 .

[101]  Rachel Harrison,et al.  A typed generic process model for product focused process improvement , 2002, Proceedings 26th Annual International Computer Software and Applications.

[102]  Bill Brykczynski,et al.  A survey of software inspection checklists , 1999, SOEN.

[103]  Max Jacobson,et al.  A Pattern Language: Towns, Buildings, Construction , 1981 .

[104]  Karlheinz Kautz,et al.  Applying and adjusting a software process improvement model in practice: the use of the IDEAL model in a small software enterprise , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[105]  Thomas J. Haley,et al.  Software Process Improvement At Raytheon , 1996, IEEE Softw..

[106]  Thomas Herrmann,et al.  Concepts for usable patterns of groupware applications , 2003, SIGG.

[107]  Lionel C. Briand,et al.  Using multiple adaptive regression splines to support decision making in code inspections , 2004, J. Syst. Softw..

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

[109]  Andreas Rausch,et al.  Towards a tool support for a Living Software Development Process , 2002, Proceedings of the 35th Annual Hawaii International Conference on System Sciences.

[110]  Deb Jacobs,et al.  Accelerating Process Improvement Using Agile Techniques , 2005 .

[111]  Michiel van Genuchten,et al.  Supporting inspections with an electronic meeting system , 1997 .

[112]  Fraser Macdonald,et al.  Computer Supported Software Inspection , 1999 .

[113]  Steve McConnell,et al.  Code complete - a practical handbook of software construction, 2nd Edition , 1993 .

[114]  Linda Rising,et al.  Patterns: a way to reuse expertise , 1999, IEEE Commun. Mag..

[115]  Jan O. Borchers A pattern approach to interaction design , 2001, DIS '00.

[116]  Alexander Chatzigeorgiou,et al.  Efficient management of inspections in software development projects , 2003, Inf. Softw. Technol..

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

[118]  Ted Davis,et al.  The reuse capability model: a basis for improving an organization's reuse capability , 1993, [1993] Proceedings Advances in Software Reuse.

[119]  Philippe Kruchten,et al.  The Rational Unified Process: An Introduction , 1998 .

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

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

[122]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[123]  Ivan Rozman,et al.  Managing the complexity of SPI in small companies , 2000 .

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

[125]  Jiri Soukup,et al.  Implementing patterns , 1995 .

[126]  Bill Culleton,et al.  Process Improvement for Small Organizations , 1999, Computer.

[127]  Brad Appleton,et al.  Patterns for Conducting Process Improvement , 1998 .

[128]  Craig K. Tyran,et al.  Improving software inspections with group process support , 2002, CACM.

[129]  Scott W. Ambler,et al.  Process patterns: building large-scale systems using object technology , 1998 .

[130]  Mei Hong,et al.  Experience report: using design patterns in the development of JB system , 1997 .

[131]  Christopher Alexander,et al.  The Timeless Way of Building , 1979 .

[132]  Lesley Pek Wee Land,et al.  The impact of training-by-examples on inspection performance using two laboratory experiments , 2004, 2004 Australian Software Engineering Conference. Proceedings..

[133]  Onur Demirörs,et al.  Process improvement towards ISO 9001 certification in a small software organization , 1998, Proceedings of the 20th International Conference on Software Engineering.

[134]  Ita Richardson SPI Models: What Characteristics are Required for Small Software Development Companies? , 2004, Software Quality Journal.

[135]  Terence Patrick Rout,et al.  The Rapid Assessment of Software Process Capability , 2000 .

[136]  Stefan Biffl,et al.  Software Reviews: The State of the Practice , 2003, IEEE Softw..

[137]  Philip B. Crosby,et al.  Quality Is Free: The Art of Making Quality Certain , 1979 .

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

[139]  Michael E. Fagan Design and Code Inspections to Reduce Errors in Program Development (Reprint) , 2002, Software Pioneers.

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

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

[142]  James Coplien,et al.  Industrial experience with design patterns , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[143]  Vahid Mashayekhi,et al.  CAIS: collaborative asynchronous inspection of software , 1994, SIGSOFT '94.

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

[145]  Chris Sauer,et al.  Technical Reviews: A Behaviorally Motivated Program of Research , 2022 .

[146]  Claes Wohlin,et al.  State‐of‐the‐art: software inspections after 25 years , 2002, Softw. Test. Verification Reliab..

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

[148]  Rini van Solingen,et al.  Measuring the ROI of Software Process Improvement , 2004, IEEE Softw..

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

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

[151]  Forrest Shull,et al.  Detecting defects in object-oriented designs: using reading techniques to increase software quality , 1999, OOPSLA '99.

[152]  Watts S. Humphrey,et al.  A method for assessing the software engineering capability of contractors , 1987 .

[153]  K. Ishikawa What is total quality control the japanese way , 2002 .

[154]  Terry Bollinger,et al.  A critical look at software capability evaluations , 1991, IEEE Software.

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

[156]  Donald D. Cowan,et al.  Towards a unified catalog of hypermedia design patterns , 2000, Proceedings of the 33rd Annual Hawaii International Conference on System Sciences.

[157]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

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

[159]  Robert B. Grady,et al.  Successful Software Process Improvement , 1997 .

[160]  Shensheng Zhang,et al.  Hierarchical process patterns: construct software processes in a stepwise way , 2003, SMC'03 Conference Proceedings. 2003 IEEE International Conference on Systems, Man and Cybernetics. Conference Theme - System Security and Assurance (Cat. No.03CH37483).

[161]  D. O'Neill,et al.  Issues in software inspection , 1997 .

[162]  D. Ross Jeffery,et al.  Teaching the process of code review , 2004, 2004 Australian Software Engineering Conference. Proceedings..

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

[164]  Paul W. H. Chung,et al.  Combining and adapting process patterns for flexible workflow , 2000, Proceedings 11th International Workshop on Database and Expert Systems Applications.

[165]  Diane Kelly,et al.  A case study in the use of defect classification in inspections , 2001, CASCON.

[166]  Timo Varkoi,et al.  Models and Success Factors of Process Change , 2001, PROFES.

[167]  Bill Pitterman Telcordia Technologies: The Journey to High Maturity , 2000, IEEE Softw..

[168]  Paul Taylor,et al.  Knowledge management with patterns , 2003, CACM.

[169]  Tom Gilb Planning to Get the Most Out of Inspection , 2000 .

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

[171]  Karl E. Wiegers Read My Lips: No New Models! , 1998, IEEE Softw..

[172]  Laurence Brothers,et al.  ICICLE: Intelligent code inspection in a C language environment , 1990, Proceedings., Fourteenth Annual International Computer Software and Applications Conference.

[173]  Harris Corp,et al.  Software Mini-Assessments: Process and Practice , 1999 .

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

[175]  João Batista Camargo,et al.  Best Practices in Code Inspection for Safety-Critical Software , 2003, IEEE Softw..

[176]  Judith G. Brodman,et al.  What small business and small organizations say about the CMM: experience report , 1994, ICSE '94.

[177]  Sami Zahran Software process improvement - practical guidelines for business success , 1998 .

[178]  Bob McFeeley,et al.  IDEAL: A User's Guide for Software Process Improvement. , 1996 .

[179]  Marc Roper,et al.  Practical Code Inspection Techniques for Object-Oriented Systems: An Experimental Comparison , 2003, IEEE Softw..

[180]  Dirk Riehle,et al.  Understanding and Using Patterns in Software Development , 1996, Theory Pract. Object Syst..

[181]  L. J. Johnston,et al.  Principles for a usability-oriented pattern language , 1998, Proceedings 1998 Australasian Computer Human Interaction Conference. OzCHI'98 (Cat. No.98EX234).

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

[183]  Alan M. Davis Rewards of taking the path less traveled , 1994, IEEE Software.

[184]  Giancarlo Succi,et al.  From process modeling to domain modeling , 1997, SIAP.

[185]  Alan R. Hevner,et al.  Design Science in Information Systems Research , 2004, MIS Q..

[186]  J. G. Brodman,et al.  What small businesses and small organizations say about the CMM , 1994, Proceedings of 16th International Conference on Software Engineering.

[187]  Richard Turner,et al.  CMMI Distilled: A Practical Introduction to Integrated Process Improvement , 2001 .

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

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

[190]  Yasunari Takagi,et al.  Toward computational support for software process improvement activities , 1998, Proceedings of the 20th International Conference on Software Engineering.

[191]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture: A System of Patterns: John Wiley & Sons , 1987 .

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

[193]  Pete Sawyer,et al.  Requirements Engineering: A Good Practice Guide , 1997 .

[194]  Norman E. Fenton,et al.  A Critique of Software Defect Prediction Models , 1999, IEEE Trans. Software Eng..

[195]  James T. Heires What I Did Last Summer: A Software Development Benchmarking Case Study , 2001, IEEE Softw..

[196]  Tore Dybå,et al.  An Instrument for Measuring the Key Factors of Success in Software Process Improvement , 2000, Empirical Software Engineering.