Abstract
This paper gives an overview of the CADMOS learning design tool that promotes the concept of “separation of concerns” during the design process. CADMOS is a graphical IMS-LD Level A & B compliant learning design tool. According to the feedback from an evaluation case study with 36 participants, CADMOS is a user friendly tool that allows educational practitioners to design flows of learning activities from different perspectives and in different layers.
This presentation shows the philosophy of the CADMOS learning desing tool which has a graphical user interface and exports designs in IMS LD format.It This presentation was made at Iadis2011 conference in Rome.
Abstract
This paper gives an overview of the CADMOS learning design tool that promotes the concept of “separation of concerns” during the design process. CADMOS is a graphical IMS-LD Level A & B compliant learning design tool. According to the feedback from an evaluation case study with 36 participants, CADMOS is a user friendly tool that allows educational practitioners to design flows of learning activities from different perspectives and in different layers.
This presentation shows the philosophy of the CADMOS learning desing tool which has a graphical user interface and exports designs in IMS LD format.It This presentation was made at Iadis2011 conference in Rome.
When talking about modeling, I think there will be a bundle of terms that will come to our mind, UML, domain driven development, DSL, forward/reverse enginerring, MDD, MDA, BPMN. These technology or methodology have been there for years; And obviously, modeling has proven itself to provide value by improving communication, business-alignment, quality, and productivity. Its applicability includes a number of disciplines such as analysis, design, or development. But why aren’t we all doing Model Driven Development yet?
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 - 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
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)Jordi Cabot
Consejos para tener éxito en la adopción de una estrategia MDD en vuestro proceso de desarrollo.
Más sobre estos temas (UML, DSLs, MDA, generación de código,..) en http://modeling-languages.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
MetaScience: Holistic Approach for Research Modeling and AnalysisJordi Cabot
This article (presented at the ER2016 conference) proposes a conceptual schema providing a holistic view of conference-related information (e.g., authors, papers, committees and topics). This schema is automatically and incrementally populated with data available online.
A number of data analysis and visualization algorithms are applied on top of this data to provide meaningful information to prospective authors, PC members and conference steering committeees
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)Jordi Cabot
n the talk I explore the relationships between software modeling and agile practices. For many agilists, the perception is that modeling is a useless activity that should not be part of the core agile practices. But, Is this really the case? Can agile benefit from modeling? Can modeling benefit from agile? Can modeling help companies understand the human and social aspects of agile methods and improve their chances of success when adopting them?
Very preliminar intro to MDE for software developer communities and other kind of software practitioners. Contains material from several recognized sources.
Revisiting all aspects of model-driven engineering (application, teaching, verification , tooling, research,...) promoting a lightweight perspective to maximize MDE success and adoption
When talking about modeling, I think there will be a bundle of terms that will come to our mind, UML, domain driven development, DSL, forward/reverse enginerring, MDD, MDA, BPMN. These technology or methodology have been there for years; And obviously, modeling has proven itself to provide value by improving communication, business-alignment, quality, and productivity. Its applicability includes a number of disciplines such as analysis, design, or development. But why aren’t we all doing Model Driven Development yet?
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 - 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
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)Jordi Cabot
Consejos para tener éxito en la adopción de una estrategia MDD en vuestro proceso de desarrollo.
Más sobre estos temas (UML, DSLs, MDA, generación de código,..) en http://modeling-languages.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
MetaScience: Holistic Approach for Research Modeling and AnalysisJordi Cabot
This article (presented at the ER2016 conference) proposes a conceptual schema providing a holistic view of conference-related information (e.g., authors, papers, committees and topics). This schema is automatically and incrementally populated with data available online.
A number of data analysis and visualization algorithms are applied on top of this data to provide meaningful information to prospective authors, PC members and conference steering committeees
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)Jordi Cabot
n the talk I explore the relationships between software modeling and agile practices. For many agilists, the perception is that modeling is a useless activity that should not be part of the core agile practices. But, Is this really the case? Can agile benefit from modeling? Can modeling benefit from agile? Can modeling help companies understand the human and social aspects of agile methods and improve their chances of success when adopting them?
Very preliminar intro to MDE for software developer communities and other kind of software practitioners. Contains material from several recognized sources.
Revisiting all aspects of model-driven engineering (application, teaching, verification , tooling, research,...) promoting a lightweight perspective to maximize MDE success and adoption
The I in PRIMM - Code Comprehension and QuestioningSue Sentance
Slides from a talk given at the CAS London conference on 29th February 2020. Discusses the teaching of computer programming using PRIMM and in particular, the Investigate stage. Looks at the Block Model and how we can explore students' understanding by asking a range of different questions.
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.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
1. Educating in MDE
Jordi Cabot
http://modeling-languages.com
INRIA & École des Mines de Nantes,
2. Educating in MDE
Shouldn’t MDE also change the way we teach Software Engineering
in CS degrees?
Model-driven engineering (MDE) is changing the way software
systems are developed, operated and evolved.
Mixing personal opinions and lessons learnt during the last years
teaching SE and MDE in different places, levels and environments
No magical recipes but, hopefully, some useful ideas & discussions
4. Joint team between INRIA & Ecole des Mines de Nantes (EMN)
≈10 members
Research focus on:
– MDE core technologies
• metamodeling, MT, MaaS, model management, virtual models…
– MDE applications
• reverse engineering, tool interoperability, IS cartography,…
Commitment to Eclipse open-source projects:
– ATL, MoDisco, EMF Facet, AMW, AM3, TCS
Strong links with several software development companies
Participation in both national and international research projects
AtlanMod
5. Nantes
Paris
Nantes is a city
in Western France,
with 750,000 inhabitants
in the metropolitan area.
Nantes is the most
important city
of Brittany
and the 6th
town
in France.
6. 850 engineering students
115 doctoral students
125 permanent faculty members + 250 part-time teaching staff
5 research departments
10 specializations (all students get an Engineer Diploma – 2 CS-
related specializations)
150 graduates per year
EMN (let´s look at the numbers)
Low number of students. Good Rate students/faculty.
Lots of support for teaching innovation
Emphasis on Technology Transfer
GOOD ENVIRONMENT FOR TEACHING MDE
9. Relationship between MDA/MDD/MDE
MDD = Models as the primary artifact of the development process.
MDA is the OMG's particular vision of MDD
MDE = Models as primary artifacts of any Soft. Eng. activity
10. Relationship between MDA/MDD/MDE
All model-driven processes are model-based but not the other way
round.
Most MDE techniques are still useful in MBE
13. Educating in MDE
Shouldn’t MDE also change the way we teach Software Engineering
is taught in CS degrees?
Model-driven engineering (MDE) is changing the way software
systems are developed, operated and evolved.
Is this the case?
14. MDE is not included in core SE courses
In SE courses, MDE reduced to teaching UML (OCL?) for software
specification (and design of centralized systems)
Few faculties have an (optional) course on MDE, sometimes only at
the master level
When teaching MDE focus on MDD, e.g. creating a DSL + code-
generation from it
Easier to find courses on formal methods for SE !!! (not that I´m
saying that FM are not important but …)
Looking at course syllabus in CS degrees (Spain)
Out of topic:
How many courses include version control, bug tracking, tests or
even agile practices?
15. Existence of MDE courses tightly related to presence of a research
group on these topics
Nevertheless, situation much better than a couple of years ago!!
Opinion: Spain is one of the most advanced countries on this aspect
(linked to high MDE research activity)
Still time to change the situation (opening of new degrees due to the
new regulation)
Looking at course syllabus in CS degrees (II)
17. MDE concepts should be introduced as part of the core SE courses
Everybody has a basic notion of SE
It´s clear that MDE is not something apart from (alternative to) SE
Remember: MDE is process agnostic. Fits any dev. process you follow in
your SE courses
MDE-based Waterfall process
MDE-based Agile process (see Agile and Modeling / MDE : friends or
foes?)
…
When to teach MDE?
18. Introduction of MDE teaching in three different steps
1. Make sure all SE courses are model-based (some SE courses are
more about programming than modeling)
2. Transform (some of) them in model-driven
3. Provide one full MDE course to
Show other MDE application scenarios (beyond forward
engineering)
Introduce other MDE techniques (e.g. DSLs, model
management,…)
Next we will see what contents include in each scenario
What to teach?
But first: when to teach MDE = When to teach SE.
19. When to teach Soft. Engineering ?
Soft. Eng. is not taught in the same order!
Students first learn how to program (and design DBs) and then
learn that these programs should be part of “something” called SE
20. Example (UOC – Open University of Catalonia)
When to teach Soft. Engineering ?
Fundamentos
Programación
Programación
OO
Estructura de la
Información
Bases de
Datos I
Bases de
Datos II
Sist. Gestión
Bases de Datos
Modelos Multidim. y
Almacenes de Datos
Ing. Software
Estructurado
Ing. Software
Gestión organizaciones y
proyectos inf.
Técnicas de
Desarrollo
Softwqre
Ing. Software
OO
Proceso de Ing.
Software
Ing. Software
componentes y
sistemas
distribuidosInteracción Humano-
Ordenador
Programación
Bases de Datos
Ingeniería del Software
Gestión de la Ingeniería del Software
UML (class diagrams) first introduced in Programming then again in BD
and then again in SE!
Domain modeling seen twice: in BD and in SE
No conceptual link between SE and Programming and BD subjects
21. We tried to reverse the order (first specification and then programming)
but had to reach a consensus
When to teach Soft. Engineering ?
22. First we introduce SE principles (like lifecycles)
Then we explain in parallel: specification, introduction to programming
and introduction to databases.
Once we know the “final implementation platforms” (e.g. Java + RDB)
we can explain the principles of the design process
A different course teaches the design process specific to each platform
When to teach SE?
Interdisciplinary: professors from different areas must reach an agreement
Too many course dependencies prevented us from being more ambitious
More info: ¿Podemos darle la vuelta a la enseñanza del desarrollo
del Software? J. M.Marco-Simo et al. Novática 193
25. Usually SE core courses focus on the specification and design of
centralized (or C/S) systems
Final technology platform: a OO program + a RDB as a persistence layer
These courses are already (UML) model-based: use cases, class,
sequence diagrams,…
But this is not the case with advanced SE courses on distributed and
component-based systems
Complex technology platforms (JEE, .NET)
Not obvious how to model those systems
Model-based courses
We’ll see an example of transforming a DSE course from
programming-only to model-based
For more info: From Programming to Modeling
Our experience with a Distributed Software Engineering Course.
Cabot et al. ICSE’08 Ed. Sym
26. Original contents. Focused on teaching distributed technologies
M1 – Distributed Software
Distributed environments
Distributed object platforms: CORBA, RMI, DCOM
M2 – Component-based Software
The components model
UML for component-based systems specification
M3 – EJB: Distributed components (>50% of the time)
Introduction to the J2EE platform
Servlets and JSP
The EJB architecture
JEE beans: Entity, Session and Message beans
Transactions and JEE
From programming to modeling in a Distributed
SE course
27. Problems with this Distributed SE course
This view impairs the students’ ability to develop complex systems
that require a more abstract view
Contents quickly became outdated (DCOM?, RMI?)
No methodological aspects about the analysis/design of distributed
software systems
No software architecture concepts
No distinction between platform-independent and platform-specific
concepts
– Students tend to believe that the acquired knowledge is only
useful for the J2EE platform
28. New course: educational objectives
To relate the DSE field with contents of previous subjects on SE
To combine a practical approach with a conceptual frame that makes it
independent of the technology
– A DSE course should especially emphasize its underlying principles
– Students should still learn how to program with a distributed and
component-based technology platform (e.g. JEE)
– The course should highlight the similarities among the different
technologies and motivate critical attitudes
To use well-established models and notations (e.g. international standards)
for the design and development of distributed applications
To teach how to select, evaluate and adapt different approaches, methods
and architectural styles
29. New course: global structure (I)
A system specification is defined as a set of independent viewpoints, each
one of these viewpoints focuses on concrete aspects of the system
The Reference Model for Open Distributed Processing (RM-ODP) is used as
a framework. Modeling with UML
Link with previous SE courses
30. New course: global structure (II)
All views have been defined at the PIM level (including the definition of
system components and their logical distribution) -> Reusability
Then, adaptation to JEE as example platform:
The main concepts and technologies of J2EE are introduced.
An UML profile for J2EE is explained
Transformations between PIMs and J2EE-specific PSMs and between
PSMs and code are shown (but not formalized with any transf. lang)
[30] From module 2 …From module 2 … …… to module 4to module 4
31. New course: lessons learnt and results
Better learning experience:
– It is easier to understand the different aspects that should be
considered in the design of distributed systems
– The students have now a broader understanding of the different
concepts and mechanisms of commercial component platforms
– Formal polls reveal that the overall student satisfaction has not
changed (even slightly increased)
But…
– More contents than before ( failure rate has increased 10% )
All the programming part plus the new “modeling” concerns
Ideally we should split the course in two
– Broad set of previous knowledge required
DBs, Java, UML 2.x, SE…
– (Lab) Technical assistance highly recommended
– Teachers need strong skills in both SE, MDD and JEE
It is difficult to find consultants with a suitable profile to teach this course
33. No matter how trendy are DSLs (Domain-Specific Languages), UML is
still by far the most important modeling language nowadays
…with the permission of BPMN??
UML should still be the basic notation for SE courses. If there´s enough
time, a small DSL for a specific system view (e.g. graphical interface)
would be great
Profiles should also be part of the UML content in the SE courses
Don’t reinvent the wheel vs Don´t push profiles too much
Important: Concrete syntax vs Abstract syntax vs Semantics
Don’t even think about dropping UML
34. Students should learn that textual modeling is also possible
Not always graphical syntaxes are the best option (e.g. defining
behaviour; easier version control).
Textual UML
<img
src="http://yuml.me/diagram/scruffy/
class/[Customer]->[Billing
Address]" >
yUML
TextUML
35. It´s very important to teach Object Constraint Language. Many
applications:
− Precise specification of software systems
− Patterns in transformations and model queries
− Definition of new DSLs
− …
Importance of Teaching OCL
Machine
Conveyor
Piece
1
*
*
om ic
*
+ capacity: int
im
*
oc
*
piece
Integrity constraints
context Conveyor inv:
self.piece->size() ≤ self.capacity
OCL is not that difficult!!! - Test with students: Most of them were
able to guess without training the meaning of some OCL expr
36. Best way to teach OCL? Introducing it together with UML during the
specification of software systems (less abstract than other scenarios)
Invariants
Pre and postconditions
Use a UML tool with, at least, an OCL parser (many tools store OCL
constraints as simple strings)
Show the effect of those OCL expressions in the code (there are tools
for automating this)
If-then-else expressions in Java methods
Triggers in SQL
Object Constraint Language (II)
If it is not too much to ask make sure they understand the
efficiency issues involved in the evaluation of OCL (Incremental
OCL – Cabot & Teniente )
37. … but the best tool you can use to teach OCL is the USE tool (model
animation tool: define your scenarios and validate your constraints)
Object Constraint Language (III)
MOVA
is a
similar
tool
38. MDE SE Course: I’d be happy if they learn…
PIM
PSM
M2M
CREATE TABLE Participant {
Name Varchar2(20) PRIMARY KEY
…
}
M2T
39. More than an MDE SE course -> An MDD SE course
Need time to teach other SE concepts (from software processes to
design patterns)
To help, we may work with already provided Java and SQL simplified
metamodels and partially defined transformations
At this point, the important thing is that they see how things could be
done, not so much that they actually do them.
MDE SE Course: Being realistic (time constraints)
40. IMHO, this should be included in any SE course. Trickier than it
seems (and far beyond simple conformance)
If code is generated from models -> quality of code = quality of
models
Again, goal: realize that this aspect must also be considered
Quality of models
Not Satisfiable!!
Ex2. Ask your students to model a class
person and the recursive relationship
isParentOf. How many parents does a
person have?
42. This section is based on the MDE diploma:
1st full postgraduate program on MDE
1 year duration
Also, as part of a recently granted Leonardo Da Vinci project, we will
Adapt the syllabus to different scenarios
With focus on Web Engineering as application domain (M.
Brambilla - Politecnico di Milano partner)
Scenarios we will consider:
Separate module in a SE course
Full course undergrad/grad level
Full master
Professional course/seminar
A full MDE course
I’ll now present the MDE diploma. Build your MDE course taking a
subset of the MDE diploma modules (depending on your focus)
At least include the creation of a DSL (and its editor)
43. http://www.mines-nantes.fr/fr/Formations/Formation-
specialisee/MDE
The goal of the MDE Diploma is to train engineers to manage complex
projects in various IT fields with the latest cutting-edge modeling
technologies
6 month full-time courses at the EMN + 6 month internship in a
company developing a MDE project
More than 20 invited lecturers
1st
edition to finish February 2011. 2nd
to start September 2011
Contents include social and management aspects of MDE
The MDE diploma
44. The MDE diploma: M1
Module 1:
Current Software Development Practices (60h)
Software Modeling with current standards: UML, OCL,
overview of other standards (MDA, SPEM,…)
Using an Integrated Development Environment: Eclipse
EMF, GMF,…
Free and Open Source Software Development
45. The MDE diploma: M2
Module 2:
Automatic Model Processing (60h)
Metamodel design
Model-to-model Transformation with ATL
Definition of Complex Transformations (HOTs, MT chains)
Alternative Transformation Languages (GT and QVT)
46. The MDE diploma: M3
Module 3:
Managing Complex Scenarios (60h)
Model Management
repositories, versioning/evolution
relating models: weaving models for matching and
traceability…)
Integration of Heterogeneous Technologies
Technical spaces
Textual syntaxes: TCS, Xtext, MPS
MDE and ontologies
47. The MDE diploma: M4
Module 4:
Applications to Information Systems (60h)
Data Engineering
Web Engineering
Business Rules Engineering
Legacy Reverse Engineering
Graphical user interfaces
…
48. The MDE diploma: M5
Module 5:
Applications to Critical Systems (60h)
Embedded and Real-Time Systems
Process Engineering
System Engineering
Security Engineering
Formal Methods
…
49. The MDE diploma: M6
Module 6:
Managing MDE Projects (60h)
MDE and management of technology and innovations
MDE and management of information systems
Industrial Experience Reports
50. From 360 hours to 430 (counting only hours in class; includes personal
work in class)
Very difficult to find people to talk about management of MDE projects.
It’s nice to have invited lecturers but it’s a huge amount of work (even
from a “social” perspective)
Students wanted to have a session with me each week to review what
they had learnt and related it with previous lectures due to
A lot of one day sessions on a single topic.
Few ordering constraints among the modules enforced due to
lecturers travel constraints
Apart from the company internship we had to prepare a small project
to be done during the courses to help to put everything together
Lessons learnt
52. Focus on concepts and principles instead of focusing on notations and
tools
Learning the UML notation is important but it´s much more important
(and difficult) learning how to model
Most students finish their SE courses without being able to draw a proper
domain model for a 1-page application domain description!
E.g. knowing how to indicate static properties in UML class diagrams it is
a necessary but not sufficient condition to apply this concept in practice
Focus on MDE principles
53. The Modeling Triangle
And please make sure they understand UML is not a development
method. More people than you think believe this
Partially our fault because we usually teach UML following an
implicit method
All three elements are important!
54. Bigger impact than with programming languages (all IDEs compile and
run programs the same way)
No best choice: Usability vs completeness (e.g. ternary associations,…)
vs Features (code-generation,…)
At the UOC : an academic license (free) of MagicDraw.
… but projects were delivered in pdf. Students could use any tool
they wanted (no support provided for those tools)
For team work, take a look at new breed of online modeling tools
Important: they must understand the difference between a modeling tool
and a drawing tool (e.g. Visio)
Choosing the right tool/s
55. Beyond UML modeling, the safest solution is go to Eclipse and the tools
under the Eclipse Modeling Project (EMF, GMF,…)
Better to create a bundle with what they need
Don't underestimate time for learning how to install and setup the tools
Most tools have crappy documentation; you decide how students
should spend their time
Outdated manuals may be worse than no manuals at all
Choosing the right tool/s (II)
MaaS (Modeling as a Service) still a long-shot but worth
considering. Imagine combining modeling services from different
providers to create your own MDD process
56. Learning MDE requires practicing with existing model elements
We need examples of models but also metamodels, model
transformations,…
What´s out there?
ReMoDD (Repository for Model Driven development)
Open Model Initiative
OOModels
AtlanMod zoo of metamodels (>200) and transformations
Database Answers: free library of >600 data models
Lack of MDE repositories
57. Intellectual property issues -> Models (and not products) are
becoming the main assets for companies. Don’t want to share
Many kinds of models and modeling languages
Not only repositories but search engines needed on top of them
(AtlanMod working on this right now)
Search by type
Search by domain
What format ? (image, xmi,…)
Models are not enough. We need the context
MDE repositories (II) – Why nothing better?
Only short-term solution I see? Faculty sharing their class exercises
They may not be real-life examples but perfect for learning (we are
experts on that)
58. Very easy to solve your PHP problems with Google. Try to do the
same with UML
Poor and sparse documentation:
Most of it referring only to UML
And linked to a specific (commercial) tool
The Modeling Languages portal tries to help here
But again, university courses are probably the best source of
comprehensible information. Put them online!!
Check upcoming www.learnMDE.com for educational resources
Lack of documentation
60. Let’s explain the real situation
Modeling will be commonplace in 3 years time – S. Mellor
– Thought he is giving the same answer for the last 20 years
Prepare students for what they will find in the real life -> no
revolution! evolution!)
62. Pains and gains of software modeling
Collective benefit but not for some individuals in the team
Socio-technical congruence:
Is the company ready for MDE?
Team members can perform the activities required in a MDE
process? Do they have the right skillset? Can they satisfy the
new dependencies between them?
Without forgetting the Social Aspects
Adopting MDE is NOT buying a code-generator!!!