Handling of Software Quality Defects in Agile Software Development

Software quality assurance is concerned with the efficient and effective development of large, reliable, and high-quality software systems. In agile software development and maintenance, refactoring is an important phase for the continuous improvement of a software system by removing quality defects like code smells. As time is a crucial factor in agile development, not all quality defects can be removed in one refactoring phase (especially in one iteration). Documentation of quality defects that are found during automated or manual discovery activities (e.g., pair programming) is necessary to avoid wasting time by rediscovering them in later phases. Unfortunately, the documentation and handling of existing quality defects and refactoring activities is a common problem in software maintenance. To recall the rationales why changes were carried out, information has to be extracted from either proprietary documentations or software versioning systems. In this chapter, we describe a process for the recurring and sustainable discovery, handling, and treatment of quality defects in software systems. An annotation language is presented that is used to store information about quality defects found in source code and that represents the defect and treatment history of a part of a software system. The process and annotation language can not only be used to support quality defect discovery processes, but is also applicable in testing and inspection processes.

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

[2]  M. Ciolkowski,et al.  Software inspections, reviews and walkthroughs , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

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

[4]  Chris Verhoef,et al.  How to implement the future? , 2000, Proceedings of the 26th Euromicro Conference. EUROMICRO 2000. Informatics: Inventing the Future.

[5]  Paul F. Dubois,et al.  Issue tracking , 2003, Comput. Sci. Eng..

[6]  Roland J. Weiss,et al.  ProgDOC - A New Program Documentation System , 2003, Ershov Memorial Conference.

[7]  Jörg Rech,et al.  Experience-Based Refactoring for Goal-Oriented Software Quality Improvement , 2004 .

[8]  Gabriela Avram,et al.  Using Weblogs for Knowledge Sharing and Learning in Information Spaces , 2005, J. Univers. Comput. Sci..

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

[10]  R. G. Dromey,et al.  Cornering the Chimera , 1996, IEEE Softw..

[11]  Arthur J. Riel,et al.  Object-Oriented Design Heuristics , 1996 .

[12]  Jason Remillard Source Code Review Systems , 2005, IEEE Softw..

[13]  Thomas J. Mowbray,et al.  AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis , 1998 .

[14]  Nicolás Serrano,et al.  Bugzilla, ITracker, and Other Bug Trackers , 2005, IEEE Softw..

[15]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[16]  Marco Torchiano Documenting pattern use in Java programs , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[17]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[18]  Khaled M. Khan,et al.  A Tool Support for Secure Software Integration , 2010, Int. J. Secur. Softw. Eng..

[19]  Stéphane Ducasse,et al.  Using history information to improve design flaws detection , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

[20]  Johannes Sametinger,et al.  Evolution support by homogeneously documenting patterns, aspects and traces , 2002, Proceedings of the Sixth European Conference on Software Maintenance and Reengineering.

[21]  Shinji Fukui Introduction of the Software Configuration Management Team and Defect Tracking System for Global Distributed Development , 2002, ECSQ.

[22]  Jörg Rech Towards Knowledge Discovery in Software Repositories to Support Refactoring Jörg Rech Fraunhofer IESE , 2004 .

[23]  Akif Günes Koru,et al.  Defect handling in medium and large open source projects , 2004, IEEE Software.

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

[25]  Martin Lippert,et al.  Refactorings in großen Softwareprojekten - komplexe Restrukturierungen erfolgreich durchführen , 2004 .

[26]  R. Geoff Dromey,et al.  Software Quality—Prevention versus Cure? , 2003, Software Quality Journal.

[27]  Peter Liggesmeyer Testen sicherheitskritischer Software zwischen Theorie und Praxis: Eine Bestandsaufnahme (Testing Safety-Critical Software in Theory and Practice: A Summary) , 2003, it Inf. Technol..

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

[29]  R. Kramer iContract - The Java(tm) Design by Contract(tm) Tool , 1998 .

[30]  Bernd G. Freimut Developing and using defect classification schemes , 2001 .

[31]  Norman E. Fenton,et al.  Software metrics: successes, failures and new directions , 1999, J. Syst. Softw..

[32]  Joshua Kerievsky,et al.  Refactoring to Patterns , 2004, XP/Agile Universe.

[33]  Søren Lauesen,et al.  Is Software Quality Visible in the Code? , 1998, IEEE Softw..

[34]  Radu Marinescu,et al.  Detection strategies: metrics-based rules for detecting design flaws , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[35]  Martin Lippert,et al.  Refactoring in Large Software Projects , 2006 .

[36]  Ram Chillarege,et al.  Orthogonal defect classification , 1996 .

[37]  H. D. Rombach,et al.  The Goal Question Metric Approach , 1994 .

[38]  O. Moreau,et al.  Inline automated defect classification: a novel approach to defect management , 2005, IEEE/SEMI Conference and Workshop on Advanced Semiconductor Manufacturing 2005..

[39]  Scott A. Whitmire,et al.  Object-Oriented Design Measurement , 1997 .

[40]  Jon Mason Chapter 26 – From e-Learning to e-Knowledge , 2005 .

[41]  Tom Mens,et al.  Refactoring: Current Research and Future Trends , 2003, LDTA@ETAPS.

[42]  William C. Wake,et al.  Refactoring Workbook , 2003 .

[43]  Tom Mens,et al.  Identifying refactoring opportunities using logic meta programming , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[44]  Douglas Kramer,et al.  API documentation from source code comments: a case study of Javadoc , 1999, SIGDOC '99.

[45]  Eric Allen Bug Patterns in Java , 2002 .

[46]  Stefan Roock,et al.  Refactoring Tags for automatic refactoring of framework dependent applications , 2002 .