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
Cohesion and reuse in an object-oriented system
SSR '95 Proceedings of the 1995 Symposium on Software reusability
Object-oriented metrics: measures of complexity
Object-oriented metrics: measures of complexity
An investigation into coupling measures for C++
ICSE '97 Proceedings of the 19th international conference on Software engineering
A Unified Framework for Coupling Measurement in Object-Oriented Systems
IEEE Transactions on Software Engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Defining and Validating Measures for Object-Based High-Level Design
IEEE Transactions on Software Engineering
A cohesion measure for object-oriented classes
Software—Practice & Experience
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
Impact of Inheritance on Metrics for Size, Coupling, and Cohesion in Object-Oriented Systems
IWSM '00 Proceedings of the 10th International Workshop on New Approaches in Software Measurement
IEEE Transactions on Software Engineering
Software—Practice & Experience
ICBMC: An Improved Cohesion Measure for Classes
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
A Novel Approach to Measuring Class Cohesion Based on Dependence Analysis
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
A comparative study of graph theory-based class cohesion measures
ACM SIGSOFT Software Engineering Notes
Improving Cohesion Metrics for Classes by Considering Dependent Instance Variables
IEEE Transactions on Software Engineering
Refactoring " Improving Coupling and Cohesion of Existing Code
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
Empirical Validation of Object-Oriented Metrics on Open Source Software for Fault Prediction
IEEE Transactions on Software Engineering
Search-Based Software Maintenance
CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
Lightweight Detection of Program Refactorings
APSEC '05 Proceedings of the 12th Asia-Pacific Software Engineering 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
Using the Conceptual Cohesion of Classes for Fault Prediction in Object-Oriented Systems
IEEE Transactions on Software Engineering
Evaluating the Quality of Open Source Software
Electronic Notes in Theoretical Computer Science (ENTCS)
An expert system for determining candidate software classes for refactoring
Expert Systems with Applications: An International Journal
Representing refactoring opportunities
Proceedings of the 2009 ACM symposium on Applied Computing
Identification of Extract Method Refactoring Opportunities
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
Empirical investigation of refactoring effect on software quality
Information and Software Technology
Identification of Move Method Refactoring Opportunities
IEEE Transactions on Software Engineering
Journal of Systems and Software
Strengthening Refactoring: Towards Software Evolution with Quantitative and Experimental Grounds
ICSEA '09 Proceedings of the 2009 Fourth International Conference on Software Engineering Advances
DECOR: A Method for the Specification and Detection of Code and Design Smells
IEEE Transactions on Software Engineering
Identification of refactoring opportunities introducing polymorphism
Journal of Systems and Software
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
A two-step technique for extract class refactoring
Proceedings of the IEEE/ACM international conference on Automated software engineering
An object-oriented high-level design-based class cohesion metric
Information and Software Technology
Identifying Extract Class refactoring opportunities using structural and semantic cohesion measures
Journal of Systems and Software
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)
Information and Software Technology
Object-oriented class maintainability prediction using internal quality attributes
Information and Software Technology
Hi-index | 0.00 |
Context: Refactoring is a maintenance task that refers to the process of restructuring software source code to enhance its quality without affecting its external behavior. Inspecting and analyzing the source code of the system under consideration to identify the classes in need of extract subclass refactoring (ESR) is a time consuming and costly process. Objective: This paper explores the abilities of several quality metrics considered individually and in combination to predict the classes in need of ESR. Method: For a given a class, this paper empirically investigates, using univariate logistic regression analysis, the abilities of 25 existing size, cohesion, and coupling metrics to predict whether the class is in need of restructuring by extracting a subclass from it. In addition, models of combined metrics based on multivariate logistic regression analysis were constructed and validated to predict the classes in need of ESR, and the best model is justifiably recommended. We explored the statistical relations between the values of the selected metrics and the decisions of the developers of six open source Java systems with respect to whether the classes require ESR. Results: The results indicate that there was a strong statistical relation between some of the quality metrics and the decision of whether ESR activity was required. From a statistical point of view, the recommended model of metrics has practical thresholds that lead to an outstanding classification of the classes into those that require ESR and those that do not. Conclusion: The proposed model can be applied to automatically predict the classes in need of ESR and present them as suggestions to developers working to enhance the system during the maintenance phase. In addition, the model is capable of ranking the classes of the system under consideration according to their degree of need of ESR.