Transformation contracts in practice

Model-driven development (MDD) is a software engineering discipline which suggests that software development should be done at the modelling level and that applications should be generated from models. A key concept of MDD is a model transformation that generates software artifacts, such as code, from models. Since models are `first-class` citizens in MDD, their verification and validation are important tasks and so are the model transformations. A transformation contract, which is also a model, is a specification of what a particular model transformation must implement and essentially specifies a relation between metamodels and properties that must hold on such a relation. The authors have defined a design pattern that enforces transformation contract correctness over model transformations implementations. This study reports on (i) the proposed design pattern, (ii) the design of the UMLtoEJB model transformation that generates application code, following the Enterprise Java Beans standard, from class diagrams described in the Unified Modelling Language, and (iii) a discussion on how the transformation contracts approach may help different actors, in an MDD software development process with transformation contracts, to identify erroneous situations.

[1]  Bertrand Meyer,et al.  Object-oriented software construction (2nd ed.) , 1997 .

[2]  Anneke Kleppe,et al.  MDA explained - the Model Driven Architecture: practice and promise , 2003, Addison Wesley object technology series.

[3]  Manuel Clavel,et al.  Building an Efficient Component for OCL Evaluation , 2008 .

[4]  Joseph A. Goguen,et al.  Algebraic semantics of imperative programs , 1996, Foundations of computing series.

[5]  Laurence Duchien,et al.  OCL for the Specification of Model Transformation Contracts , 2004 .

[6]  Krzysztof Czarnecki,et al.  Classification of Model Transformation Approaches , 2003 .

[7]  Jordi Cabot,et al.  Verification of UML/OCL Class Diagrams using Constraint Programming , 1899, 2008 IEEE International Conference on Software Testing Verification and Validation Workshop.

[8]  Edward Hermann Haeusler,et al.  Lightweight analysis of access control models with description logic , 2010, Innovations in Systems and Software Engineering.

[9]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[10]  Jordi Cabot Sagrera,et al.  Verification of UML/OCL Class Diagrams Using Constraint Programming , 2008 .

[11]  Martin Gogolla,et al.  Model transformations? transformation models! , 2006, MoDELS'06.

[12]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[13]  Jordi Cabot,et al.  Verifying UML/OCL Operation Contracts , 2009, IFM.

[14]  Jos Warmer,et al.  The object constraint language , 1998 .

[15]  J. Küster,et al.  Analysis of Model Transformations via Alloy , 2007 .

[16]  Christiano Braga,et al.  A transformation contract to generate aspects from access control policies , 2011, Software & Systems Modeling.