editer cette page

Model Driven Engineering of Embedded Software (MDE)

Person in charge: Jean-Marc Jezequel
Pedagogical team: Benoit Baudry, Benoit Combemale, Jean-Marc Jezequel

Description
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, design validation (including for temporal aspects), product derivation, to code generation. In second part, this course focuses on the theoretical and experimental research advances of software systems testing. In the continuity of the VTS course on model-based testing, it presents the common methodology that is applied to empirically demonstrate how design and test models are efficient to reveal and locate faults in the final system. The goal is to systematically and rigorously confront models with reality.

Keywords: Aspects, Models, Meta-models, Model Transformations, Components, Contracts, Product-Lines, Empirical Validation, Measurement Theory, Testing. 

Pre-requisites: 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)  

General structure and content

Bibliography
Evaluation mode
Evaluation is based on quizzes, reviews, and/or other academic exercises mostly outside scheduled class times.

The final grade is determined by performance on