Evaluating Software Complexity Measures
IEEE Transactions on Software Engineering
Towards a metrics suite for object oriented design
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Object-oriented metrics that predict maintainability
Journal of Systems and Software - Special issue on object-oriented software
The IEEE standard for software maintenance
ACM SIGSOFT Software Engineering Notes
Cohesion and reuse in an object-oriented system
SSR '95 Proceedings of the 1995 Symposium on Software reusability
Property-Based Software Engineering Measurement
IEEE Transactions on Software Engineering
Software metrics (2nd ed.): a rigorous and practical approach
Software metrics (2nd ed.): a rigorous and practical approach
An investigation into coupling measures for C++
ICSE '97 Proceedings of the 19th international conference on Software engineering
A method for estimating maintenance cost in a software project: a case study
Journal of Software Maintenance: Research and Practice
A Unified Framework for Coupling Measurement in Object-Oriented Systems
IEEE Transactions on Software Engineering
Defining and Validating Measures for Object-Based High-Level Design
IEEE Transactions on Software Engineering
Two case studies of open source software development: Apache and Mozilla
ACM Transactions on Software Engineering and Methodology (TOSEM)
An Experimental Comparison of the Maintainability of Object-Orientedand Structured Design Documents
Empirical Software Engineering
A Unified Framework for Cohesion Measurement in Object-OrientedSystems
Empirical Software Engineering
Replicated Case Studies for Investigating Quality Factorsin Object-Oriented Designs
Empirical Software Engineering
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Measuring Design-Level Cohesion
IEEE Transactions on Software Engineering
Metrics for maintainability of class inheritance hierarchies
Journal of Software Maintenance: Research and Practice
Measuring and Assessing Maintainability at the End of High Level Design
ICSM '93 Proceedings of the Conference on Software Maintenance
IEEE Transactions on Software Engineering
A change impact model for changeability assessment in object-oriented software systems
Science of Computer Programming - Software maintenance and reengineering (CSMR 99)
The software maintenance project effort estimation model based on function points
Journal of Software Maintenance: Research and Practice
A Novel Approach to Measuring Class Cohesion Based on Dependence Analysis
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Predicting Maintainability with Object-Oriented Metrics - An Empirical Comparison
WCRE '03 Proceedings of the 10th Working Conference on Reverse Engineering
A Metrics-Based Software Maintenance Effort Model
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
On the Definition and Use of Aggregate Indices for Nominal, Ordinal, and Other Scales
METRICS '04 Proceedings of the Software Metrics, 10th International Symposium
A Change Impact Dependency Measure for Predicting the Maintainability of Source Code
COMPSAC '04 Proceedings of the 28th Annual International Computer Software and Applications Conference - Workshops and Fast Abstracts - Volume 02
Improving Cohesion Metrics for Classes by Considering Dependent Instance Variables
IEEE Transactions on Software Engineering
Empirical Validation of Object-Oriented Metrics on Open Source Software for Fault Prediction
IEEE Transactions on Software Engineering
Reusability and maintainability metrics for object-oriented software
ACM-SE 38 Proceedings of the 38th annual on Southeast regional conference
The interpretation and utility of three cohesion metrics for object-oriented design
ACM Transactions on Software Engineering and Methodology (TOSEM)
Metrics for class cohesion and similarity between methods
Proceedings of the 44th annual Southeast regional conference
Predicting object-oriented software maintainability using multivariate adaptive regression splines
Journal of Systems and Software
API-Based and Information-Theoretic Metrics for Measuring the Quality of Software Modularization
IEEE Transactions on Software Engineering
An empirical study of slice-based cohesion and coupling metrics
ACM Transactions on Software Engineering and Methodology (TOSEM)
Cohesion Metrics for Predicting Maintainability of Service-Oriented Software
QSIC '07 Proceedings of the Seventh International Conference on Quality Software
Using the Conceptual Cohesion of Classes for Fault Prediction in Object-Oriented Systems
IEEE Transactions on Software Engineering
Refining the axiomatic definition of internal software attributes
Proceedings of the Second ACM-IEEE international symposium on Empirical software engineering and measurement
Evaluating the Quality of Open Source Software
Electronic Notes in Theoretical Computer Science (ENTCS)
Application of TreeNet in Predicting Object-Oriented Software Maintainability: A Comparative Study
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
Journal of Systems and Software
A probability-based approach for measuring external attributes of software artifacts
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
Predicting Object-Oriented Software Maintainability Using Projection Pursuit Regression
ICISE '09 Proceedings of the 2009 First IEEE International Conference on Information Science and Engineering
Finding software metrics threshold values using ROC curves
Journal of Software Maintenance and Evolution: Research and Practice
Advanced Data Mining Techniques
Advanced Data Mining Techniques
An object-oriented high-level design-based class cohesion metric
Information and Software Technology
Improving the applicability of object-oriented class cohesion metrics
Information and Software Technology
Measuring the Discriminative Power of Object-Oriented Class Cohesion Metrics
IEEE Transactions on Software Engineering
A Precise Method-Method Interaction-Based Cohesion Metric for Object-Oriented Classes
ACM Transactions on Software Engineering and Methodology (TOSEM)
Assessing software product maintainability based on class-level structural measures
PROFES'06 Proceedings of the 7th international conference on Product-Focused Software Process Improvement
Information and Software Technology
An empirical investigation of perceived reliability of open source Java programs
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Standardized code quality benchmarking for improving software maintainability
Software Quality Control
Information and Software Technology
Hi-index | 0.00 |
Context: Class maintainability is the likelihood that a class can be easily modified. Before releasing an object-oriented software system, it is impossible to know with certainty when, where, how, and how often a class will be modified. At that stage, this likelihood can be estimated using the internal quality attributes of a class, which include cohesion, coupling, and size. To reduce the future class maintenance efforts and cost, developers are encouraged to carefully test and well document low maintainability classes before releasing the object-oriented system. Objective: We empirically study the relationship between internal class quality attributes (size, cohesion, and coupling) and an external quality attribute (class maintainability). Using statistical techniques, we also construct models based on the selected internal attributes to predict class maintainability. Method: We consider classes of three open-source systems. For each class, we account for two actual maintainability indicators, the number of revised lines of code and the number of revisions in which the class was involved. Using 19 internal quality measures, we empirically explore the impact of size, cohesion, and coupling on class maintainability. We also empirically investigate the abilities of the measures, considered both individually and combined, to estimate class maintainability. Statistically based prediction models are constructed and validated. Results: Our results demonstrate that classes with better qualities (i.e., higher cohesion values and lower size and coupling values) have better maintainability (i.e., are more likely to be easily modified) than those of worse qualities. Most of the considered measures are shown to be predictors of the considered maintainability indicators to some degree. The abilities of the considered internal quality measures to predict class maintainability are improved when the measures are combined using optimized multivariate statistical models. Conclusion: The prediction models can help software engineers locate classes with low maintainability. These classes must be carefully tested and well documented.