Utilisateur:Eneelk/Brouillon/Ingénierie dirigée par les modèles

En génie logiciel, l'ingénierie dirigée par les modèles (IDM) est un ensemble de pratiques fondées sur le concept de modèle de domaine. Ces pratiques ont pour but d'automatiser la production, la maintenance ou l'utilisation de systèmes logiciels. L'objectif de cette approche est de concentrer les efforts sur le domaine d'application du logiciel plutôt que sur son implémentation. Apparue dans les années 2000, l'ingénierie dirigée par les modèles est un sujet de recherche actif qui utilise de manière intensive les métamodèles et les transformations de modèle.

Le développement dirigé par les modèles est l'application de l'ingénierie dirigée par les modèles au développement logiciel. L'architecture dirigée par les modèles (MDA) désigne une initiative de l'Object Management Group pour mettre au point des standards non-propriétaires pour faciliter le développement dirigé par les modèles.

Historique

modifier

Au début des années 1990, deux paradigmes pour le développement logiciel sont en vogue : le génie logiciel assisté par ordinateur (CASE) et les langages de programmation de quatrième génération[1]. Souvent coûteuses et propriétaires, ces technologies peinent à s'imposer et contrastent avec l'intérêt du moment pour le logiciel libre[1]. Ainsi, les environnements graphiques de développement de CASE sont jugés lourds et complexes[2]. Au milieu des années 1990, le paradigme orienté objet gagne de l'importance. Appuyé par de nouveaux langages comme Java ou C#, il remplace peu à peu les environnements graphiques de développement.

## puis abstraction

## puis composants (UML)

## puis modèles

Le développement dirigé par les modèles est aussi considéré comme une évolution des paradigmes de programmation.

Définitions

modifier

L'ingénierie dirigée par les modèles peut être définie comme la combinaison de langages dédiés et de moteurs de transformation ayant pour but l'indépendance vis-à-vis des plateformes logicielles (systèmes d'exploitation, langages de programmation, etc.)[3]. Les langages dédiés permettent de mettre au point des modèles (d'architecture, de performance, de sécurité, etc.) du logiciel. Les moteurs de transformation lient ces modèles entre eux et en assurent la cohérence.

Modèles et métamodèles

modifier

La modélisation désigne au sens large l'utilisation efficace d'une représentation simplifiée d'un aspect de la réalité pour un objectif donné.

Catégorisations des modèles

modifier

Un modèle est dit prescriptif lorsque...

Transformations de modèle

modifier

LLL

Aspects pratiques

modifier


Aspects théoriques

modifier


Références

modifier
  1. a et b (en) Thomas Stahl, Model-Driven Software Development: Technology, Engineering, Management, (lire en ligne)
  2. (en) Douglas C. Schmidt, « Model-Driven Engineering », Computer, vol. 39,‎ , p. 7 (DOI 10.1109/MC.2006.58)
  3. (en) Soichiro Hidaka, « Principles and Applications of Model Driven Engineering – History and Context of Model Driven Engineering », Computer Software, vol. 30,‎ (DOI 10.11309/jssst.30.3_25)

Voir aussi

modifier