Development and application of an automated source code maintainability index
Journal of Software Maintenance: Research and Practice
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Does Code Decay? Assessing the Evidence from Change Management Data
IEEE Transactions on Software Engineering
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Object-Oriented Metrics in Practice
Object-Oriented Metrics in Practice
IEEE Software
A systematic review of quasi-experiments in software engineering
Information and Software Technology
IEEE Transactions on Software Engineering
A systematic review of software maintainability prediction and metrics
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
Developer fluency: achieving true mastery in software projects
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Code Bad Smells: a review of current knowledge
Journal of Software Maintenance and Evolution: Research and Practice
Assessing software product maintainability based on class-level structural measures
PROFES'06 Proceedings of the 7th international conference on Product-Focused Software Process Improvement
A Systematic Literature Review on Fault Prediction Performance in Software Engineering
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
Context: Many metrics are used in software engineering research as surrogates for maintainability of software systems. Aim: Our aim was to investigate whether such metrics are consistent among themselves and the extent to which they predict maintenance effort at the entire system level. Method: The Maintainability Index, a set of structural measures, two code smells (Feature Envy and God Class) and size were applied to a set of four functionally equivalent systems. The metrics were compared with each other and with the outcome of a study in which six developers were hired to perform three maintenance tasks on the same systems. Results: The metrics were not mutually consistent. Only system size and low cohesion were strongly associated with increased maintenance effort. Conclusion: Apart from size, surrogate maintainability measures may not reflect future maintenance effort. Surrogates need to be evaluated in the contexts for which they will be used. While traditional metrics are used to identify problematic areas in the code, the improvements of the worst areas may, inadvertently, lead to more problems for the entire system. Our results suggest that local improvements should be accompanied by an evaluation at the system level.