Information Technology Reference
In-Depth Information
Synchronizing Model and Program Refactoring
Tiago Massoni 1 ,RohitGheyi 1 , and Paulo Borba 2
1 Federal University of Campina Grande
{ massoni,rohit } @dsc.ufcg.edu.br
2 Federal University of Pernambuco
phmb@cin.ufpe.br
Abstract. Object models provide abstract information about software
structure, but their maintenance is dicult after refactoring takes place.
In Model-Driven Development (MDD), effective transferral of model
refactoring changes to programs is problematic, especially if these pro-
grams are subject to developer manipulation. Consequently, code-driven
approaches end up being adopted. We formalize a theory of synchroniz-
ers, which are sequences of behavior-preserving program transformations.
This theory makes use of invariant-based refactoring, the key idea be-
hind synchronizers. We also establish and prove a soundness theorem for
synchronizers. By uncovering the formal requirements for correct refac-
toring synchronization, the proved properties point out issues - regarding
consistency, refactoring automation and quality - that recur in several
MDD settings that employ object models.
1
Introduction
Refactoring [1,2] improves program structure while preserving behavior. Ad-
ditional benefits can be obtained from object model [3,4] refactoring ,useful
for restructuring software abstractions and invariants, by means of semantics-
preserving transformations. Synchronization of these transformations to source
code is essential [5] in Model-Driven Development (MDD) contexts [6].
However, this is an open problem in the MDD community, especially when
both models and programs are manipulated [7]. Automatic generation of artifacts
has long been known for their limitations - automation is hard to achieve [8]. In
fact, the relationship between object model and object-oriented (OO) program
constructs may be complex to deal with, and tools often fail to deal with the
desired abstraction gap. As a consequence, many projects abandon models early
in the life cycle, adhering to code-driven approaches. Methods and tools for - at
least partially - removing human interaction in the process are invaluable to the
refactoring practice. Several approaches try to deal with the relationship between
model and program transformations [9,10,11,12,13], although, to the best of our
knowledge, none has analyzed specific aspects of refactoring and synchronization
issues between object models and source code.
This article presents a formal model for synchronized refactoring of object
model and programs by means of proven primitive semantics-preserving trans-
formations. In particular, our theory is centered on a model-driven approach on
 
Search WWH ::




Custom Search