ABSTRACT
As with design patterns before, the naming and cataloguing of refactorings has contributed significantly to the recognition of the discipline. However, in practice concrete refactoring needs may deviate from what has been distilled as a named refactoring, and mapping these needs to a series of such refactorings — if at all possible — can be difficult. To address this, we propose a framework of specifying refactorings in an ad hoc fashion, and demonstrate its feasibility by presenting an implementation. Evaluation is done by simulating application through a user on a set of given sample programs. Results suggest that our proposal of ad hoc refactoring is, for the investigated scenarios at least, viable.
- M Fowler Refactoring: Improving the Design of Existing Code (Addison-Wesley 1999). Google ScholarDigital Library
- J Gosling, B Joy, G Steele, G Bracha The Java Language Specification ( http://java.sun.com/docs/books/jls/ ).Google Scholar
- G Gottlob, G Greco, T Mancini “Conditional constraint satisfaction: logical foundations and complexity” in: Proc. of IJCAI (2007) 88–93. Google ScholarDigital Library
- F Steimann, A Thies “From public to private to absent: Refactoring Java programs under constrained accessibility” in: Proc. of ECOOP (2009) 419–443. Google ScholarDigital Library
- F Steimann, C Kollee, J von Pilgrim “A refactoring constraint language and its application to Eiffel” in: Proc. of ECOOP (2011) 255–280. Google ScholarDigital Library
- F Steimann, J von Pilgrim “Constraint-based refactoring with foresight” in: Proc. of ECOOP (2012) 535–559. Google ScholarDigital Library
- F Tip, RM Fuhrer, A Kiezun, MD Ernst, I Balaban, B De Sutter “Refactoring using type constraints” ACM Trans. Program. Lang. Syst. 33(3):9 (2011). Google ScholarDigital Library
Index Terms
- Refactorings without names
Recommendations
Deriving refactorings for aspectJ
OOPSLA '04: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applicationsIn this paper we present aspect-oriented programming laws that are useful for deriving refactorings for AspectJ. The laws help developers to verify if the transformations they define preserve behavior. We illustrate that by deriving several AspectJ ...
Deriving refactorings for AspectJ
AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software developmentIn this paper we present aspect-oriented programming laws that are useful for deriving refactorings for AspectJ. The laws help developers to verify if the transformations they define preserve behaviour. We illustrate that by deriving several AspectJ ...
Static composition of refactorings
Special issue on program transformationThe number of possible refactorings is unlimited, so no tool vendor will ever be able to provide custom refactorings for all specific user needs. Therefore, we propose a new kind of refactoring tools, which allow users to create, edit and compose ...
Comments