MDE: Model Driven Engineering of Embedded Software
Person in charge: Jean-Marc Jezequel (mail)
Pedagogical team: Jean-Marc Jezequel, Benoit Combemale, Benoit Baudry (mail)
Due to ongoing advances in hardware, embedded software has been growing in size and complexity at an exponential rate for the past 20 years, pleading for a component based approach to embedded software development. However, embedded software components interact among themselves and with the real world in complex ways involving many extra-functional dimensions. Like in other sciences, people have been relying more and more on modelling to try to master this complexity. Modeling, in the broadest sense, is indeed the cost-effective use of a simplified representation of an aspect of the world for a specific purpose. Model-Driven Engineering (MDE) can be defined as a software development method where all the relevant information in the project is stored in some kind of abstract model. Software design and validation is then carried out as a set of model transformations.
The goal of this course is to provide the fundamentals of Model Driven Engineering (MDE), organized around the notions of Aspects and Models, Meta-models, and Model Transformations, as well as introducing general principles of Component Based Embedded Software (component and composition models, contracts and assume/guarantee reasoning). In the context of Embedded Software Product-Line Engineering, students will be able to use MDE to mechanize software engineering activities ranging from requirement analysis, aspect weaving, design pattern application, product derivation, to code generation and design validation and verification through a connexion to model-checking techniques as described in the TVA module.
Keywords: Aspects, Models, Meta-models, Model Transformations, Components, Contracts, Product-Lines, Validation and Verification.
Prerequisites: OO Modeling (inc. Class Diagrams, Component Diagrams, Statecharts, Message Sequence Charts, etc.) ; OO Design, programming and testing (main design patterns, either Java/C#/Eiffel/C++ languages, JUnit/C#Unit testing frameworks)
- Knowledge of the concepts of aspects, models, méta-models and model transformation
- Knowledge of the main principles of component-based design of real-time systems
- Knowledge of system V&V problematics
- Know how to use model-driven engineering to automate requirement analysis, aspect weaving, design pattern application, design model validation and code generation
- Aspects, Modeling and Meta-modeling
- separation of concerns with models and aspects; modeling, meta-modeling, and meta-meta modeling; profiles; expressing static and dynamic semantics of models; component models with temporal and other extra-functional contracts: towards assume/guarantee reasoning.
- Theory of model transformation
- model queries, views and transformations, model-to-model and model-to-text transformations, typing model transformations.
- From requirements to design to test
- Requirement Modeling, Model Driven Design of CBES, Aspect Weaving, Automatic Design Pattern application, Product-line derivation, code generation.
- Model Driven Validation and Verification
- Model Simulation, Model (transformation) verification using model checker and proof assistant, Model based testing
- Jézéquel J.-M. Model driven engineering for distributed realtime embedded systems, chapter Real time components and contracts. Hermes Science Publishing Ltd, London, 2005
- Muller P.-A., Fleurey F., Jézéquel J.-M. Weaving executability into object-oriented meta-languages. Eds : Kent S., Briand L., Proceedings of MODELS/UML'2005, LNCS, Vol 3713:264-278, Montego Bay, Jamaica, Springer, 2005
- Jézéquel J.-M. Modeling and aspect weaving. Eds : Brinksma, Harel D., Mader A., Stevens P., Wieringa R., Methods for Modelling Software Systems, no 06351 in Dagstuhl Seminar Proceedings, Germany, 2007
- J.-M. Jézéquel, B. Combemale, D. Vojtisek, Ingénierie Dirigée par les Modèles: des concepts à la pratique. Edition Ellipse (a paraître en 2012).
- Practical Model-Based Testing: A Tools Approach, Mark Utting and Bruno Legeard, ISBN 978-0-12-372501-1, Morgan-Kaufmann 2007.
Evaluation is based on quizzes, reviews, and/or other academic exercises mostly outside scheduled class times.
The final grade is determined by performance on:
- one homework: 50%
- the oral presentation of the homework: 20%
- one quizz (60 minutes): 30%