An axiomatic basis for computer programming
Communications of the ACM
Practical analysis for refactoring
Practical analysis for refactoring
Refactoring to Patterns
Static composition of refactorings
Science of Computer Programming - Special issue on program transformation
Formal Specification and Verification of Java Refactorings
SCAM '06 Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation
Correct refactoring of concurrent java code
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Template-based reconstruction of complex refactorings
ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
A case of visitor versus interpreter pattern
TOOLS'11 Proceedings of the 49th international conference on Objects, models, components, patterns
Automated Refactoring Using Design Differencing
CSMR '12 Proceedings of the 2012 16th European Conference on Software Maintenance and Reengineering
Invertible Program Restructurings for Continuing Modular Maintenance
CSMR '12 Proceedings of the 2012 16th European Conference on Software Maintenance and Reengineering
Hi-index | 0.00 |
Refactoring tools are commonly used for remodularization tasks. Basic refactoring operations are combined to perform complex program transformations, but the resulting composed operations are rarely reused, even partially, because popular tools have few support for composition. In this paper, we recast two calculus for static composition of refactorings in a type system and we discuss their use for inferring useful properties. We illustrate the value of support for static composition in refactoring tools with a complex remodularization use case: a round-trip transformation between programs conforming to the Composite and Visitor patterns.