Deltaware: Incremental Change Propagation for Automating Software Evolution in Model-Driven Architecture

David Hearnden · The University of Queensland · 2007

Software maintenance and evolution, the most costly stages of the softwareprocess, can be facilitated by automating the propagation of change throughtransformation relationships in model-driven systems.Software maintenance and evolution are the most costly stages of the software process.The Model-Driven Architecture, as an exemplar of model-driven engineering, addressesthis problem, not only by encouraging the separation of business logic and platform details,but also by providing facilities through which high-level design and dependency informationcan be reified in a machine-interpretable form. This research project, Deltaware, isan investigation of how this information can be leveraged in order to effect consequentialchange automatically in model-driven systems, reducing the cost of software evolution.Additionally, the use of transformations in model-driven systems introduces relationshipsbetween models, and Deltaware demonstrates that consequential change induced by theserelationships can be derived automatically, incrementally and efficiently.In order to reason about transformations, the purely declarative, rule-based transformationlanguage Tefkat is used. Deltaware defines two formal techniques, rule factorizationand term slicing, for the analysis of Tefkat transformations. In order to reasonabout change, the representation, derivation, and application of change in model-drivensystems are explored, and model-driven techniques for these activities are defined. Theremainder of the thesis, Deltaware’s main contribution, presents two strategies for theincremental maintenance of transformation relationships, delta transformations and livetransformation.Given a transformation from input models to output models, the delta transformationstrategy involves the generation of a dedicated update transformation, called a deltatransformation, which maps changes of the input models to changes of the output models.Delta transformations are specially constructed to perform this mapping incrementally,in order to propagate small changes efficiently.The second strategy, live transformation, extends a transformation engine in order tosupport incremental change propagation explicitly. Rather than being based on a particularengine implementation, this strategy is based on resolution, the theoretical foundationfor computation in logic languages. Therefore, it is applicable to any resolution-based engine for a declarative, rule-based transformation language. Using resolution, the completecomputation process of a transformation execution can be represented as tree structures.In particular, the use of data from the input models during computation can be recordedin these trees, such that any later changes to the input models can be traced easily to theparts of the transformation execution that are affected by those changes; these affectedparts can then be recomputed. In addition to accommodating the evolution of input models,the live transformation approach is extended in order to accommodate the evolutionof transformation definitions.The two strategies of delta transformations and live transformation are compared witheach other and with a simpler, non-incremental strategy called merged re-transformation;this comparison identifies some limiting factors of incremental change propagation. Futuredirections for Deltaware and extensions for the Tefkat language are also identified.Deltaware demonstrates that consequential change induced by the maintenance oftransformation relationships in model-driven systems can be effected automatically, incrementally,and efficiently, reducing the cost of software evolution.

Read the paper · More papers on PaperTik