In this paper, we present a framework for pattern-based model evolution approaches in the MDA context. In the framework, users define patterns using a pattern modeling language that is designed to describe software design patterns, and they can use the patterns as rules to evolve their model. In the framework, design model evolution takes place via two steps. The first step is a binding process of selecting a pattern and defining where and how to apply the pattern in the model. The second step is an automatic model transformation that actually evolves the model according to the binding information and the pattern rule. The pattern modeling language is defined in terms of a MOF-based role metamodel, and implemented using an existing modeling framework, EMF, and incorporated as a plugin to the Eclipse modeling environment. The model evolution process is also implemented as an Eclipse plugin. With these two plugins, we provide an integrated framework where defining and validating patterns, and model evolution based on patterns can take place in a single modeling environment.
[1]
Ralph Johnson,et al.
design patterns elements of reusable object oriented software
,
2019
.
[2]
John Grundy,et al.
Design pattern modelling and instantiation using DPML
,
2002
.
[3]
David A. Carrington,et al.
A Rigorous Foundation for Pattern-Based Design Models
,
2005,
ZB.
[4]
Frank Budinsky,et al.
Eclipse Modeling Framework
,
2003
.
[5]
Peter F. Linington,et al.
Tool support for development using patterns
,
2001,
Proceedings Fifth IEEE International Enterprise Distributed Object Computing Conference.
[6]
Roger Duke,et al.
Formal Object Oriented Specification Using Object-Z
,
2000
.
[7]
Tom Mens,et al.
A declarative evolution framework for object-oriented design patterns
,
2001,
Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.
[8]
Jörn Guy Süß,et al.
MDA-Based re-engineering with object-z
,
2006,
MoDELS'06.
[9]
Robert B. France,et al.
A Metamodeling Approach to Pattern-Based Model Refactoring
,
2003,
IEEE Softw..