Candidate metrics for object-oriented software within a taxonomy framework
Journal of Systems and Software - Special issue on achieving quality in software
Automatic inheritance hierarchy restructuring and method refactoring
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A Validation of Object-Oriented Design Metrics as Quality Indicators
IEEE Transactions on Software Engineering
An Evaluation of the MOOD Set of Object-Oriented Software Metrics
IEEE Transactions on Software Engineering
Another metric suite for object-oriented programming
Journal of Systems and Software
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
A Validation of the Component-Based Method for Software Size Estimation
IEEE Transactions on Software Engineering - special section on current trends in exception handling—part II
A Hierarchical Model for Object-Oriented Design Quality Assessment
IEEE Transactions on Software Engineering
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Generating Software Test Data by Evolution
IEEE Transactions on Software Engineering
An Incremental Class Reorganization Approach
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
A New Representation And Crossover Operator For Search-based Optimization Of Software Modularization
GECCO '02 Proceedings of the Genetic and Evolutionary Computation Conference
The GOODLY Design Language for MOOD2 Metrics Collection
Proceedings of the Workshop on Object-Oriented Technology
Evaluating the Impact of Object-Oriented Design on Software Quality
METRICS '96 Proceedings of the 3rd International Symposium on Software Metrics: From Measurement to Empirical Results
Automatic Clustering of Software Systems Using a Genetic Algorithm
STEP '99 Proceedings of the Software Technology and Engineering Practice
An Architecture for Distributing the Computation of Software Clustering Algorithms
WICSA '01 Proceedings of the Working IEEE/IFIP Conference on Software Architecture
Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Java Quality Assurance by Detecting Code Smells
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
A heuristic search approach to solving the software clustering problem
A heuristic search approach to solving the software clustering problem
A stochastic approach to automated design improvement
PPPJ '03 Proceedings of the 2nd international conference on Principles and practice of programming in Java
Metrics Are Fitness Functions Too
METRICS '04 Proceedings of the Software Metrics, 10th International Symposium
Journal of Software Maintenance and Evolution: Research and Practice - Seventh European Conference on Software Maintenance and Reengineering (CSMR 2003)
Search-Based Software Maintenance
CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
Proceedings of the 8th annual conference on Genetic and evolutionary computation
Deriving high-level abstractions from legacy software using example-driven clustering
Proceedings of the 2011 Conference of the Center for Advanced Studies on Collaborative Research
Improving software security using search-based refactoring
SSBSE'12 Proceedings of the 4th international conference on Search Based Software Engineering
Hi-index | 0.00 |
The high cost of software maintenance could potentially be reduced by automatically improving the design of object-oriented programs without altering their behaviour. We have constructed a software tool capable of refactoring object-oriented programs to conform more closely to design quality models based on a set of metrics, by formulating the task as a search problem in the space of alternative designs. However, no consensus exists on a single quality model for object-oriented design, since the definition of 'quality' can depend on the purpose, pedigree and perception of the maintenance programmer. We therefore demonstrate here the flexibility of our approach by automatically refactoring several Java programs to conform with quality models based on the metric values of example programs. Results show that an object-oriented program can be automatically refactored to reduce its dissimilarity in terms of a set of design metrics to another program having some desirable trait, such as ease of maintenance.