Assessing the maintainability benefits of design restructuring using dependency analysis

Software developers and project managers often have to assess the quality of software design. A commonly adopted hypothesis is that a good design should cost less to maintain than a poor design. We propose a model for quantifying the quality of a design from a maintainability perspective. Based on this model, we propose a novel strategy for predicting the "return on investment" (ROI) for possible design restructurings using procedure level dependency analysis. We demonstrate this approach with two exploratory Java case studies. Our results show that common low level source code transformations change the system dependency structure in a beneficial way, allowing recovery of the initial refactoring investment over a number of maintenance activities.

[1]  Somesh Jha,et al.  Software Design as an Investment Activity: A Real Options Perspective , 1998 .

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

[3]  Egon Berghout,et al.  Proceedings. Ninth International Software Metrics Symposium , 2003, Proceedings. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No.03EX717).

[4]  David P. Darcy,et al.  Managerial Use of Metrics for Object-Oriented Software: An Exploratory Analysis , 1998, IEEE Trans. Software Eng..

[5]  Victor R. Basili,et al.  Understanding and predicting the process of software maintenance releases , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[6]  Sallie M. Henry,et al.  Object-oriented metrics that predict maintainability , 1993, J. Syst. Softw..

[7]  John Mylopoulos,et al.  Requirements-driven software re-engineering framework , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[8]  F. George Wilkie,et al.  Measuring Complexity in C++ Application Software , 1998, Softw. Pract. Exp..

[9]  B. Kitchenham,et al.  Case Studies for Method and Tool Evaluation , 1995, IEEE Softw..

[10]  Paul W. Oman,et al.  Using metrics to evaluate software system maintainability , 1994, Computer.

[11]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[12]  Norman E. Fenton,et al.  Quantitative Analysis of Faults and Failures in a Complex Software System , 2000, IEEE Trans. Software Eng..

[13]  Joseph P. Loyall,et al.  Using dependence analysis to support the software maintenance process , 1993, 1993 Conference on Software Maintenance.

[14]  Lionel C. Briand,et al.  Assessing the cost-effectiveness of inspections by combining project data and expert opinion , 2000, Proceedings 11th International Symposium on Software Reliability Engineering. ISSRE 2000.

[15]  Ellis Horowitz,et al.  Software Cost Estimation with COCOMO II , 2000 .

[16]  Lionel C. Briand,et al.  Exploring the relationships between design measures and software quality in object-oriented systems , 2000, J. Syst. Softw..

[17]  Fernando Brito e Abreu,et al.  Evaluating the impact of object-oriented design on software quality , 1996, Proceedings of the 3rd International Software Metrics Symposium.

[18]  Mario Piattini,et al.  Using code metrics to predict maintenance of legacy programs: a case study , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[19]  Lionel C. Briand,et al.  Empirical Studies of Quality Models in Object-Oriented Systems , 2002, Adv. Comput..