Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Subtypes vs. where clauses: constraining parametric polymorphism
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
ICSE '94 Proceedings of the 16th international conference on Software engineering
Experimentation in software engineering: an introduction
Experimentation in software engineering: an introduction
Agile Software Development: Principles, Patterns, and Practices
Agile Software Development: Principles, Patterns, and Practices
Object Oriented Reengineering Patterns
Object Oriented Reengineering Patterns
A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions
IEEE Transactions on Software Engineering
CSMR '01 Proceedings of the Fifth European Conference on Software Maintenance and Reengineering
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
A Methodology for the Automated Introduction of Design Patterns
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)
IEEE Transactions on Software Engineering
Refactor Conditionals into Polymorphism: What's the Performance Cost of Introducing Virtual Calls?
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Work experience versus refactoring to design patterns: a controlled experiment
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Do Maintainers Utilize Deployed Design Patterns Effectively?
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Towards Automated Restructuring of Object Oriented Systems
CSMR '07 Proceedings of the 11th European Conference on Software Maintenance and Reengineering
Getting the most from search-based refactoring
Proceedings of the 9th annual conference on Genetic and evolutionary computation
A study of quality improvements by refactoring
A study of quality improvements by refactoring
Search-based refactoring for software maintenance
Journal of Systems and Software
JDeodorant: Identification and Removal of Type-Checking Bad Smells
CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
Information and Software Technology
Automated refactoring to the Strategy design pattern
Information and Software Technology
Identification of generalization refactoring opportunities
Automated Software Engineering
To what extent can maintenance problems be predicted by code smell detection? - An empirical study
Information and Software Technology
Investigating the evolution of code smells in object-oriented systems
Innovations in Systems and Software Engineering
Hi-index | 0.00 |
Polymorphism is one of the most important features offered by object-oriented programming languages, since it allows to extend/modify the behavior of a class without altering its source code, in accordance to the Open/Closed Principle. However, there is a lack of methods and tools for the identification of places in the code of an existing system that could benefit from the employment of polymorphism. In this paper we propose a technique that extracts refactoring suggestions introducing polymorphism. The approach ensures the behavior preservation of the code and the applicability of the refactoring suggestions based on the examination of a set of preconditions.