Introduire les concepts de l’Ingénierie Dirigée par les Modèles.
Présentation des notions introduites par l’Object Management Group et par la définition d’espaces technologiques.
Introduire les notions de modèle et de métamodèle par rapport à la métaprogrammation.
Introduire les relations de représentation et de conformités et la notion de transformation de modèle.
La modélisation et la simulation sont à l’origine de ces techniques. Nous présentons comment elles peuvent être appliquées dans différents contextes de calcul distribués. D’autre part, ces techniques sont mise en œuvre sur des cas de simulation stochastiques et de calcul parallèle avec des exemples d’introspection et de production automatique de code .
Plan du cours
I Présentation de l’Ingénierie Des Modèles (IDM)
L’architecture MDA de l’Object Management Group
L’utilisation du langage UML pour l’IDM
Relation entre concepts objets et IDM
Les méthodes de modélisation et l’IDM
La programmation par aspect et l’IDM
II Etude des concepts retenus pour l’IDM
La notion de modèle et la relation de représentation
La notion de métamodèle et de conformité
Relation entre langages et métamodèles
III Les espaces techniques et les langages spécialisés (Domain Specific Languages)
IV Modélisation pour le calcul distribué
La simulation à l’origine du modèle objet
La modélisation à l’origine de l’ingénierie des modèle
Les différents modèles de calcul distribués
IV Mise en œuvre de l’IDM pour les simulations stochastiques parallèles
Problèmes de reproductibilité numérique des calculs parallèles stochastiques
IDM et limites de la représentation des nombres flottants – la cas du calcul parallèle
Génération automatiques de sommes compensées pour une approche Map-Reduce
Description des TP
TP1 : Découverte et mise en œuvre des concepts de l’IDM.
TP2 : Méta-programmation, génération de nombres pseudo-aléatoires et parallélisme
TP3 : Application de l’IDM à un cas de simulation distribuée stochastique.
TP4 : Implémentation d’un métamodèle pour les concepts du modèle objet (dont la généricité par méta-programmation (2 séances)
TP5 : Outilage de l’IDM, génération automatique de code et limites du calcul flotant.
Connaissances requises
Connaissance des concepts Objets,
Cours de langage C,C++, de Structure des données, d’Unix et de Simulation (étudiés en 1ère et 2nde année de Tronc commun et de 2ème année F2),
Analyse Numérique.
RSE (Responsabilité Sociale et Environnementale)
Bibliographie
AKDUR, Deniz, GAROUSI, Vahid, et DEMIRÖRS, Onur. A survey on modeling and model-driven engineering practices in the embedded software industry. Journal of Systems Architecture, 2018, vol. 91, p. 62-82.
FAVRE J-M, ESTUBLIER J, BLAY-FORNARINO M., L’ingénierie dirigée par les modèles – au-delà du MDA, Hermes-Lavoisier, 2006, 227 p.
SCHMIDT, Douglas C. Model-driven engineering. COMPUTER-IEEE COMPUTER SOCIETY-, 2006, vol. 39, no 2, p. 25.
WHITTLE, Jon, HUTCHINSON, John, et ROUNCEFIELD, Mark. The state of practice in model-driven engineering. IEEE software, 2014, vol. 31, no 3, p. 79-85.