A Prolog-based Approach for UML Model Transformation


Jesus Almendros  (1)
Luis Iribarne  (2)


(1)  Information System Group
jalmen@ual.es
http://www.ual.es/~jalmen

(2)  Applied Computing Group
Luis.Iribarne@ual.es
http://www.ual.es/~liribarn

University of Almeria
04120 Almeria
SPAIN
 



Abstract

In this paper we present a framework that uses logic programming (in particular, Prolog) for the definition of
model transformations in the context of UML. Our approach describes how to define a Prolog library for the
handling of the UML metamodel, and how model transformations can be defined by means of Prolog rules.
It uses rules for mapping the UML metamodel to source meta models, rules for expressing how to build the
target models from source models, and finally, rules for specifying how to map target models to the UML
metamodel. In addition, our approach shows how Prolog can be used for verifying constraints on source and
target models. We have validated our proposal by means of a prototype developed under SWI-Prolog.






Contents

1. Models

    1.1. Model A
    1.2. Model B
    1.3. Metamodel object A
    1.4. Metamodel objetc B
    1.5. Metamodel (UML)

2. Prolog material

3. Instructions





1. Models


[ home ] [ XMI ]





[ home ] [ XMI ]





[ home ]





[ home ]





[ home ]





2. Prolog material


MM2SM [ download ]
SM2TM
[ download ]
TM2MM [ download ]

METAMODEL HANDLING SOURCE
[ download ]
METAMODEL HANDLING TARGET
[ download ]
MM2XMI [ download ]
XMI2MM [ download ]


XMI WRITING
[ download ]

ALL Material
[ download ]


[
home ]




3. Intructions

In order to test our prototype you should download and install SWI-Prolog from www.swi-prolog.org.

After, you should load the prototype by:

?- [main].

Now, you can load the XMI file of the model A:

?-  xmi_load('model-A.xmi').

And now, you can transform the model A into a model B by using:

?- xmi_write('model-B.xmi').


[ home ]



(c) Jesus Almendros and Luis Iribarne
University of Almeria, 2009
Almeria, Spain