Transformations between Composite and Visitor implementations in Java

Abstract

Basic automated refactoring operations can be chained to perform complex structure transformations. This is useful for recovering the initial architecture of a source code which has been degenerated with successive evolutions during its maintenance lifetime. This is also useful for changing the structure of a program so that a maintenance task at hand becomes modular when it would be initially crosscutting. We focus on programs structured according to Composite and Visitor design patterns, which have dual properties with respect to modularity. We consider a refactoring-based round-trip transformation between these two structures and we study how that transformation is impacted by four variations in the implementation of these patterns. We validate that study by computing the smallest preconditions for the resulting transformations. We also automate the transformation and apply it to JHotDraw, where the studied variations occur.

0

Turn this paper into a lesson

ArcXiv compiles a structured reading guide from this paper's metadata: plain-English importance, contributions, prerequisite concepts, which sections to read first, flashcards, and a quiz. Grounded in the abstract, never invented.

Discussion (0)

Sign in to join the discussion.

Loading comments…