SESep 12, 2013

Transformations between Composite and Visitor implementations in Java

arXiv:1309.3235v113 citations
Originality Synthesis-oriented
AI Analysis

This work addresses code maintenance challenges for software developers by enabling modular transformations, but it is incremental as it builds on existing refactoring techniques.

The paper tackles the problem of automated refactoring for Java programs using Composite and Visitor design patterns, focusing on round-trip transformations between these structures and validating them by computing smallest preconditions and applying to JHotDraw.

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.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes