CentraleSupélecDépartement informatique
Plateau de Moulon
3 rue Joliot-Curie
F-91192 Gif-sur-Yvette cedex
Ingénierie des modèles

Code 3IF2040, 30 HEE, 15 HPE

Contact

Frédéric Boulanger frederic.boulanger@centralesupelec.fr

Site web du cours

Présentation générale

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.

Acquis d'apprentissage visés 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.

Moyens

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.

Description des compétences acquises à l'issue de ce cours

C1.2 Utiliser et développer les modèles adaptés, choisir la bonne échelle de modélisation et les hypothèses simplificatrices pertinentes pour traiter le problème

  • Concevoir un langage de modélisation adapté à un domaine métier.
  • Choisir le bon niveau d'abstraction pour faire le bon compromis entre expressivité et capacité à résoudre.

C1.4 Spécifier, concevoir, réaliser et valider tout ou partie d'un système complexe

  • Définir l'architecture d'une chaîne de conception : choix des différents modèles en jeu et conception des transformations entre ces modèles.

C1.5 Mobiliser un large socle scientifique et technique dans le cadre d’une approche transdisciplinaire

  • Mobiliser ses compétences d'ingénieur généraliste afin de comprendre les besoins du client dans la conception d'un système logiciel de modélisation de ses problèmes métier.

C5.2 Écouter, se faire comprendre et travailler avec des acteurs de culture, d'expérience et compétences variées

  • Accepter et comprendre les différentes cultures métier, être attentif aux différences de vocabulaire afin de concevoir des outils de modélisation adaptés aux besoins du client.

C3.8 Savoir concevoir, réaliser et passer à l'industrialisation

  • Savoir décomposer le processus de conception en étapes et créer les différents métamodèles nécessaires, ainsi que les algorithmes de validation et de transformation des modèles entre ces étapes.
  • Créer de nouveaux langages de modélisation afin de permettre d'exprimer de nouveaux concepts, tout en s'appuyant sur les outils d'ingénierie disponible afin de limiter le risque d'échec.

Contenu

5 créneaux de 3h (15 HPE) : 2 cours, 1 cours sur machine, un bureau d'étude, examen sur machine.

  1. Cours
    • 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
  2. Cours
    • Modèles de calcul usuels
      • Équations différentielles ordinaires, événements discrets
      • Réseaux de processus, flots de données
      • Automates et hiérarchie
        • Produit synchrone, préemption
        • Modèles modaux
    • Modèles du parallélisme
      • Threads et sémaphores, CSP, approche synchrone
  3. Cours sur machine
    • Métamodèles eCore
    • Transformations de modèles M2M, QVT operational
    • Transformations de modèles M2T, Acceleo
    • Intérêt des approches génératives, sémantique traductionnelle
  4. Bureau d'étude
    • Création d'un DSL pour des systèmes à transitions
    • Transformation M2M pour aller vers un modèle de code
    • Transformation M2T pour générer du code Java
  5. Examen sur machine

Méthodes pédagogiques

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

Évaluation

L'évaluation se fera en contrôle continu sur la qualité du travail fourni lors des bureaux d'étude et sur le rendu du projet, ainsi que par un examen final sur machine.