Program restructuring as an aid to software maintenance
Program restructuring as an aid to software maintenance
Automated assistance for program restructuring
ACM Transactions on Software Engineering and Methodology (TOSEM)
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Creating abstract superclasses by refactoring
CSC '93 Proceedings of the 1993 ACM conference on Computer science
Object-oriented type systems
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Modular type-based reverse engineering of parameterized types in Java code
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Understanding class hierarchies using concept analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Evolving Object-Oriented Designs with Refactorings
Automated Software Engineering
Refactoring for generalization using type constraints
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Adding wildcards to the Java programming language
Proceedings of the 2004 ACM symposium on Applied computing
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
Refactoring to Patterns
Converting Java classes to use generics
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Converting java programs to use generic libraries
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Refactoring class hierarchies with KABA
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Refactoring support for class library migration
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Decoupling classes with inferred interfaces
Proceedings of the 2006 ACM symposium on Applied computing
Refactoring for Parameterizing Java Classes
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Efficiently refactoring java applications to use generic libraries
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Systematically refactoring inheritance to delegation in java
Proceedings of the 30th international conference on Software engineering
The impact of static-dynamic coupling on remodularization
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
From Public to Private to Absent: Refactoring Java Programs under Constrained Accessibility
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Refactoring tools: report on the 1st workshop WRT at ECOOP 2007
ECOOP'07 Proceedings of the 2007 conference on Object-oriented technology
Test generation through programming in UDITA
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
From behaviour preservation to behaviour modification: constraint-based mutant generation
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Specifying and implementing refactorings
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Correct refactoring of concurrent java code
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Refactoring using type constraints
ACM Transactions on Programming Languages and Systems (TOPLAS)
Refactoring Java programs for flexible locking
Proceedings of the 33rd International Conference on Software Engineering
A refactoring constraint language and its application to eiffel
Proceedings of the 25th European conference on Object-oriented programming
Tool-supported refactoring for JavaScript
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Constraint-based model refactoring
Proceedings of the 14th international conference on Model driven engineering languages and systems
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
Type constraints express subtype-relationships between the types of program expressions that are required for type-correctness, and were originally proposed as a convenient framework for solving type checking and type inference problems. In this paper, we show how type constraints can be used as the basis for practical refactoring tools. In our approach, a set of type constraints is derived from a type-correct program P. The main insight behind our work is the fact that P constitutes just one solution to this constraint system, and that alternative solutions may exist that correspond to refactored versions of P. We show how a number of refactorings for manipulating types and class hierarchies can be expressed naturally using type constraints. Several refactorings in the standard distribution of Eclipse are based on our results.