Model-Driven Engineering

Model-Driven Engineering

Ingénierie dirigée par les modèles

L'Ingénierie dirigée par les modèles (IDM) est le domaine de l'informatique mettant à disposition des outils, concepts et langages pour créer et transformer des modèles.

Sommaire

Présentation

Raisons d’être

La dernière décennie a vu se poursuivre l'accroissement exponentiel de la complexité des systèmes informatiques, avec par exemple l'apparition de la problématique des lignes de produits logiciels, visant à minimiser simultanément les coûts de développement et le temps de mise sur le marché de nouveaux logiciels d'une même famille. Comme dans les autres sciences, on s'est de plus en plus appuyé sur la modélisation pour essayer de maîtriser cette complexité, tant pour produire le logiciel (conception) que pour le valider (test).

La modélisation, au sens large, est en effet l'utilisation efficace d'une représentation simplifiée d'un aspect de la réalité pour un objectif donné. Loin de se réduire à l'expression d'une solution à un niveau d'abstraction plus élevé que le code, la modélisation en informatique peut être vue comme la séparation des différents besoins fonctionnels et préoccupations extra-fonctionnelles (telles que sécurité, fiabilité, efficacité, performance, ponctualité, flexibilité, etc.) issus des exigences. Réciproquement la conception du logiciel consiste à fusionner (ou tisser) des solutions à ces différentes préoccupations dans du code. Ce processus n'est en aucun cas nouveau : bien qu'on utilise de nouveaux noms, ces activités d'abstraction/modélisation et conception/tissage sont le pain quotidien des développeurs depuis toujours. Cependant dans la plupart des cas, tant les modèles que les solutions de conceptions restent implicites, ou tout au moins informels (par exemples si l'on fait usage de patrons de conception), et sont appliqués manuellement. Le véritable défi dans un contexte de lignes de produits est de pouvoir décliner des gammes, c'est-à-dire pour chaque aspect changer facilement quelle version de quelle variante particulière est sélectionnée. Dans ce cas, refaire à chaque fois le complexe processus de tissage de la conception devient beaucoup trop cher, trop lent et trop sujet à erreurs.

Origine

Ce que propose l'approche de l'ingénierie des modèles (IDM, ou MDE en anglais pour Model Driven Engineering) est simplement de mécaniser le processus que les ingénieurs expérimentés suivent à la main. L'intérêt pour l'IDM a été fortement amplifié à la fin du XX-e{{{2}}} siècle lorsque l'organisme de standardisation OMG (Object Modeling Group) a rendu publique son initiative MDA (Model Driven Architecture), qui peut être vue comme une restriction de l'IDM à la gestion de l'aspect particulier de dépendance d'un logiciel à une plateforme d'exécution. De manière plus générale, et comme de nombreuses autres approches de génie logiciel comme la programmation générative, la programmation par aspects, les usines à logiciel (Software Factories) où encore le MIC (Model Integrated Computing), l'IDM est une forme d'ingénierie générative, qui se singularise par une démarche par laquelle tout ou partie d'une application informatique est générée à partir de modèles.

Pour cela il faut bien sûr que tant les modèles que les processus de tissage de la conception soient rendus explicites, et soient suffisamment précis pour être interprétés ou transformés par des machines. Le processus de conception peut alors être vu comme un ensemble de transformations de modèles partiellement ordonné, chaque transformation prenant des modèles en entrée et produisant des modèles en sortie, jusqu'à obtention d'artéfacts exécutables. Ainsi, quand on doit dériver un nouveau produit, qu'il soit simple évolution d'un produit existant ou nouvelle variante, on peut se contenter de « rejouer » automatiquement la plus grande partie du processus de conception, en changeant simplement quelques détails ici et là.

Ce qu’est l’IDM

Dans le contexte de l'IDM, la notion de transformation de modèle joue un rôle fondamental ; aussi de nombreux outils, tant commerciaux que dans le monde de l'open source sont aujourd'hui disponibles pour faire la transformation de modèles. On peut grossièrement distinguer quatre catégories d'outils :

  1. les outils de transformation génériques qui peuvent être utilisées pour faire de la transformation de modèles;
  2. les facilités de type langages de scripts intégrés à la plupart des ateliers de génie logiciel;
  3. les outils conçus spécifiquement pour faire de la transformation de modèles et prévus pour être plus ou moins intégrables dans les environnements de développement standards;
  4. les outils de méta-modélisation « pur jus » dans lesquels la transformation de modèles revient à l'exécution d'un méta-programme.

Catégorie des outils XML et des outils de transformation de graphes

