Model Driven Architecture Krzysztof Czarnecki, University of Waterloo
[email protected] This lecture uses parts of – OOPSLA’03 Tutorial on “Model-Driven Architecture” by Krzysztof Czarnecki and Petter Graff – GPCE’03 Tutorial on Generative Programming by Krzysztof Czarnecki, Ulrich Eisenecker, and Simon Helsen – OOPSLA’04 Tutorial on “Model-Driven Architecture” by Krzysztof Czarnecki, David Frankel, and Petter Graff 2003-2004 Czarnecki, Frankel, Graff, Helsen, 2 1 Outline ¨Motivation and MDA Basics Metamodeling Model Transformation Case Study Tools Discussion and Further Readings 2003-2004 Czarnecki, Frankel, Graff, Helsen, 3 MDA From 30.000 Feet Platform Independent Transformer Implementation Models Transformation Knowledge Use of platform independent models (PIM) as specification Transformation into platform specific models (PSM) using tools 2003-2004 Czarnecki, Frankel, Graff, Helsen, 4 2 MDA From 30.000 Feet Platform Independent Transformer J2EE Models Implementation .NET Transformation Implementation Knowledge … A PIM can be retargeted to different platforms Not the only reason why MDA might be of interest to you… 2003-2004 Czarnecki, Frankel, Graff, Helsen, 5 Automation in Software Development Requirements Requirements Requirements Manually Manually Manually implement implement implement High-level spec (functional and nonfunctional) Implement with Interactive, automated Source in Source in support domain-specific domain-specific language (DSL) language (DSL) Compile Compile Source in a (may generate (may generate general-purpose code in code in language, e.g., Java or C++) Java or C++) Java or C++ Compile Compile Compile Implementation Implementation Implementation 2003-2004 Czarnecki, Frankel, Graff, Helsen, 6 3 Basic MDA Pattern Generic transformations • Additional – Implement best practices, PIM information architectural and design • Model markup patterns, technology patterns (e.g., J2EE patterns), optimizations, etc.