Micro process analysis of maintenance effort: an open source software case study using metrics based on program slicing

For any software project, most experts regard the maintenance phase as the most effort and cost intensive of all phases in the software development life cycle. This is due to the high maintenance effort, time, and resources needed to effectively address issues during software maintenance (maintenance activities). Mismanagement of these efforts can lead to the degradation of software maintainability. Understanding the assessment of the related software processes can help sustain or improve maintainability during these maintenance activities. Recent studies have shown that current software process assessments are expensive, generic, and complex, especially for smaller organizations. In this paper, we investigate an alternative software process assessment approach performed by analyzing fine‐grained processes (micro processes) of maintenance activities. This approach assesses maintenance efforts based on micro processes in relation to their impact on source code. The approach derives maintenance effort from the complexity and duration of micro processes and uses proposed metrics based on program slicing to measure change impact. In this paper, we investigate an alternative software process assessment approach by analysing fine‐grained processes (micro processes) of maintenance activities. At statistically significant levels, results suggest that the level of the maintenance efforts correlates with its impact on source code. Copyright © 2012 John Wiley & Sons, Ltd.

[1]  Daniel M. Germán,et al.  An empirical study of fine-grained software modifications , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[2]  Keith Brian Gallagher,et al.  Using Program Slicing in Software Maintenance , 1991, IEEE Trans. Software Eng..

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

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

[5]  Harald C. Gall,et al.  Analyzing and relating bug report data for feature tracking , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[6]  F. Mosteller,et al.  Understanding robust and exploratory data analysis , 1985 .

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

[8]  D. Ross Jeffery,et al.  An exploratory study of why organizations do not adopt CMMI , 2007, J. Syst. Softw..

[9]  Nachiappan Nagappan,et al.  Predicting defects using network analysis on dependency graphs , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[10]  Shinji Kusumoto,et al.  Experimental Evaluation of Program Slicing for Fault Localization , 2002, Empirical Software Engineering.

[11]  Mark Harman,et al.  Locating dependence clusters and dependence pollution , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[12]  Frederick Mosteller,et al.  Understanding robust and exploratory data analysis , 1983 .

[13]  Pasi Kuvaja,et al.  Product Focused Process Improvement : Experiences of Applying the PROFES Improvement Methodology at DRÄGER , 1999 .

[14]  Hajimu Iida,et al.  Analysis of Bug Fixing Processes Using Program Slicing Metrics , 2010, PROFES.

[15]  Richard C. Holt,et al.  Predicting change propagation in software systems , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[16]  Ahmed E. Hassan,et al.  Predicting faults using the complexity of code changes , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[17]  Chong-Won Lee,et al.  A unified model for the implementation of both ISO 9001: 2000 and CMMI by ISO-certified organizations , 2006, J. Syst. Softw..

[18]  Tracy Hall,et al.  Motivators of Software Process Improvement: an analysis of practitioners' views , 2002, Journal of Systems and Software.

[19]  Sunghun Kim,et al.  Bug Classification Using Program Slicing Metrics , 2006, 2006 Sixth IEEE International Workshop on Source Code Analysis and Manipulation.

[20]  Jouni Markkula,et al.  Evaluating the Impact of Adaptive Maintenance Process on Open Source Software Quality , 2007, ESEM 2007.

[21]  Mark Harman,et al.  An empirical study of static program slice size , 2007, TSEM.

[22]  Tracy Hall,et al.  De-motivators for software process improvement: an analysis of practitioners' views , 2003, J. Syst. Softw..

[23]  David W. Binkley,et al.  Slice-based cohesion metrics and software intervention , 2004, 11th Working Conference on Reverse Engineering.

[24]  V. Malheiros,et al.  A Visual Text Mining approach for Systematic Reviews , 2007, ESEM 2007.

[25]  Daniel M. Germán,et al.  Change Impact Graphs: Determining the Impact of Prior Code Changes , 2008, 2008 Eighth IEEE International Working Conference on Source Code Analysis and Manipulation.

[26]  Akito Monden,et al.  Revisiting common bug prediction findings using effort-aware models , 2010, 2010 IEEE International Conference on Software Maintenance.

[27]  Andreas Zeller,et al.  How Long Will It Take to Fix This Bug? , 2007, Fourth International Workshop on Mining Software Repositories (MSR'07:ICSE Workshops 2007).

[28]  Gail C. Murphy,et al.  Predicting source code changes by mining change history , 2004, IEEE Transactions on Software Engineering.

[29]  Tom Lam,et al.  A software maintenance survey , 1994, Proceedings of 1st Asia-Pacific Software Engineering Conference.

[30]  John E. Gaffney,et al.  Software Function, Source Lines of Code, and Development Effort Prediction: A Software Science Validation , 1983, IEEE Transactions on Software Engineering.

[31]  Gerardo Canfora,et al.  Fine grained indexing of software repositories to support impact analysis , 2006, MSR '06.

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

[33]  Matthew B. Dwyer,et al.  Differential symbolic execution , 2008, SIGSOFT '08/FSE-16.

[34]  Jürgen Münch,et al.  Scoping Software Process Models - Initial Concepts and Experience from Defining Space Standards , 2008, ICSP.

[35]  Austen Rainer,et al.  Key success factors for implementing software process improvement: a maturity-based analysis , 2002, J. Syst. Softw..

[36]  Harald C. Gall,et al.  Populating a Release History Database from version control and bug tracking systems , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[37]  Dewayne E. Perry,et al.  Metrics and laws of software evolution-the nineties view , 1997, Proceedings Fourth International Software Metrics Symposium.

[38]  Paul Anderson,et al.  The CodeSurfer software understanding platform , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[39]  Lowell Jay Arthur Software evolution: the software maintenance challenge , 1988 .

[40]  Onur Demirörs,et al.  Conceptual Differences Among Functional Size Measurement Methods , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).

[41]  P. Wernick,et al.  Program slicing metrics and evolvability: an initial study , 2005, IEEE International Workshop on Software Evolvability (Software-Evolvability'05).

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

[43]  Stephen R. Schach,et al.  Open-Source Change Logs , 2004, Empirical Software Engineering.

[44]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[45]  Benjamin Livshits,et al.  DynaMine: finding common error patterns by mining software revision histories , 2005, ESEC/FSE-13.

[46]  Muhammad Ali Babar,et al.  Motivators of Software Process Improvement: An Analysis of Vietnamese Practitioners' Views , 2007, EASE.

[47]  Sunghun Kim,et al.  How long did it take to fix bugs? , 2006, MSR '06.

[48]  Austen Rainer,et al.  Requirements problems in twelve software companies: an empirical analysis , 2002, IEE Proc. Softw..

[49]  Daniel M. Germán,et al.  Change impact graphs: Determining the impact of prior codechanges , 2009, Inf. Softw. Technol..

[50]  Nachiappan Nagappan,et al.  Using Software Dependencies and Churn Metrics to Predict Field Failures: An Empirical Case Study , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).

[51]  Kent Johnson,et al.  Interpreting the CMMI : A Process Improvement Approach , 2003 .

[52]  Yi Zhang,et al.  Classifying Software Changes: Clean or Buggy? , 2008, IEEE Transactions on Software Engineering.

[53]  Kevin Crowston,et al.  The Perils and Pitfalls of Mining SourceForge , 2004, MSR.