L'Ingénierie Dirigée par les Modèles (IDM), ou Model Driven Engineering (MDE) en anglais, s'inscrit dans l'évolution des techniques pour le développement de systèmes informatiques afin d'en maîtriser leurs complexités en se concentrant sur une préoccupation plus abstraite que la programmation classique. En s'appuyant sur des approches génératives, il s'agit d'engendrer tout ou partie d'une application à partir de modèles. Un modèle est une abstraction, une simplification d'un système qui est nécessaire et suffisante pour comprendre un aspect particulier du système modélisé et répondre aux questions que soulève cet aspect du système. Un système peut être décrit par différents modèles liés les uns aux autres, et exprimé chacun à l'aide d'un langage de modélisation dédié (Domain Specific Modeling Languages - DSML). Le principe est d'utiliser autant de langages de modélisation différents que les aspects chronologiques ou technologiques du développement du système le nécessitent. L'activité consistant à définir ces DSML (la syntaxe et la sémantique), appelée métamodélisation, est donc une problématique clé de l'IDM. En outre, les autres problématiques clés de l'IDM consistent à rendre les modèles construits opérationnels (pour la simulation, la génération de code, de documentation ou de test, la validation, la vérification, l'exécution, etc.) à l'aide de composition et de transformation de modèle.
Ce cours offre une approche didactique et pragmatique d'apprentissage de l'IDM. Nous présentons tout d'abord les principes clés de cette nouvelle ingénierie. Nous introduisons une description précise de l'état des connaissances de manière à aborder les concepts avancés de l'IDM, ainsi que les motivations et l'étendue du bouleversement attendu dans l'ingénierie du logiciel. Nous abordons ensuite les différentes étapes d'un développement dirigé par les modèles en les illustrant au travers d'un exemple concret. Chaque étape est décrite de manière à présenter l'état de la pratique et introduire certains des outils actuellement disponible.
Ce livre offre une approche didactique et pragmatique d'apprentissage de l'Ingénierie Dirigée par les Modèles, incluant la définition et l'outillage de langage de modélisation dédiés (ou Domain Specific Modeling Language, DSML). Il est destiné à toute personne souhaitant acquérir les connaissances nécessaires à l'automatisation d'un développement en exploitant les modèles.