Slides for the mdse-book.com chapter 8: model-to-model transformations
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - https://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers introductory and technical topics, spanning definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE PrinciplesMarco Brambilla
Slides for the mdse-book.com chapter 2: Model-driven Software Engineering Principles.
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - https://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers introductory and technical topics, spanning definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
Model-Driven Software Engineering in Practice - Chapter 1 - IntroductionMarco Brambilla
Slides for the mdse-book.com chapter 1: Introduction
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - https://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers introductory and technical topics, spanning definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...Jordi Cabot
Slides for the mdse-book.com chapter 6: Modeling Languages at a Glance
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - https://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers introductory and technical topics, spanning definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
Model-driven Software Engineering in practice: Chapter 3 - MDSE Use casesJordi Cabot
Slides for the mdse-book.com chapter 3: MDSE Use cases
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - https://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers introductory and technical topics, spanning definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
Model driven software engineering in practice book - chapter 7 - Developing y...Marco Brambilla
Slides for the mdse-book.com - Chapter 7: Developing Your Own Modeling Language.
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
Model-Driven Software Engineering in Practice - Chapter 5 - Integration of Mo...Marco Brambilla
Slides for the mdse-book.com chapter 5: Integration of Model-driven Software Development (MDSE) in your Development Processes
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
Model driven software engineering in practice book - Chapter 9 - Model to tex...Marco Brambilla
Slides for the mdse-book.com chapter 9 - Model-to-text transformations.
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The book is organized into two main parts.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers a wide set of introductory and technical topics, spanning MDE at large, definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, A
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE PrinciplesMarco Brambilla
Slides for the mdse-book.com chapter 2: Model-driven Software Engineering Principles.
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - https://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers introductory and technical topics, spanning definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
Model-Driven Software Engineering in Practice - Chapter 1 - IntroductionMarco Brambilla
Slides for the mdse-book.com chapter 1: Introduction
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - https://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers introductory and technical topics, spanning definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...Jordi Cabot
Slides for the mdse-book.com chapter 6: Modeling Languages at a Glance
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - https://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers introductory and technical topics, spanning definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
Model-driven Software Engineering in practice: Chapter 3 - MDSE Use casesJordi Cabot
Slides for the mdse-book.com chapter 3: MDSE Use cases
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - https://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers introductory and technical topics, spanning definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
Model driven software engineering in practice book - chapter 7 - Developing y...Marco Brambilla
Slides for the mdse-book.com - Chapter 7: Developing Your Own Modeling Language.
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
Model-Driven Software Engineering in Practice - Chapter 5 - Integration of Mo...Marco Brambilla
Slides for the mdse-book.com chapter 5: Integration of Model-driven Software Development (MDSE) in your Development Processes
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
Model driven software engineering in practice book - Chapter 9 - Model to tex...Marco Brambilla
Slides for the mdse-book.com chapter 9 - Model-to-text transformations.
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The book is organized into two main parts.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers a wide set of introductory and technical topics, spanning MDE at large, definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, A
A Review of Deep Contextualized Word Representations (Peters+, 2018)Shuntaro Yada
A brief review of the paper:
Peters, M. E., Neumann, M., Iyyer, M., Gardner, M., Clark, C., Lee, K., & Zettlemoyer, L. (2018). Deep contextualized word representations. In NAACL-HLT (pp. 2227–2237)
What is Code Refactoring?
Refactoring refers to structuring the code to:
- Increase readability of code
- Fix bugs easily
- Enhance design
- Introduce flexibility to code.
Refactoring is to restructure or rewrite source code to improve internal consistency, readability, etc. without changing its function.
Following on from the success of last year, this annual event for London's architect community will have architectural innovation as a theme this year, and particularly CQRS. At the DDD eXchange we will feature leading thinkers and architects who will share their experience and Eric Evans is the programme lead.
How to improve your code quality? The answer is continuous refactoring. Learn more about refactoring. Know the most frequent code smells (antipatterns), telling when to refactor. Go through the catalog of well-known refactorings, telling how to improve your code.
Model-Driven Software Engineering in Practice - Chapter 10 - Managing modelsJordi Cabot
Slides for the mdse-book.com chapter 10: Managing models
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - https://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers introductory and technical topics, spanning definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...Jordi Cabot
Slides for the mdse-book.com chapter 4: MODEL DRIVEN ARCHITECTURE (MDA)
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - https://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers introductory and technical topics, spanning definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
A Review of Deep Contextualized Word Representations (Peters+, 2018)Shuntaro Yada
A brief review of the paper:
Peters, M. E., Neumann, M., Iyyer, M., Gardner, M., Clark, C., Lee, K., & Zettlemoyer, L. (2018). Deep contextualized word representations. In NAACL-HLT (pp. 2227–2237)
What is Code Refactoring?
Refactoring refers to structuring the code to:
- Increase readability of code
- Fix bugs easily
- Enhance design
- Introduce flexibility to code.
Refactoring is to restructure or rewrite source code to improve internal consistency, readability, etc. without changing its function.
Following on from the success of last year, this annual event for London's architect community will have architectural innovation as a theme this year, and particularly CQRS. At the DDD eXchange we will feature leading thinkers and architects who will share their experience and Eric Evans is the programme lead.
How to improve your code quality? The answer is continuous refactoring. Learn more about refactoring. Know the most frequent code smells (antipatterns), telling when to refactor. Go through the catalog of well-known refactorings, telling how to improve your code.
Model-Driven Software Engineering in Practice - Chapter 10 - Managing modelsJordi Cabot
Slides for the mdse-book.com chapter 10: Managing models
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - https://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers introductory and technical topics, spanning definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...Jordi Cabot
Slides for the mdse-book.com chapter 4: MODEL DRIVEN ARCHITECTURE (MDA)
Complete set of slides now available:
Chapter 1 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-1-introduction
Chapter 2 - http://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-2-mdse-principles
Chapter 3 - http://www.slideshare.net/jcabot/model-driven-software-engineering-in-practice-chapter-3-mdse-use-cases
Chapter 4 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-4
Chapter 5 - https://www.slideshare.net/mbrambil/modeldriven-software-engineering-in-practice-chapter-5-integration-of-modeldriven-in-development-processes
Chapter 6 - http://www.slideshare.net/jcabot/mdse-bookslideschapter6
Chapter 7 - http://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-7-developing-your-own-modeling-language
Chapter 8 - http://www.slideshare.net/jcabot/modeldriven-software-engineering-in-practice-chapter-8-modeltomodel-transformations
Chapter 9 - https://www.slideshare.net/mbrambil/model-driven-software-engineering-in-practice-book-chapter-9-model-to-text-transformations-and-code-generation
Chapter 10 - http://www.slideshare.net/jcabot/mdse-bookslideschapter10managingmodels
This book discusses how approaches based on modeling can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
This book is an agile and flexible tool to introduce you to the MDE and MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDE instruments for your needs so that you can start to benefit from MDE right away.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios and current standards, like the wellknown MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDE projects.
The book covers introductory and technical topics, spanning definitions and orientation in the MD* world, metamodeling, domain specific languages, model transformations, reverse engineering, OMG's MDA, UML, OCL, ATL, QVT, MOF, Eclipse, EMF, GMF, TCS, xText.
http://www.mdse-book.com
Testing Neural Program Analyzers (ASE-LBR 2019)Rafiqul Rabin
Testing Neural Program Analyzers. Md Rafiqul Islam Rabin, Ke Wang, Mohammad Amin Alipour. 34th IEEE/ACM International Conference on Automated Software Engineering (ASE 2019). Late Breaking Results-Track. San Diego, CA, November 2019.
arXiv: https://arxiv.org/abs/1908.10711
GitHub: https://github.com/mdrafiqulrabin/tnpa-framework
Revisiting all aspects of model-driven engineering (application, teaching, verification , tooling, research,...) promoting a lightweight perspective to maximize MDE success and adoption
Our research lines on Model-Driven Engineering and Software EngineeringJordi Cabot
Highlighting some of our research lines (March 2015 Edition)
Learn more about what we do on : http://modeling-languages.com , http://som-research.uoc.edu and http://jordicabot.com
Object-Oriented Programming (OOP) is a fundamental paradigm in software development that allows for modular, reusable, and efficient code. Whether you’re preparing for an interview or seeking to enhance your programming skills, understanding OOP is crucial. In this comprehensive guide, we’ll explore the essential topics and concepts of OOP, equipping you with the knowledge to write clean and maintainable code.
In this series on Object-Oriented Programming (OOP), we have curated a comprehensive set of slides that cover each topic in detail. These slides not only provide a clear explanation of the concepts but also contain the latest and tricky interview questions related to each topic. They serve as a valuable resource to help you prepare for interviews and strengthen your understanding of OOP.
Preparing for an interview? These slides will not only equip you with the knowledge required but also familiarize you with the interview questions that frequently arise in OOP discussions. By practicing these questions, you’ll gain confidence and be well-prepared to showcase your OOP expertise during interviews.
Unlock the power of OOP by exploring these slides, which encompass both the fundamentals and advanced concepts. Whether you’re a beginner or an experienced developer, this series is designed to enhance your OOP skills and make you a more proficient programmer
Software Engineering
We Also Provide SYNOPSIS AND PROJECT.
Contact www.kimsharma.co.in for best and lowest cost solution or
Email: amitymbaassignment@gmail.com
Call: 9971223030
In this talk I will present a number of issues that we run against in our work of building DSLs for and with customers, mostly on top of MPS. This is not an MPS wishlist, but rather the attempt at identifying general areas where tool support or even the conceptual approach are not yet as mature as for the basics of language engineering: syntax, type systems, generators and basic IDE support. An ideal outcome of this session would be the formation of groups of people who will work on some of these issues in the future. These issues include the construction of debuggers for various language paradigms, realtime incremental transformations of models, interactive guidance for end users (clippy for DSLs :-)), a practically-usable formalism for defining semantics from which interpreters and generators can be derived, as well as the more diffuse requirement for more “liveness” in DSLs of non-trivial complexity and model sizes.
SE Models Q & A #8. Question:Give a description of prototyping model. Answer: - This is a working system and the objective of the model is to develop those ideas which are tested regarding a new system and could be used again. ... Prototype model provide the design which gives the thoughts how system did the works.
Do you already know what big ball of mud means?
And code smell?, Is your nose prepared to detect them?
Can you affirm that you are commited with the mantainability?
Do you have architectural sensibility to avoid these kind of situations? Or you are comfortable with the inertia of the day-to-day task of patching the holes. (it doesn't matter if it works..)
While much attention has been focused on high-level software architectural patterns, what is, in effect, the de-facto standard software architecture is seldom discussed.
This talk is intended to identify and summarize the causes that lead to misusing our time on complex maintenance, and give tips and best practices to avoid the big ball of mud and to achieve the best quality products.
Similar to Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model transformations (20)
AI and Software consultants: friends or foes?Jordi Cabot
How can AI help software consultants (and what you need to keep in mind if we are open to that, especially when it comes to issues like hallucination, code vulnerabilities or ethical risks).
There is an increasing demand for embedding intelligence in software systems as part of its core set of features both in the front-end (e.g. conversational user interfaces) and back-end (e.g. prediction services). This combination is usually referred to as AI-enhanced software or, simply, smart software.
The development of smart software poses new engineering challenges, as now we need to deal with the engineering of the “traditional” components, the engineering of the “AI” ones but also of the interaction between both types that need to co-exist and collaborate.
In this talk we'll see how modeling can help tame the complexity of engineering smart software by enabling software engineers specify and generate smart software systems starting from higher-level and platform-independent modeling primitives.
But, unavoidably, these models will be more diverse and complex than our usual ones. Don't despair, we'll also see how some of these same AI techniques that are making our modeling life challenging can be turned into allies and be transformed into modeling assistants to tackle the engineering of smart software with a new breed of smart modeling tools.
Modeling should be an independent scientific disciplineJordi Cabot
Software modeling started as a paradigm to help developers build better software faster by enabling them to specify, reason and manipulate software systems at a higher-abstraction level while ignoring irrelevant low-level technical details. But this same principle manifests in any other domain that has to deal with complex systems, software-based or not. We argue that bringing to other engineering and scientific fields, our modeling expertise is a win–win opportunity where we can all learn from each other as we all model, but in complementary ways. Nevertheless, to fully unleash the benefits of this collaboration, we must go beyond individual efforts trying to adapt single techniques from one field to another. It requires a deeper reformulation of modeling as a whole. It is time for modeling to become an independent discipline where all fields of knowledge can contribute and benefit from.
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...Jordi Cabot
No hay suficientes programadores profesionales para todo el software que necesita nuestra sociedad. Aquí propongo una serie de soluciones alternativas.
All Researchers Should Become EntrepreneursJordi Cabot
We often complain about the challenges associated with a fruitful research-industry collaboration. Wwe propose that researchers become entrepreneurs and play both roles at the same time. This could be the quickest way to get real feedback on the quality and impact of our research
The Software Challenges of Building Smart Chatbots - ICSE'21Jordi Cabot
Chatbots are popular solutions assisting humans in multiple fields, such as customer support or e-learning. However, building such applications has become a complex task requiring a high-level of expertise in a variety of technical domains. Chatbots need to integrate (AI-based) NLU components, but also connect to internal/external services, deploy on various platforms, etc.
The briefing will first cover the current landscape of chatbot frameworks. Then, we’ll get our hands dirty and create a few bots of increasing difficulty playing with aspects like entity recognition, sentiment analysis, event processing, or testing. By the end of the session, attendees will have all the keys to understand the main steps and obstacles to building a good chatbot.
Future Trends on Software and Systems ModelingJordi Cabot
Modeling is more popular than ever, even if sometimes hidden behind other names (e.g. low-code). But of course, we can always do better.
In this talk, I'll describe the main technical/social challenges modeling is facing and the key trends that could solve them. We'll even throw some AI, Machine Learning and bots in the mix to show how modeling can be also useful there and even more, benefit from them, to move towards a smarter modeling future.
Ingeniería del Software dirigida por modelos -Versión para incrédulosJordi Cabot
Presentación en el 2do. Foro de Ingeniería de Software
Tendencias para automatizar el desarrollo de software. Hablando de modelado de software, generación de código,...
An LSTM-Based Neural Network Architecture for Model TransformationsJordi Cabot
We propose to take advantage of the advances in Artificial Intelligence and, in particular, Long Short-Term Memory Neural Networks (LSTM), to automatically infer model transformations from sets of input-output model pairs.
Software Modeling and Artificial Intelligence: friends or foes?Jordi Cabot
See how modeling can help the AI world (e.g. a model-driven approach to build chatbots) and how AI can create smarter modeling tools (e.g. using ML to learn transformations and code generation templates)
Temporal EMF: A temporal metamodeling platformJordi Cabot
Adding a temporal layer on top modeling tools. It includes a temporal profile for EMF, temporal queries with OCL and a NoSQL HBase backend for your models
UMLtoNoSQL : From UML domain models to NoSQL DatabasesJordi Cabot
Code-generators and low-code tools need to be able to target a combination of SQL and NoSQL databases as storage mechanisms for the apps they generate. Our UMLtoNoSQL solution enables this.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
2. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Content
§ Introduction
§ Out-place Transformations: ATL
§ In-place Transformations: Graph Transformations
§ Mastering Model Transformations
3. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
www.mdse-book.com
INTRODUCTION
4. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Motivation
Transformations are everywhere!
§ Before MDE
§ Program compilation, refactoring, migration, optimization, ...
§ With MDE
§ Transformations are key technologies!
§ Every systematic manipulation of a
model is a model transformation!
§ Dimensions
§ Horizontal vs. vertical
§ Endogenous vs. exogenous
§ Model-to-text vs. text-to-model vs. model-to-model
[Excerpt of MDA Guide
from the OMG]
PIM
PSM
PIM
PSM
MLA MLB
Code Code
PLA PLB
5. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Meta-
Metamodel
Metamodel
Model
M3
M2
M1
Definitions
§ A model-to-model (M2M) transformation is the automatic creation of
target models from source models.
§ 1-to-1 transformations
§ 1-to-N, N-to-1, N-to-M transformations
§ target model* = T(source model*)
Focus of model transformations,
but not limited to M1
(remember: everything is a model!)
Metamodeling Stack
A B C
X Y Z
MT
source model
target model
Example
6. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Architecture
Model-to-Model Transformation Pattern
MOF
MMa MMb
Ma Mba2b.mt
MMTLsource metamodel
source model target model
target metamodel
conformsTo
Execution Engine
conformsTo conformsTo
conformsTo
conformsTo
conformsTo
7. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Two Transformation Strategies
Out-place vs. in-place transformations
Transformation
Specification
ModelA
MetamodelA
ModelB
MetamodelB
Transformation
Specification
ModelA
MetamodelA
Legend:
Transformation
Execution
Dependency
«conformsTo» «conformsTo» «conformsTo»
Out-place Transformations build
a new model from scratch
In-place Transformations change
some parts in the model
8. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Two Transformation Strategies
Out-place vs. in-place transformations
For each green element,
create a blue element.
For each green element,
create a blue element.
Delete all elemens except
blue ones.
Out-place Transformation In-place Transformation
Example #1
9. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Two Transformation Strategies
Out-place vs. in-place transformations
Out-place Transformation In-place Transformation
Example #2
For each green element,
create a blue element.
For each green element,
create a green element.
For each red element,
create a red element.
For each green element,
create a blue element.
10. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Architecture
Illustrative Example
G 2 P
Rule
R 2 B
Rule
Ma Mb
MMa
Green
Class
Red
Class
MMb
Blue
Class
Pink
Class
Meta-metamodel
Class
Class
ATL
Rule
Class
MMa2MMb.atl
conformsTo
conformsTo
conformsTo
conformsTo
conformsTo
conformsTo
conformsTo
execution
Out-place Transformations
11. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Architecture
Concrete Example
Java M
conformsTo
A 2 V
Rule
C 2 C
Rule
UML2Java.atl
execution
UML M
conformsTo
c1:Class
a1:Attribute
Trace Model
c1 -> c01 : C2C
a1 -> v01 : A2V
MMa
Class
Attribute
* attributes
Java MM
Class
Variable
* variables
v01:Variable
c01:Class
UML MM
Out-place Transformations
12. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Architecture
Illustrative Example
R 2 G
Rule
Ma
MMa
Green
Class
Red
Class
Meta-metamodel
Class
Class
GT
Rule
Class
MMa.gt
conformsTo
conformsTo
conformsTo
conformsTo
In-place Transformations
Ma’ Ma’’
conformsTo
MMa
13. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Architecture
Concrete Example
Pub2Pri
Rule
Pub2PriRef.gt
UML M
conformsTo
c1:Class
a1:Attribute
Trace Model
a1 -> Pub2Pri
MMa Class
Attribute
*
attributes
UML
MM
In-place Transformations
visibility
visibility = public
UML M’
c1:Class
a1:Attribute
visibility = private
14. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
www.mdse-book.com
OUT-PLACE
TRANSFORMATIONS:
ATLAS TRANSFORMATION LANGUAGE
15. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
ATL overview
§ Source models and target models are distinct
§ Source models are read-only
§ Target models are write-only
§ The language is a declarative-imperative hybrid
§ Declarative part
§ Matched rules with automatic traceability support
§ Side-effect free query language: OCL
§ Imperative part
§ Called/Lazy rules
§ Action blocks
§ Global variables via Helpers
§ Recommended programming style: declarative
16. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
ATL overview (continued)
§ A declarative rule specifies
§ A source pattern to be matched in the source models
§ A target pattern to be created in the target models for each match
during rule application
§ An optional action block (i.e., a sequence of imperative statements)
§ An imperative rule is basically a procedure
§ It is called by its name
§ It may take arguments
§ It contains
§ A declarative target pattern
§ An optional action block
17. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
ATL overview (continued)
§ Applying a rule means
1. Creating the specified target elements
2. Initializing the properties of the newly created elements
§ There are two types of rules concerning their application
§ Matched rules are applied once for each match by the execution
engine
§ A given set of elements may only be matched by one matched rule
§ Called/Lazy rules are applied as many times as they are called from
other rules
18. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Matched rules: Overview
§ A Matched rule is composed of
§ A source pattern
§ A target pattern
§ An optional action block
Matched Rule
Source Pattern Target Pattern
Source Model Target Model
queries generates
accesses
1 1
Action Block
0..1
accesses
accesses
19. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
rule Rule1{
from
v1 : SourceMM!Type1(cond1)
to
v2 : TargetMM!Type1 (
prop <- v1.prop
)
}
Matched rules: source pattern
§ The source pattern is composed of
§ A set of labeled source pattern elements
§ A source pattern element refers to a type contained in the source metamodels
§ A guard (Boolean OCL expression) used to filter matches
§ A match corresponds to a set of elements coming from the source
models that
§ Fulfill the types specified by the source pattern elements
§ Satisfy the guard
20. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Matched rules: target pattern
§ The target pattern is composed of
§ A set of labeled target pattern elements
§ Each target pattern element
§ refers to a type in the target metamodels
§ contains a set of bindings
§ A binding initializes a property of a target element using an OCL expression
§ For each match, the target pattern is applied
§ Elements are created in the target models
§ Target elements are initialized by executing the bindings
rule Rule1{
from
v1 : SourceMM!Type1(cond1)
to
v2 : TargetMM!Type1 (
prop <- v1.prop
)
}
21. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #1 – Publication 2 Book
Journal
name: String
Book
name: String
id: Integer
Source Metamodel Target Metamodel
j2:Journal
name = ACM Comp. Sur.
j3:Journal
name = IEEE Software.
j1:Journal
name = IEEE Computer
b2:Book
name = ACM Comp. Sur.
id = 2
b3:Book
name = IEEE Software.
id = 3
b1:Book
name = IEEE Computer
id = 1
Journal
Collection
Book
Collection
jc1:Journal
Collection
bc1:Book
Collection
Concepts
1) Matched Rule
2) Helper
Source Model Target Model
journals books
1..* 1..*
22. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #1
Configuration of Source/Target Metamodels
§ Header
module Publication2Book;
create OUT : Book from IN : Publication;
§ For code completion
§ --@path MM_name =Path_to_metamodel_definition
§ Activate code completion: CTRL + space
23. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #1
Matched Rules
§ Example Publication 2 Book
module Publication2Book;
create OUT : Book from IN : Publication;
rule Collection2Collection {
from
jc : Publication!JournalCollection
to
bc : Book!BookCollection(
books <- jc.journals
)
}
rule Journal2Book {
from
j : Publication!Journal
to
b : Book!Book (
name <- j.name
)
}
Source Pattern
Target Pattern
Matched Rule
Header
Binding
24. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #1
Helpers 1/2
§ Syntax
helper context Type def : Name(Par1 : Type, …) : Type = EXP;
§ Global Variable
helper def: id : Integer = 0;
§ Global Operation
helper context Integer def : inc() : Integer = self + 1;
§ Calling a Helper
§ thisModule.HelperName(…) – for global variables/operations without context
§ value.HelperName(…) – for global variables/operations with context
25. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #1
Helpers 2/2
§ Example Publication 2 Book
module Publication2Book;
create OUT : Book from IN : Publication;
helper def : id : Integer = 0;
helper context Integer def : inc() : Integer = self + 1;
rule Journal2Book {
from
j : Publication!Journal
to
b : Book!Book (
name <- j.name
)
do {
thisModule.id <- thisModule.id.inc();
b.id <- thisModule.id;
}
}
Action
Block
Global Variable
Global Operation
Module Instance for accessing global variables
Global Operation call
26. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2 – Person 2 Customer
Person
name: String
age : Integer
gender : {male,
female}
Customer
name: String
gender: {male,
female}PSystem
CSystem
*
*
c2:Customer
name = javi
c1:Customer
name = hugo
p2:Person
name = javi
age= 45
gender = female
p3:Person
name = bill
age = 12
gender = male
p1:Person
name = hugo
age = 21
gender = male
s1:PSystem
s1:CSystem
Constraint: Customer must be
older than 18 years
Concepts:
1) Guards
2) Trace Model
3) Called/Lazy Rule Source Metamodel Target Metamodel
Source Model Target Model
27. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Describing more complex correspondences and bindings
§ Declarative Statements
§ If/Else, OCL Operations, Global Operations, …
§ Application: Guard Condition and Feature Binding
§ Example: IF/ELSE
if condition then
exp1
else
exp2
endif
28. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Guards Conditions in Source Patterns
§ Example Person2Customer
rule Person2Customer {
from
p : Person!Person (p.age > 18)
to
c : Customer!Customer (
name <- p.name
)
}
rule PSystem2CSystem {
from
ps : Person!PSystem
to
cs : Customer!CSystem (
customer <- ps.person -> select(p | p.age > 18)
)
}
Guard Condition
Compute Subset for
Feature Binding
29. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Implicit Trace Model – Phase 1: Module Initialization Phase
rule PSystem2CSystem {
from
ps : Person!PSystem
to
cs : Customer!CSystem (
customer <- ps.person
)
}
rule Person2Customer {
from
p : Person!Person(p.age > 18)
to
c : Customer!Customer (
name <- p.name
)
}
p1:Person
name = hugo
age = 21
p3:Person
name = bill
age = 12
s1:PSystem
:TransientLinkSet
Trace Model is a set (cf. TransientLinkSet) of links
(cf. TransientLink) that relate source elements with
their corresponding target elements
30. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Implicit Trace Model – Phase 2: Matching Phase
rule PSystem2CSystem {
from
ps : Person!PSystem
to
cs : Customer!CSystem (
customer <- ps.person
)
}
rule Person2Customer {
from
p : Person!Person(p.age > 18)
to
c : Customer!Customer (
name <- p.name
)
}
p1:Person
name = hugo
age = 21
p3:Person
name = bill
age = 12
s1:PSystem
:TransientLinkSet
31. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Implicit Trace Model – Phase 2: Matching Phase
rule PSystem2CSystem {
from
ps : Person!PSystem
to
cs : Customer!CSystem (
customer <- ps.person
)
}
rule Person2Customer {
from
p : Person!Person(p.age > 18)
to
c : Customer!Customer (
name <- p.name
)
}
p1:Person
name = hugo
age = 21
p3:Person
name = bill
age = 12
s1:PSystem
TL1:TransientLink
:TransientLinkSet
rule = PSystem2CSystem
ps
32. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Implicit Trace Model – Phase 2: Matching Phase
rule PSystem2CSystem {
from
ps : Person!PSystem
to
cs : Customer!CSystem (
customer <- ps.person
)
}
rule Person2Customer {
from
p : Person!Person(p.age > 18)
to
c : Customer!Customer (
name <- p.name
)
}
p1:Person
name = hugo
age = 21
p3:Person
name = bill
age = 12
s1:PSystem
TL1:TransientLink
:TransientLinkSet
rule = PSystem2CSystem
ps
s1:CSystem
cs
33. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Implicit Trace Model – Phase 2: Matching Phase
rule PSystem2CSystem {
from
ps : Person!PSystem
to
cs : Customer!CSystem (
customer <- ps.person
)
}
rule Person2Customer {
from
p : Person!Person(p.age > 18)
to
c : Customer!Customer (
name <- p.name
)
}
p1:Person
name = hugo
age = 21
p3:Person
name = bill
age = 12
s1:PSystem
TL1:TransientLink
:TransientLinkSet
rule = PSystem2CSystem
ps
s1:CSystem
cs
34. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Implicit Trace Model – Phase 2: Matching Phase
rule PSystem2CSystem {
from
ps : Person!PSystem
to
cs : Customer!CSystem (
customer <- ps.person
)
}
rule Person2Customer {
from
p : Person!Person(p.age > 18)
to
c : Customer!Customer (
name <- p.name
)
}
p1:Person
name = hugo
age = 21
p3:Person
name = bill
age = 12
s1:PSystem
TL1:TransientLink
:TransientLinkSet
rule = PSystem2CSystem
ps
s1:CSystem
cs
TL2:TransientLink
rule = Person2Customer
p
35. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Implicit Trace Model – Phase 2: Matching Phase
rule PSystem2CSystem {
from
ps : Person!PSystem
to
cs : Customer!CSystem (
customer <- ps.person
)
}
rule Person2Customer {
from
p : Person!Person(p.age > 18)
to
c : Customer!Customer (
name <- p.name
)
}
p1:Person
name = hugo
age = 21
p3:Person
name = bill
age = 12
s1:PSystem
TL1:TransientLink
:TransientLinkSet
rule = PSystem2CSystem
ps
s1:CSystem
cs
TL2:TransientLink
rule = Person2Customer
p
c1:Customer
c
36. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Implicit Trace Model – Phase 2: Matching Phase
rule PSystem2CSystem {
from
ps : Person!PSystem
to
cs : Customer!CSystem (
customer <- ps.person
)
}
rule Person2Customer {
from
p : Person!Person(p.age > 18)
to
c : Customer!Customer (
name <- p.name
)
}
p1:Person
name = hugo
age = 21
p3:Person
name = bill
age = 12
s1:PSystem
TL1:TransientLink
:TransientLinkSet
rule = PSystem2CSystem
ps
s1:CSystem
cs
TL2:TransientLink
rule = Person2Customer
c1:Customer
p
c
37. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Implicit Trace Model – Phase 3: Target Initialization Phase
rule PSystem2CSystem {
from
ps : Person!PSystem
to
cs : Customer!CSystem (
customer <- ps.person
)
}
rule Person2Customer {
from
p : Person!Person(p.age > 18)
to
c : Customer!Customer (
name <- p.name
)
}
p1:Person
name = hugo
age = 21
p3:Person
name = bill
age = 12
s1:PSystem
TL1:TransientLink
:TransientLinkSet
rule = PSystem2CSystem
ps
s1:CSystem
cs
TL2:TransientLink
rule = Person2Customer
c1:Customer
p
c
38. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Implicit Trace Model – Phase 3: Target Initialization Phase
rule PSystem2CSystem {
from
ps : Person!PSystem
to
cs : Customer!CSystem (
customer <- ps.person
)
}
rule Person2Customer {
from
p : Person!Person(p.age > 18)
to
c : Customer!Customer (
name <- p.name
)
}
p1:Person
name = hugo
age = 21
p3:Person
name = bill
age = 12
s1:PSystem
TL1:TransientLink
:TransientLinkSet
rule = PSystem2CSystem
ps
s1:CSystem
cs
TL2:TransientLink
rule = Person2Customer
c1:Customer
p
c
39. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Implicit Trace Model – Phase 3: Target Initialization Phase
rule PSystem2CSystem {
from
ps : Person!PSystem
to
cs : Customer!CSystem (
customer <- ps.person
)
}
rule Person2Customer {
from
p : Person!Person(p.age > 18)
to
c : Customer!Customer (
name <- p.name
)
}
p1:Person
name = hugo
age = 21
p3:Person
name = bill
age = 12
s1:PSystem
TL1:TransientLink
:TransientLinkSet
rule = PSystem2CSystem
ps
s1:CSystem
cs
TL2:TransientLink
rule = Person2Customer
c1:Customer
name = hugo
p
c
40. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Implicit Trace Model – Phase 3: Target Initialization Phase
rule PSystem2CSystem {
from
ps : Person!PSystem
to
cs : Customer!CSystem (
customer <- ps.person
)
}
rule Person2Customer {
from
p : Person!Person(p.age > 18)
to
c : Customer!Customer (
name <- p.name
)
}
p1:Person
name = hugo
age = 21
p3:Person
name = bill
age = 12
s1:PSystem
TL1:TransientLink
:TransientLinkSet
rule = PSystem2CSystem
ps
s1:CSystem
cs
TL2:TransientLink
rule = Person2Customer
c1:Customer
name = hugo
p
c
41. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Implicit Trace Model – Phase 3: Target Initialization Phase
rule PSystem2CSystem {
from
ps : Person!PSystem
to
cs : Customer!CSystem (
customer <- ps.person
)
}
rule Person2Customer {
from
p : Person!Person(p.age > 18)
to
c : Customer!Customer (
name <- p.name
)
}
p1:Person
name = hugo
age = 21
p3:Person
name = bill
age = 12
s1:PSystem
TL1:TransientLink
:TransientLinkSet
rule = PSystem2CSystem
ps
s1:CSystem
cs
TL2:TransientLink
rule = Person2Customer
c1:Customer
name = hugo
p
c
42. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Transformation Execution Phases
1. Module Initialization Phase
§ Module variables (attribute helpers) and trace model are initialized
§ If an entry point called rule is defined, it is executed in this step
2. Matching Phase
§ Using the source patterns (from) of matched rules, elements are selected in
the source model (each match has to be unique)
§ Via the target patterns (to) corresponding elements are created in the target
model (for each match there are as much target elements created as target
patterns are used)
§ Traceability information is stored
3. Target Initialization Phase
§ The elements in the target model are initialized based on the bindings (<-)
§ The resolveTemp function is evaluated, based on the traceability information
§ Imperative code (do) is executed, including possible calls to called rules
43. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Alternative Solution with Called Rule and Action Block (1/3)
Imperative Statements in Action Blocks (do)
IF/[ELSE]
if( aPerson.gender = #male )
thisModule.men->including(aPerson);
else
thisModule.women->including(aPerson);
FOR
for( p in Person!Person.allInstances() ) {
if(p.gender = #male)
thisModule.men->including(p);
else
thisModule.women->including(p);
}
44. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Alternative Solution with Called Rule and Action Block (2/3)
rule PSystem2CSystem {
from
ps : Person!PSystem
to
cs : Customer!CSystem ()
do{
for( p in Person!Person.allInstances() ) {
if(p.age > 18)
cs.customer <- thisModule.NewCustomer(p.name,
p.gender);
}
}
}
Matched Rule
Called Rule Call
Action Block
Explicit Query on
Source Model
Binding
45. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Alternative Solution with Called Rule and Action Block (3/3)
rule NewCustomer (name: String, gender: Person::Gender){
to
c : Customer!Customer (
c.name <- name
)
do {
c.gender <- gender;
c;
}
}
Target Pattern
Action Block
Called Rule
Result of Called Rules is the last statement
executed in the Action Block
46. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Alternative Solution with Lazy Rule and Action Block (1/2)
rule PSystem2CSystem {
from
ps : Person!PSystem
to
cs : Customer!CSystem (
)
do{
for( p in Person!Person.allInstances() ) {
if(p.age > 18)
cs.customer <- thisModule.NewCustomer(p);
}
}
}
Matched Rule
Lazy Rule Call
Action Block
Explicit Query on
Source Model
Binding
47. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #2
Alternative Solution with Lazy Rule and Action Block (2/2)
lazy rule NewCustomer{
from
p : Person!Person
to
c : Customer!Customer (
name <- p.name,
gender <- p.gender
)
}
Lazy Rule
Source Pattern
Target Pattern
Result of Lazy Rules is the first specified
target pattern element
48. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #3
Resolve Temp – Explicitly Querying Trace Models (1/4)
Element
name: String
Set
Element
name: String
Container
1
id : Int
info : String
rule Set2Container {
from
b : source!Set
to
d : target!Description(
text <- b.info
),
c : target!Container(
id <- b.id,
description <- d
)
}
id: Int
Description
text: String
1
1
rule Element2Element{
from
eS : source!Element
to
eT : target!Element (
name <- eS.name,
container <- thisModule.resolveTemp(
eS.set, ‘c’)
)
}
Source Metamodel Target Metamodel
Transformation
49. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #3
Resolve Temp – Explicitly Querying Trace Models (2/4)
e1:Element
name = Element1
b1:Set
TL1:TransientLink
:TransientLinkSet
rule = Set2Container
b
d1:Description
d
TL2:TransientLink
rule = Element2Element
eS
eT
c1:Container
rule Set2Container {
from
b : source!Set
to
d : target!Description(
text <- b.info
)
c : target!Container(
id <- b.id,
description <- d
)
}
rule Element2Element{
from
eS : source!Element
to
eT : target!Element (
name <- eS.name,
container <-thisModule.resolveTemp(
eS.set, ‘c’)
)
}
id = 1
info = „In …“
text = „In …“
id = 1
e1:Element
name = Element1
c
50. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #3
Resolve Temp – Explicitly Querying Trace Models (3/4)
e1:Element
name = Element1
b1:Set
TL1:TransientLink
:TransientLinkSet
rule = Set2Container
d1:Description
TL2:TransientLink
rule = Element2Element
c1:Container
id = 1
info = „In …“
text = „In …“
id = 1
e1:Element
name = Element1
rule Set2Container {
from
b : source!Set
to
d : target!Description(
text <- b.info
)
c : target!Container(
id <- b.id,
description <- d
)
}
rule Element2Element{
from
eS : source!Element
to
eT : target!Element (
name <- eS.name,
container <-thisModule.resolveTemp(
eS.set, ‘c’)
)
}
b
d
eS
eTc
51. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Example #3
Resolve Temp – Explicitly Querying Trace Models (4/4)
e1:Element
name = Element1
b1:Set
TL1:TransientLink
:TransientLinkSet
rule = Set2Container
d1:Description
TL2:TransientLink
rule = Element2Element
c1:Container
id = 1
info = „In …“
text = „In …“
id = 1
e1:Element
name = Element1
rule Set2Container {
from
b : source!Set
to
d : target!Description(
text <- b.info
)
c : target!Container(
id <- b.id,
description <- d
)
}
rule Element2Element{
from
eS : source!Element
to
eT : target!Element (
name <- eS.name,
container <-thisModule.resolveTemp(
eS.set, ‘c’)
)
}
b
d
eS
eTc
52. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
ATL Data Types
OCL Operations for each Type
53. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Rule inheritance
§ Rule inheritance allows for reusing transformation rules
§ A child rule may match a subset of what its parent rule matches
§ All the bindings and filters of the parent still make sense for the child
§ A child rule may specialize target elements of its parent rule
§ Initialization of existing elements may be specialized
§ A child rule may extend target elements of its parent rule
§ New elements may be created
§ A parent rule may be declared as abstract
§ Then the rule is not executed, but only reused by its children
§ Syntax
abstract rule R1 {
...
}
rule R2 extends R1 {
...
}
54. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Rule inheritance
Example #1
Person
name: String
Entity
name: String
Customer
id: String
Client
id: String
abstract rule Person2Entity {
from
p : source!Person
to
e : target!Entity(
name <- p.name
)
}
rule Customer2Client extends Person2Entity{
from
p : source!Customer
to
e : target!Client (
id <- p.id
)
}
Source MM Target MM
55. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Rule inheritance
Example #2
Person
name: String
Entity
name: String
Customer
id: String
Client
id: String
rule Person2Entity {
from
p : source!Person
to
e : target!Entity(
name <- p.name
)
}
rule Customer2Client extends Person2Entity{
from
p : source!Customer
to
e : target!Client (
id <- p.id
)
}
Source MM Target MM
56. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Debugging Hints
§ Quick and Dirty: Make use of .debug()
§ Proceed in tiny increments
§ Immediately test changes
§ Read Exception Trace
§ Look top-down the stack trace for „ERROR“ to find meaningful
message:
§ Check line number:
§ do-blocks can be used for temporary debug output
Line number
57. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
ATL in Use
§ ATL tools and documentation are available at http://
www.eclipse.org/atl
§ Execution engine
§ Virtual machine
§ ATL to byte code compiler
§ Integrated Development Environment (IDE) for
§ Editor with syntax highlighting and outline
§ Execution support with launch configurations
§ Source-level debugger
§ Documentation
§ Starter’s guide
§ User manual
§ User guide
§ Basic examples
58. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Summary
§ ATL is specialized in out-place model transformations
§ Simple problems are generally solved easily
§ ATL supports advanced features
§ Complex OCL navigation, called rules, refining mode, rule inheritance, etc
§ Many complex problems can be handled declaratively
§ ATL has declarative and imperative features
§ Any out-place transformation problem can be handled
§ Further information
§ Documentation:
http://wiki.eclipse.org/ATL/User_Guide_-_The_ATL_Language
§ Examples: http://www.eclipse.org/m2m/atl/basicExamples_Patterns
59. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Alternatives to ATL
§ QVT: Query-View-Transformation standard of the OMG
§ Declarative QVT Relational language
§ Imperative QVT Operational language
§ Low-level QVT Core language (VM level)
§ TGG: Triple Graph Grammars
§ Correspondence graphs between metamodels
§ Transform models in both directions, integrate and synchronize models
§ JTL: Janus Transformation Language
§ Strong focus on model synchronization by change propagating
§ ETL: Epsilon Transformation Language
§ Designated language in the Epsilon framework for out-place transformations
§ RubyTL: Ruby Transformation Language
§ Extension of the Ruby programming language
§ Core concepts for out-place model transformations (extendable)
§ Many more languages such as VIATRA, Tefkat, Kermeta, or SiTra, …
60. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
www.mdse-book.com
IN-PLACE
TRANSFORMATIONS:
GRAPH TRANSFORMATIONS
61. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Why graph transformations?
§ Models are graphs
§ Class diagram, Petri net, State machine, …
§ Type Graph:
§ Generalization of graph elements
§ Graph transformations
§ Generalization of the graphs’ evolutions
§ Graph transformations are applicable for models!
Type Graph
Graph
Metamodel
Model
represents
represents
conformsTo conformsTo
Graph
Transformations
Model
Transformations
62. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
Basics: Directed graph
§ A directed graph G consists of two disjoint sets
§ Vertices V (Vertex)
§ Edges E (Edge)
§ Each edge has a source vertex s and a target vertex t
§ Summarized: G = (V, E, s: E → V, t: E → V)
§ Example graph
§ V = {1, 2, 3}
§ E = {a, b, c}
§ s(a) = 2
§ t(a) = 1
§ s(b) = 3
§ t(b) = 2
§ …
1
2
3
a b
c
63. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan & Claypool 2012.
TypeGraph
Typed attributed graph (1/3)
§ To represent models further information is needed
§ Typing: Each vertex and each edge has a type
§ Attribution: Each vertex/edge has an arbitrary number of name/value pairs
§ Notation for directed, typed and attributed graphs
§ Graph is represented as an object diagram
§ Type graph is represented as a class diagram
§ Example
1 : ShippingCompany
name = „LKW Maier“
Graph
1 : Truck
load = 0
2 : Truck
load = 10
1 : Store
name = „CompStore“
containers = 0
ShippingCompany
name : String
Truck
load: Integer
Store
name : String
containers : Integer
*
Container
weight : Integer
0..1
1 : Container
weight = 10
0..1
in
inFrontOf
on
on
inFrontOf
trucks
trucks
trucks
0..1
Example taken from: C. Ermel, M. Rudolf, and G. Taentzer, The AGG approach: Language and environment, Handbook of Graph
Grammars and Computing by Graph Transformation, Application, Languages and Tools, volume 2, World Scientific, 1999.
64. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Typed attributed graph (2/3)
§ Object diagram
§ Instance of class diagram
§ Basic concepts
§ Object : Instance of class
§ Value: Instance of attribute
§ Link: Instance of reference
1 : Truck
load = 0
1 : Store
name = „CompStore“
inFrontOf
ObjectID : Class name
Attribute name = Value
Reference name
Truck
load: Integer
Store
name : String
…
0..1
inFrontOf
«instanceOf»
«instanceOf»
«instanceOf» «instanceOf»
«instanceOf»
65. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Typed attributed graph (3/3)
§ Question: How does the type graph look in pure graph shape (object
diagram)?
TypeGraph
ShippingCompany
name : String
Truck
load: Integer
Store
name : String
containers : Integer
*
Container
weight : Integer
0..1
0..
1in
inFrontOf
on
trucks
0..1
66. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Typed attributed graph (3/3)
§ Question: How does the type graph look in pure graph shape (object
diagram)?
TypeGraph
ShippingCompany
name : String
Truck
load: Integer
Store
name : String
containers : Integer
*
Container
weight : Integer
0..1
0..
1in
inFrontOf
on
trucks
1 : Class
name = „ShippingCompany“
1 : Attribute
name = „name“
type = „String“
1 : Reference
lower = 0
upper = -1
name = „trucks“
2 : Class
name = „Truck“
type
attributes
references
…
0..1
67. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Until now…
§ …we considered models as static entities
§ A modeler creates a model using an editor – Done!
§ But what is about dynamic model modifications?
§ They are needed for
§ Simulation
§ Execution
§ Animation
§ Transformation
§ Extension
§ Improvement
§ …
§ How can graphs be modified?
§ Imperative: Java Program + Model API
§ Declarative: Graph transformations by means of graph transformation rules
68. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Example
§ Operation: Loading of Container onto a Truck
§ How can this behaviour be described in a generic way?
1 : ShippingCompany
name = „LKW Maier“
1 : Truck
load = 0
1 : Store
name = „CompStore“
containers = 1
1 : Container
weight = 10
1 : ShippingCompany
name = „LKW Maier“
1 : Truck
load = 10
1 : Store
name = „CompStore“
containers = 0
1 : Container
weight = 10
before after
loading()
inFrontOf
inFrontOf
in
on
trucks
trucks
69. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Graph transformation rule
§ A graph transformation rule p: L → R is a structure preserving, partial
mapping between two graphs
§ L and R are two directed, typed and attributed graphs themselves
§ Structure preserving, because vertices, edges and values may be preserved
§ Partial, because vertices and edges may be added/deleted
§ Example: Loading of Container onto a Truck
1 : Container
2 : Truck
3 : Store
in
4:inFrontOf
1 : Container
2 : Truck
3 : Store
4:inFrontOf
on
L
R
Pre-condition Post-condition
70. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Graph transformation rule
§ Structure preserving
§ All vertices and edges which are contained in the set L ∩ R
§ Example
1 : Container
2 : Truck
3 : Store
in
4:inFrontOf
1 : Container
2 : Truck
3 : Store
4:inFrontOf
on
L
R
71. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Graph transformation rule
§ Adding
§ All vertices and edges which are contained in the set R L
§ Example
1 : Container
2 : Truck
3 : Store
in
4:inFrontOf
1 : Container
2 : Truck
3 : Store
4:inFrontOf
on
L
R
72. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Graph transformation rule
§ Deleting
§ All vertices and edges which are contained in the set L R
§ Example
1 : Container
2 : Truck
3 : Store
in
4:inFrontOf
1 : Container
2 : Truck
3 : Store
4:inFrontOf
on
L
R
73. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Graph transformation rule
§ Calculating – Make use of attributes
§ Constants
§ Variables
§ Expressions (OCL Co)
§ Example
1 : Container
weight = x
2 : Truck
load = 0
3 : Store
containers = y
in
4:inFrontOf
1 : Container
weight = x
2 : Truck
load = x
3 : Store
containers = y-1
4:inFrontOf
on
L
R
constraints assignments
74. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Graph transformation
§ A graph transformation t: G → H is the result of the execution of a
graph transformation rule p: L → R in the context of G
§ t = (p,m) where m: L → G is an injective graph morphism (match)
L
R
G
p
m
H
75. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Graph transformation
Operational specification
§ Prepare the transformation
§ Select rule p: L - R
§ Select match m: L - G
§ Generate new graph H by
§ Deletion of L R
§ Addition of R L
L
R
G
p
m
H
76. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Graph transformation example (1/2)
p
m
1 : Container
weight = x
2 : Truck
load = 0
3 : Store
containers = y
in
4:inFrontOf
1 : Container
weight = x
2 : Truck
load = x
3 : Store
containers = y-1
4:inFrontOf
on
L R
1 : ShippingCompany
name = „LKW Maier“
1 : Truck
load = 0
2 : Truck
load = 100
1 : Store
name = „CompStore“
containers = 1
1 : Container
weight = 10
1 : ShippingCompany
name = „LKW Maier“
1 : Truck
load = 10
2 : Truck
load = 100
1 : Store
name = „CompStore“
containers = 0
1 : Container
weight = 10
graphtransformationrulegraphtransformation
G H
77. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Graph transformation example (2/2)
p
m
a : Container
weight = x
c : Truck
load = 0
b : Store
containers = y
in
4:inFrontOf
a : Container
weight = x
c : Truck
load = x
b : Store
containers = y-1
4:inFrontOf
on
L R
1 : ShippingCompany
name = „LKW Maier“
1 : Truck
load = 0
2 : Truck
load = 100
1 : Store
name = „CompStore“
containers = 1
1 : Container
weight = 10
1 : ShippingCompany
name = „LKW Maier“
1 : Truck
load = 10
2 : Truck
load = 100
1 : Store
name = „CompStore“
containers = 0
1 : Container
weight = 10
graphtransformation
G H
graphtransformationrule
78. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Graph transformations in ATL
§ Graph transformation
§ ATL (Refining Mode)
rule Loading {
from
a : Container (a.in = b)
b : Store
c : Truck (c.inFrontOf = b AND c.load = 0)
to
_a : Container(weight - a.weight, on - _c)
_b : Store(containers - b.containers - 1)
_c : Truck(load - a.weight, inFrontOf - _b)
}
a : Container
weight = x
c : Truck
load = 0
b : Store
containers = y
in
4:inFrontOf
a : Container
weight = x
c : Truck
load = x
b : Store
containers = y-1
4:inFrontOf
on
L R
79. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Negative Application Condition (NAC)
§ Left side of a rule specifies what must be existing to execute the
rule
§ Application Condition
§ Often needed to describe what must not be existing
§ Negative Application Condition (NAC)
§ NAC is a graph which describes a forbidden sub graph structure
§ Absence of specific vertices and edges must be granted
§ Graph transformation rule is executed when NAC is not fulfilled
80. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Negative Application Condition (NAC)
§ Example: A truck should only be loaded if there is no container on the truck
1 : Container
weight = x
2 : Truck
load = 0
3 : Store
containers = y
in
4:inFrontOf
1 : Container
weight = x
2 : Truck
load = x
3 : Store
containers = y-1
4:inFrontOf
on
L
R
: Container
2 : Truck
on
NAC
Advanced Pre-condition Post-condition
81. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Negative Application Condition (NAC)
§ Multiple NACs for one rule possible
§ But: LHS and RHS must only be specified once
82. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Multi-Object
§ The number of matching objects is not always known in advance
§ Maximal set of objects which fulfill a certain condition
§ Selection of all objects x from a set y which fulfill condition z
§ In OCL: y - select(x | z(x))
§ Notation: Multi-Object from UML 1.4
§ A multi-object symbol maps to a collection of instances in which each instance
conforms to a given type and conditions
§ Example: select(x | x.oclIsTypeOf(Type))
id : Type
83. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Execution order of graph transformation rules
§ A graph transformation system consists of a set of different graph
transformation rules
§ In which order are they being executed?
§ Multiple procedures
§ nondeterministic
§ deterministic
§ Priorities
§ Programs (aka „programmable graph transformations“)
§ Example – Specialized UML activity diagrams
§ [failure]
§ [success]
85. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Summary
§ Model transformations are graph transformations
§ Type Graph = Metamodel
§ Graph = Model
§ Programmable graph transformations allow for the development
of complex graph evolution scenarios
§ Exogenous, out-place transformations can also be specified as
graph transformations
§ However more complex as with ATL
§ Graph transformations are becoming more and more relevant in
practice
§ Found their way into Eclipse!
86. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
www.mdse-book.com
MASTERING MODEL
TRANSFORMATIONS
87. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
HOTs
§ Transformations can be regarded as models themselves
§ They are instances of a transformation metamodel!
§ This uniformity allows reusing tools and methods defined for models
§ Thus, a transformation model can itself be created or manipulated
by transformations, by so-called Higher Order Transformations
(HOTs)
§ Transformations that take as input a model transformation and/or
generate a model transformation as output
§ Examples
§ Refactoring support for transformations to improve their internal structure
§ Adding a logging aspect to transformations
§ …
88. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Bi-directional Transformations
§ Bi-directional model transformation languages
§ do not impose a transformation direction when specifying a
transformation
§ allow for different execution modes such as transformation,
integration, and synchronization
§ Transformation mode is further divided into forward and
backward transformation (source - target - source)
§ Integration mode assumes to have source and target models
given and checks if expected elements (that would be produced
in the transformation mode) exist
§ Synchronization mode updates the models in case the
integration mode has reported unsatisfied correspondences
§ Languages allowing for bi-directional transformations:
§ JTL, TGG, QVT Relational, …
89. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Lazy Incremental Transformations
§ Standard execution strategy for out-place transformations
1) Read the complete input model
2) Produce the output model from scratch by applying all matching
transformation rules.
§ Such executions are often referred as batch transformations.
§ Two scenarios may benefit from alternative execution strategies
1) An output model already exists from a previous transformation run
for a given input model à incremental transformations
2) Only a part of the output model is needed by a consumer à lazy
transformations
§ Experimental implementations for lazy and incremental
transformations are available for ATL
90. Marco Brambilla, Jordi Cabot, Manuel Wimmer.
Model-Driven Software Engineering In Practice. Morgan Claypool 2012.
Transformation Chains
§ Transformations may be complex processes
§ Divide and Conquer
§ Use different transformation steps to avoid having one monolithic transformation!
§ Transformation chains are the technique of choice for modeling the
orchestration of different model transformations
§ Transformation chains are defined with orchestration languages
§ Simplest form: sequential steps of transformations executions
§ More complex forms: conditional branches, loops, and further control constructs
§ Even HOTs may produce dynamically transformations used by the chain
§ Smaller transformations focusing on certain aspects allow for higher
reusability