Using Software Metrics and Program Slicing for Refactoring

Abstract : Refactoring can improve the quality of a software system as measured by coupling, cohesion, and cyclomatic complexity, but knowing which refactoring choices should be implemented is key. This article presents an approach that guides the refactoring of software systems by combining the use of software metrics and a technique called program slicing. Program slices produced from a single software module are sorted by the respective values of the metrics; a design that provides the most beneficial metric values can be selected from these. This approach can produce a software system with higher quality and maintainability as measured by the metrics.

[1]  James M. Bieman,et al.  Measuring Functional Cohesion , 1994, IEEE Trans. Software Eng..

[2]  Claus Lewerentz,et al.  Metrics Based Refactoring , 2001, CSMR.

[3]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[4]  Capers Jones,et al.  Assessment and control of software risks , 1994, Yourdon Press Computing Series.

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

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

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

[8]  Andrew M. Kuhn,et al.  Code Complete , 2005, Technometrics.

[9]  Mathieu Verbaere,et al.  Program Slicing for Refactoring , 2003 .

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

[11]  MylopoulosJohn,et al.  Quality-driven software re-engineering , 2003 .

[12]  Victor R. Basili,et al.  Analyzing Error-Prone System Structure , 1991, IEEE Trans. Software Eng..

[13]  Michael F. Petras,et al.  SPC for the Rest of Us , 1999 .

[14]  Mark C. Paulk,et al.  Capability Maturity Model for Software, Version 1.1 , 1993 .

[15]  Martin Shepperd,et al.  Metrics, outlier analysis and the software design process , 1989 .

[16]  Chris F. Kemerer,et al.  Cyclomatic Complexity Density and Software Maintenance Productivity , 1991, IEEE Trans. Software Eng..

[17]  Glenford J. Myers,et al.  Structured Design , 1999, IBM Syst. J..

[18]  Takeo Imai,et al.  A quantitative evaluation of maintainability enhancement by refactoring , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[19]  John Mylopoulos,et al.  Quality-driven software re-engineering , 2003, J. Syst. Softw..