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
-
Aspects,
Modeling and Meta-modeling (6h)
-
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 (4h)
-
model
queries, views and transformations, model-to-model and model-to-text
transformations, typing model transformations.
-
From
requirements to design to test (4h)
-
Requirement
Modeling, Model Driven Design of CBES, Aspect Weaving, Automatic
Design Pattern application, Product-line derivation, code generation.
-
From
models to reality: the experimental side of testing (6h)
-
Contracts
for testing, software vigilance, testabililty and diagnosability,
requirements-based validation, test technique qualification, mutation
analysis, fault localization, testing-for-trust
Bibliography
- 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.
Internationales Begegnungs und Forschungszentrum für Informatik (IBFI),
Schloss Dagstuhl, Germany, 2007
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
- one homework: 50%
- the oral presentation of the homework: 20%
- one quizz (30 minutes): 30%