Ingénierie des modèles

Ref: 3IF2040

Description

  • Les modèles sont au cœur de la conception des systèmes, et les modèles informatiques peuvent eux-mêmes être considérés comme des systèmes que l’on modélise, ce qui crée toute une hiérarchie de modèles auxquels s’appliquent les techniques de l’ingénierie des modèles. Ce cours aborde le rôle des modèles, les relations entre modèles, systèmes et langages afin d’éclairer les fondements de l’ingénierie des modèles et de tout l’outillage disponible pour créer des métamodèles, définir des transformations de modèles, valider des modèles. Ces outils sont mis en œuvre et exploités pour limiter les redondances, éviter les incohérences et réutiliser au mieux l’information codée dans les modèles. Un mini-projet sous Eclipse EMF avec QVT-operational et Acceleo se déroule en parallèle du cours, avec une séance de 3h de travaux dirigés pour le suivi. Le cours proprement dit comporte 4 séances de 3h. Une dernière séance de 3h est consacrée à un cas d'étude porté par un intervenant industriel.

Période(s) du cours

SM10

Prérequis

  • aucun

Syllabus

  • Créneau 1 :
    • Introduction, définitions
      • Systèmes, modèles, langages de modélisation, métamodèles
      • Typologie des modèles
      • Gestion de la complexité, Analyse et conception
    • Sémantique des modèles
      • Nécessité de donner un sens à un modèle
      • Syntaxes abstraite et concrète
      • Sémantiques abstraite et concrète, modèles de calcul
      • Principes de la définition d'une sémantique
      • Lois de composition des comportements
  • Créneaux 2, 3, et 4 (sur machine) :
    • Concepts :
      • Métamodèles eCore,
      • Instantiation d'un modèle,
      • Intérêt des approches génératives, sémantique traductionnelle
    • Transformations de modèles M2M, QVT operational
    • Transformations de modèles M2T, Acceleo
    • Création d'un DSL pour des systèmes à transitions
    • Mise en œuvre concrète :
      • Transformation M2M pour aller vers un modèle de code
      • Transformation M2T pour générer du code Java
  • Créneau 5 (sur machine) : Cas d'étude proposé par un intervenant industriel

Composition du cours

  • Site web présentant le matériel du cours ainsi que des éléments d'approfondissement
  • Cours magistraux pour présenter les concepts
  • Bureaux d'étude avec réalisations concrètes pour mettre en œuvre les concepts et se les approprier

Ressources

Les moyens mis en œuvre pour ce cours combinent cours magistraux pour la présentation des concepts théoriques, cours sur machine pour appréhender les techniques qui les mettent en œuvre, et travail personnel encadré par des bureaux d'étude afin de permettre aux élèves de prendre en main rapidement les différents outils.

Résultats de l'apprentissage couverts par le cours

  • À l'issue de ce cours, les élèves seront capables :
- de faire des choix de modélisation pertinents en fonction d'objectifs de modélisation,
- de définir un langage de modélisation (un métamodèle) adapté à un problème métier,
- d'outiller ce langage pour le rendre utilisable (éditeur, analyseur syntaxique, vérificateur)
- de concevoir des transformations entre différents langages, autant au niveau du métamodèle que des formats textuels.
- ils auront également été sensibilisés à la problématique du sens donné à un modèle, qui sera approfondie dans le cours de sémantique.

Support de cours, bibliographie

https://wdi.centralesupelec.fr/mde/