Copyright © 2008 Elsevier B.V. All rights reserved.
Maintaining Coherence Between Models With Distributed Rules: From Theory to Eclipse
aUniversità di Roma “La Sapienza” – Italy
bTechnische Universität Berlin – Germany
cGeorge Mason University – USA
Abstract
Integrated Development Environments supporting software and model evolution have to deal with the problem of maintaining coherence between code and model despite changes which may occur on both sides. Rather than going through model reingeneering or code regeneration, it would be better to build a full correspondence between the starting models and keep it updated in an incremental way after each evolutionary step. In a series of previous papers, it was shown how distributed graph rewriting could support such updates. Here, we show how to construct a distributed graph from individual models, through the use of synchronized rules. In particular, we discuss the case of Java code and UML models, and propose an Eclipse implementation of the approach.
Keywords: Distributed graphs; model morphism; software evolution
References
G. Badros, Javaml: A markup language for java source code 9th Int. World Wide Web Conference. URL http://www.badros.com/greg/JavaML/ (2000).
Bottoni, P., M. Koch, F. Parisi Presicce and G. Taentzer, Automatic consistency checking and visualization of OCL constraints, in: UML 2000 – The Unified Modeling Language (2000), pp. 294–308.
P. Bottoni, F. Parisi Presicce and G. Taentzer, Specifying Integrated Refactoring with Distributed Graph Transformation, Applications of Graph Transformations with Industrial Relevance, LNCS 3062 (2004), pp. 220–235.
Bottoni, P., F. Parisi Presicce and G. Taentzer, Specifying Coherent Refactoring of Software Artefacts with Distributed Graph Transformations, in: P. v. Bommel, editor, Transformation of Knowledge, Information, and Data: Theory and Applications (2004), pp. 95–125. URL http://tfs.cs.tu-berlin.de/%7Egabi/gBPT04.pdf.
A. Corradini, U. Montanari, F. Rossi, H. Ehrig, R. Heckel and M. Löwe, Algebraic Approaches to Graph Transformation – Part I: Basic Concepts and Double Pushout Approach I, World Scientific (1997), pp. 163–246.
J. D'Anjou, S. Fairbrother, D. Kehn, J. Kellerman and P. McCarthy, The Java Developer's Guide to Eclipse (2nd Edition), Addison Wesley (2004).
Dom4J Group, Dom4J API Project http://www.dom4j.org/.
Eclipse Organisation, Eclipse 3.1.x Official Documentation http://help.eclipse.org/help31/index.jsp.
Eclipse Organisation, UML2 project http://www.eclipse.org/uml2/.
J. Gosling, B. Joy, G. Steele and G. Bracha, JavaTM Language Specification, Third Edition (3rd edition), The JavaTM series, Addison Wesley (2005).
Pulcini, S., “Evoluzione concorrente di Modelli Basata su Grafi Distribuiti,” Master's thesis, University “La Sapienza” of Rome, Italy (2005).
Taentzer, G., “Parallel and Distributed Graph Transformation: Formal Description and Application to Communication-Based Systems,” Ph.D. thesis, TU Berlin (1996), shaker Verlag.
Work supported in part by the European Community's Human Potential Programme under contract HPRN-CT-2002-00275, SegraVis and by the European Network of Excellence Interop