Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Object-oriented metrics that predict maintainability
Journal of Systems and Software - Special issue on object-oriented software
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Identifying objects using cluster and concept analysis
Proceedings of the 21st international conference on Software engineering
Supporting program comprehension using semantic and structural information
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Agile Software Development: Principles, Patterns, and Practices
Agile Software Development: Principles, Patterns, and Practices
Object Oriented Reengineering Patterns
Object Oriented Reengineering Patterns
A Unified Framework for Cohesion Measurement in Object-OrientedSystems
Empirical Software Engineering
CSMR '01 Proceedings of the Fifth European Conference on Software Maintenance and Reengineering
Component Clustering Based on Maximal Association
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Using Automatic Clustering to Produce High-Level System Organizations of Source Code
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
A Metric-Based Approach to Enhance Design Quality through Meta-pattern Transformations
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
Java Quality Assurance by Detecting Code Smells
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
Source-Based Software Risk Assessment
ICSM '03 Proceedings of the International Conference on Software Maintenance
Mathematical Assessment of Object-Oriented Design Quality
IEEE Transactions on Software Engineering
Evaluating Object-Oriented Designs with Link Analysis
Proceedings of the 26th International Conference on Software Engineering
Detection Strategies: Metrics-Based Rules for Detecting Design Flaws
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Refactoring " Improving Coupling and Cohesion of Existing Code
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
Spectral and meta-heuristic algorithms for software clustering
Journal of Systems and Software - Special issue: Software reverse engineering
The Conceptual Cohesion of Classes
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Product Metrics for Automatic Identification of "Bad Smell" Design Problems in Java Source-Code
METRICS '05 Proceedings of the 11th IEEE International Software Metrics Symposium
Diagnosing Design Problems in Object Oriented Systems
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
The complexity of computing a Nash equilibrium
Communications of the ACM - Inspiring Women in Computing
Automatic identification of key classes in a software system using webmining techniques
Journal of Software Maintenance and Evolution: Research and Practice
Concept Analysis for Class Cohesion
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
Identification of Move Method Refactoring Opportunities
IEEE Transactions on Software Engineering
Tracking Design Smells: Lessons from a Study of God Classes
WCRE '09 Proceedings of the 2009 16th Working Conference on Reverse Engineering
DECOR: A Method for the Specification and Detection of Code and Design Smells
IEEE Transactions on Software Engineering
A Bayesian Approach for the Detection of Code and Design Smells
QSIC '09 Proceedings of the 2009 Ninth International Conference on Quality Software
A two-step technique for extract class refactoring
Proceedings of the IEEE/ACM international conference on Automated software engineering
Correct refactoring of concurrent java code
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Playing with refactoring: Identifying extract class opportunities through game theory
ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
Identifying Extract Class refactoring opportunities using structural and semantic cohesion measures
Journal of Systems and Software
JDeodorant: identification and application of extract class refactorings
Proceedings of the 33rd International Conference on Software Engineering
Efficient software clustering technique using an adaptive and preventive dendrogram cutting approach
Information and Software Technology
To what extent can maintenance problems be predicted by code smell detection? - An empirical study
Information and Software Technology
Hi-index | 0.00 |
Refactoring is recognized as an essential practice in the context of evolutionary and agile software development. Recognizing the importance of the practice, modern IDEs provide some support for low-level refactorings. A notable exception in the list of supported refactorings is the ''Extract Class'' refactoring, which is conceived to simplify large, complex, unwieldy and less cohesive classes. In this work, we describe a method and a tool, implemented as an Eclipse plugin, designed to fulfill exactly this need. Our method involves three steps: (a) recognition of Extract Class opportunities, (b) ranking of the identified opportunities in terms of the improvement each one is anticipated to bring about to the system design, and (c) fully automated application of the refactoring chosen by the developer. The first step relies on an agglomerative clustering algorithm, which identifies cohesive sets of class members within the system classes. The second step relies on the Entity Placement metric as a measure of design quality. Through a set of experiments we have shown that the tool is able to identify and extract new classes that developers recognize as ''coherent concepts'' and improve the design quality of the underlying system.