I. Modèles et métamodèles

Les modèles, tels qu'ils sont conçus dans l'ingénierie, sont des représentations de la réalité. L'objectif du processus de l'ingénierie de conception est de rendre notre monde mesurable, calculable, prévisible et donc plus facile à gérer.

Pour connaître la nature des différents modèles utilisés dans les systèmes informatiques, deux relations peuvent être identifiées. La première relation, appelée "représenté par", identifie un rôle de représentation d'un objet donné, modélisé à travers un modèle. Par exemple, un programme informatique peut être "représenté par" un ensemble de diagrammes de flux de données. Un modèle de données pourrait également représenter un autre modèle. Par exemple, une fonction mathématique peut être représentée par une approximation numérique. La seconde relation, appelée "conforme à", indique la dépendance d'un modèle par rapport à un langage de modélisation.

En MDE (Model Driven Engineering, en français : ingénierie dirigée par les modèles), ces relations reçoivent une attention particulière vu que les langages de modélisation de domaine sont décrits et prescrits par les modèles. Ces modèles sont appelés métamodèles. Un métamodèle est encore une autre abstraction soulignant les propriétés du modèle lui-même. Un modèle est dit "conforme à" son métamodèle comme un programme conforme à la grammaire du langage de programmation selon lequel il est écrit. Cela signifie qu'un métamodèle décrit les différents types d'éléments de modèle et la façon dont ils sont disposés, reliés et contraints.

Un langage de modélisation est un langage artificiel qui peut être utilisé pour exprimer l'information des systèmes dans une structure qui est définie par un ensemble cohérent de règles. Les règles sont utilisées pour interpréter la signification des composants dans la structure. Un langage de modélisation peut être visuel et/ou textuel.

Les langages de modélisation visuelle se basent sur des diagrammes, des symboles qui représentent le nom des concepts, des lignes qui relient ces symboles et qui représentent des relations ainsi que diverses autres annotations graphiques pour représenter des contraintes. Les langages de modélisation textuelle utilisent généralement des mots-clés standardisés accompagnés par des paramètres afin que les expressions soient interprétables.

II. L'approche MDA (Model Driven Architecture)

L'OMG (Object Management Group) a introduit l'approche nommée Architecture Dirigée par les Modèles MDA (Model Driven Architecture) afin de faciliter le développement et la maintenance des systèmes essentiellement logiciels. Cette approche qui reste imprécise consiste à manipuler différents modèles de l'application à produire, depuis une description très abstraite jusqu'à une représentation correspondant à l'implantation effective du système, la modélisation se base sur les standards de l'OMG et en particulier le langage de modélisation UML (Unified Modeling Language).

L'approche MDA vise à séparer la conception en deux niveaux : au niveau supérieur on décrit le modèle métier du système en termes d'un modèle indépendant de la plateforme PIM (Platform Independent Model), puis ce modèle est spécifié dans un modèle technologique de plus bas niveau dépendant de la plate-forme spécifique PSM (Platform Specific Model). Cette séparation permet de se concentrer d'abord sur la structure et la fonctionnalité du système, et plus tard sur l'implémentation, permettant au même modèle abstrait d'être implémenté sur différentes plateformes.

Cependant le terme plateforme reste ambigu et cela dû au manque de précision, car il est difficile de savoir s'il s'agit d'une plate-forme matérielle ou logicielle ou autres. MDA est une marque commerciale déposée par l'OMG. En conséquence, la communauté scientifique fait souvent référence au MDE pour exprimer des idées d'ingénierie des modèles sans se restreindre aux concepts de MDA détaillés dans les standards de l'OMG.

III. Création des DSML (domain specific modeling language)

Un DSML permet l'utilisation des concepts d'un domaine comme étant des constructions de langage, par exemple utilisation des concepts " client ", " banquier " , " compte " au lieu des concepts généraux comme " composant ", " classe ", " nœud ", etc.

Les critères de réussite d'un DSML se basent essentiellement sur :

  • la pertinence de domaine : une syntaxe proche du domaine ;
  • l'interopérabilité avec d'autres technologies (vérification, génération de code) ;
  • la validité technique et l'absence d'ambiguïté ;
  • les supports : outils, la documentation, la capacité d'évolution ;
  • l'équilibre entre la puissance expressive et la simplicité.

Il existe différentes approches pour définir un DSML, le concepteur peut procéder à une création totale d'un nouveau langage à partir du zéro, ou bien étendre ou raffiner un langage existant.

La prédominance des métamodèles dans les spécifications des langages de modélisation visuelle soulève la question de leur éventuelle réutilisation. En effet, la capacité de réutiliser et/ou spécialiser (une partie) des métamodèles existants est essentielle pour éviter le développement de nouveaux langages de modélisation. Il y a deux principales façons d'étendre les langages de modélisation :

  • extension heavy-weight : cette approche implique l'intégration et le raffinement des nouvelles constructions du langage à partir d'un langage de modélisation existant. Il permet aux concepteurs d'étendre, modifier et raffiner le langage source pour créer un nouveau langage de modélisation ;
  • extension light-weight : cette approche est limitée à l'utilisation et l'extension d'un métamodèle du langage de modélisation existant, sans modifier la syntaxe abstraite ni la sémantique du langage de modélisation source.

Le choix de l'approche dépend essentiellement de la particularité du langage, de son application et des ressources de conception disponibles (outils, savoir-faire, etc.).

L'avantage principal du mécanisme light-weight est la diversité des outils existants et l'efficacité du langage qui peut être utilisé pour des projets multiples et à long terme. Cette approche ne nécessite pas généralement une formation très spécialisée. Le seul inconvénient est lié fondamentalement au langage de base qui doit couvrir un large domaine sémantique pour qu'il puisse être réutilisé par plusieurs DSML.

IV. Conclusion et remerciements

Afin de donner un exemple plus concret lié à l'ingénierie dirigée par les modèles, le prochain article se focalisera sur la réalisation d'un métamodèle suite à l'extension d'UML selon l'approche " light-weight ". UML est un langage de modélisation couvrant un domaine sémantique très large.

Nous tenons à remercier ClaudeLELOUP pour sa relecture orthographique de cet article.