Dans la première catégorie on trouve notamment d'une part les outils de la famille XML, comme XSLT ou Xquery, et d'autre part les outils de transformation de graphes (la plupart du temps issus du monde académique). Les premiers ont l'avantage d'être déjà largement utilisés dans le monde XML, ce qui leur a permis d'atteindre un certain niveau de maturité. En revanche, l'expérience montre que ce type de langage est assez mal adapté pour des transformations de modèles complexes (c'est-à-dire allant au-delà des problématiques de transcodage syntaxique), car ils ne permettent pas de travailler au niveau de la sémantique des modèles manipulés mais simplement à celui d'un arbre couvrant le graphe de la syntaxe abstraite du modèle ce qui impose de nombreuses contorsions qui rendent rapidement ce type de transformation de modèles complexes à élaborer, à valider et surtout à maintenir sur de longues périodes.

Catégorie des outils de transformation de modèles via AGL commerciaux

Dans la seconde catégorie, on va trouver une famille d'outils de transformation de modèles proposés par des vendeurs d'ateliers de génie logiciel (AGL).

L'intérêt de cette catégorie d'outils de transformation de modèles est d'une part leur relative maturité et d'autre part leur excellente intégration dans l'atelier de génie logiciel qui les héberge. Leur principal inconvénient est le revers de la médaille de cette intégration poussée : il s'agit la plupart du temps de langages de transformation de modèles propriétaires sur lesquels il peut être risqué de miser sur le long terme. De plus, historiquement ces langages de transformation de modèles ont été conçus comme des ajouts au départ marginaux à l'atelier de génie logiciel qui les héberge. Même s'ils ont aujourd'hui pris de l'importance, ils ne sont toujours pas vus comme les outils centraux qu'ils devraient être dans une véritable ingénierie dirigée par les modèles. De nouveau ces langages montrent leur limitation lorsque les transformations de modèles deviennent complexes et qu'il faut les gérer, les faire évoluer et les maintenir sur de longues périodes.

Catégorie des outils spécifiques à la transformation de modèles intégrables en environnement de développement standard

La troisième catégorie regroupe les outils conçus spécifiquement pour faire de la transformation de modèles et prévus pour être plus ou moins intégrables dans les environnements de développement standards. Ces langages spécifiquement conçus pour la transformation de modèle ont l'avantage de permettre d'exprimer très simplement les transformations de modèles simples (comme par exemple des transcodages syntaxiques), mais ils trouvent rapidement leurs limites lorsque les transformations de modèles deviennent complexes du point de vue algorithmique, ou bien lorsqu'il faut gérer de nombreuses variantes (contexte des lignes de produits) et les faire évoluer et les maintenir sur de longues périodes.

Catégorie des outils de méta-modélisation

La dernière catégorie d'outils de transformation de modèles est celle des outils de méta-modélisation. La transformation de modèles revient alors à l'exécution d'un méta-programme orienté objet, pour lequel il est relativement aisé de construire un framework facilitant la gestion et la maintenance de nombreuses variantes de transformations nécessaires au contexte des lignes de produits.

Avenir de l'IDM

Même s'il existe une longue expérience de l'utilisation de l'ingénierie des modèles dans certains domaines comme les télécoms, sa généralisation à l'ensemble de l'industrie n'en est qu'à ses débuts. Visant à automatiser une partie du processus du développement, elle requiert un effort d'abstraction plus important de la part des développeurs. En contrepartie, elle permet de conserver le savoir faire de conception proche des centres de décision, grâce aux économies d'échelle dues à l'automatisation.

Concept de modèle

Bien que possédant un grand nombre de définitions, un modèle dans l'IDM est l'abstraction d'un objet sujet de l'acte de modélisation. Son but est de permettre une étude plus simple dans un contexte maitrisé autre que le contexte réel.

Concept de méta-modèle et de langage de modélisation

Le méta-modèle est l'entité concrétisant informatiquement un contexte de modélisation pour la conception et la manipulation de modèles. Il est l’abstraction, donc le modèle, du langage de modélisation des modèles. Un lien s'établit alors entre le modèle et le méta-modèle: la conformité du premier pour le second.

Pour exemple, un plan est conforme à une légende. Du code Java est conforme à la grammaire JAVA.

Concept de transformations de modèles

Deux types de transformations sont réalisables :

  • Les transformations endogènes (au sein d'un même domaine de modélisation)
  • Les transformations exogènes (d'un domaine de modélisation vers un autre)

Concepts voisins

Nouvelle Formation Diplomante sur l'IDM - Model Driven Engineering for Software Management

L'Ingénierie Dirigée par les Modèles : Une nouvelle formation diplômante à l'Ecole des Mines de Nantes L’Ecole des Mines de Nantes prépare l’ouverture du "MDE-Diploma", un diplôme de spécialisation de troisième cycle habilité par le ministère français de l'industrie. Ce cursus offrira une formation complète sur l'Ingénierie Dirigée par les Modèles (IDM) pour la production, l'exploitation et la maintenance des systèmes logiciels.

L'IDM est en train de changer la façon dont nous construisons, nous exploitons, et nous maintenons nos systèmes à logiciel prépondérant. Les modèles logiciels sont de plus en plus utilisés dans la plupart des domaines de l'informatique. L'IDM offre un nouveau cadre conceptuel et un ensemble d'outils permettant de séparer et de regrouper les multiples aspects et les points de vue présents dans les systèmes complexes modernes. Plusieurs projets à base d'IDM ont déjà permis d'importantes améliorations dans la qualité avec des réductions de coûts importants sur la production et sur la maintenance. Mais les compétences humaines nécessaires pour gérer ces projets ne sont pas largement disponibles. Le MDE-Diploma vise à combler cette lacune en formant les spécialistes de haut niveau dont l'industrie va avoir fortement besoin dans les prochaines années.

Le diplôme de spécialisation "MDE-Diploma" est proposé par l'Ecole des Mines de Nantes avec une première promotion accueillie en février 2010. Son objectif est de former des ingénieurs de haut niveau capables de gérer des projets complexes dans différents domaines du génie logiciel en utilisant les dernières avancées des technologies de modélisation. Tous les enseignements ont lieu en anglais pour pouvoir bénéficier pleinement de l'apport des meilleurs experts internationaux. La plupart des acteurs industriels connus en IDM participeront aux enseignements et apporteront directement leur expertise aux étudiants de la promotion.

Plus d'information sur la Formation Spécialisée IDM - Model Driven Engineering for Software Management. [1]

Voir aussi

Références

  • Le cycle de conférences du même nom IDM07, IDM06 et IDM05 dont les actes sont disponibles gratuitement en ligne.
  • planet-mde.org : portail international sur le thème de l'ingénierie dirigée par les modèles. Livres, outils, conférences, etc.
  • L'action IDM du CNRS.
Ce document provient de « Ing%C3%A9nierie dirig%C3%A9e par les mod%C3%A8les ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Model-Driven Engineering de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать курсовую

Regardez d'autres dictionnaires:

  • Model-driven engineering — (MDE) is a software development methodology which focuses on creating and exploiting domain models (that is, abstract representations of the knowledge and activities that govern a particular application domain), rather than on the computing (or… …   Wikipedia

  • Model Driven Engineering — Este artículo o sección tiene un estilo difícil de entender para los lectores interesados en el tema. Si puedes, por favor edítalo y contribuye a hacerlo más accesible para el público general, sin eliminar los detalles técnicos que interesan a… …   Wikipedia Español

  • Model-driven architecture — (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model driven architecture is a kind of domain engineering, and… …   Wikipedia

  • Model Driven Architecture — L architecture dirigée par les modèles ou MDA (pour l Anglais Model Driven Architecture) est une démarche de réalisation de logiciel, proposée et soutenue par l OMG. C est une variante particulière de l ingénierie dirigée par les modèles (IDM, ou …   Wikipédia en Français

  • Model driven architecture — L’architecture dirigée par les modèles ou MDA (pour l Anglais Model Driven Architecture) est une démarche de réalisation de logiciels, proposée et soutenue par l OMG. C est une variante particulière de l ingénierie dirigée par les modèles (IDM,… …   Wikipédia en Français

  • Model-driven security — (MDS) means applying model driven approaches (and especially the concepts behind model driven software development) [1] to security. Contents 1 Development of the concept 2 Opinions of industry analysts …   Wikipedia

  • Model-driven software development — (MDSD) is an alternative to Round trip engineering. Round trip engineering is the concept of being able to make any kind of change to a model as well as to the code generated from that model. The changes always propagate bidirectional and both… …   Wikipedia

  • Model Driven Architecture — Saltar a navegación, búsqueda La arquitectura dirigida por modelos (Model Driven Architecture o MDA) es un acercamiento al diseño de software, propuesto y patrocinado por el Object Management Group. MDA se ha concebido para dar soporte a la… …   Wikipedia Español

  • Model Driven Architecture — Modellgetriebene Architektur (MDA; engl. Model Driven Architecture, MDA) bezeichnet einen modellgetriebenen Softwareentwicklungsansatz, der auf einer klaren Trennung von Funktionalität und Technik beruht. Inhaltsverzeichnis 1 Abgrenzung zu CASE… …   Deutsch Wikipedia

  • Model Driven Software Development — Modellgetriebene Softwareentwicklung (englisch Model Driven Software Development, MDSD) ist ein Oberbegriff für Techniken, die aus formalen Modellen automatisiert lauffähige Software erzeugen.[1] Dabei werden domänenspezifische Sprachen (englisch …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”