Ces dernières années ont été témoins d’une complexité croissante des systèmes et des technologies logicielles. Un certain nombre de plates-formes (par exemple CORBA, J2EE, .NET) ont été introduites, qui venait souvent avec leur propre langage de programmation (par exemple C ++, Java). Afin de faire face à ces problèmes, l’Ingénierie Dirigée par les Modèles « IDM » a été proposée visant à préserver les investissements dans la construction de systèmes logiciels complexes contre les solutions technologiques en évolution rapide. Les principales difficultés avec les langages de modélisation actuels, y compris UML, est qu’ils ne sont généralement pas utilisés pour fournir de manière intégrée les spécifications pour un programme dans une collection mathématiquement correctes des documents. À cet égard, IDM propose d’étendre l’utilisation officielle des langages de modélisation de plusieurs façons intéressantes en exploitant le principe de « tout est un modèle ». En particulier, il prescrit la manière dont la conception doit être mis en œuvre par le découplage des fonctionnalités du système à partir des décisions spécifiques de la plate-forme sur laquelle la mise en œuvre est développé. Au-delà de l’aide de cette information pour la génération de code, les sites peuvent l’employer pour l’entretien, ainsi que pour des considérations évolutives telles que le portage vers de nouvelles plates-formes. En résumé, IDM couvre le cycle de vie complet de l’application
Notions générales de L’IDM
Système : Un système est un ensemble d’éléments liés entre eux par des relations dont si un élément soit modifié tout l’ensemble d’éléments sera modifié. Pour mieux connaître et étudier un système, on a besoin de le simplifier et le modéliser et avoir une abstraction du système qui est un modèle[14].
Modèle : Un «modèle » est une représentation simplifiée d’un système où il est construit avec l’intention de décrire le système et répondre aux questions que l’on se pose sur lui. Donc un système est modélisé avec un ensemble de modèles où chacun capture un aspect particulier. Par analogie avec les langages de programmation, un programme exécutable représente le système alors que le code source de ce programme représente le modèle[41].
Chaque modèle est exprimé à partir d’un langage de modélisation qui doit être clairement défini, et comme l’IDM prend la définition de tout est modèle donc le langage de modélisation prend la forme d’un modèle, appelé métamodèle, [54] .
Métamodèle : Un métamodèle est un langage d’expression (langage de modélisation) d’un modèle, ou un métamodèle représente une spécification formelle d’une abstraction. Le concept de métamodèle permet également d’aider, pour un système donné, à la construction d’un modèle. Par conséquent, un modèle est une instance d’un métamodèle et un modèle est lié à son métamodèle par une relation de conformité.
Un métamodèle est exprimé à son tour avec un langage de métamodélisation spécifié par un méta-métamodèle.
Méta-métamodèle : Comme l’IDM prend la définition de « tout est modèle », un méta-métamodèle permet de décrire un modèle de métamodèles. Il est un langage de description de métamodèles. Il permet d’exprimer les règles de conformité qui lient les entités du niveau modèle à celles du niveau métamodèle.
Un méta-métamodèle est conçu avec la propriété de méta-circularité, c’est â dire la capacité de se décrire lui-même. ça veut dire que le langage utilisé au niveau du méta-méta-modèle doit être suffisamment puissant pour spécifier sa propre syntaxe abstraite et ce niveau d’abstraction demeure largement suffisant. Le méta-métamodèle MOF est un exemple proposé par l’OMG [51].
Métamodélisation
La métamodélisation est une activité qui consiste à définir le métamodèle d’un langage de modélisation. Il s’agit non seulement de produire des métamodèles mais aussi de définir la sémantique du langage, de mettre en œuvre des analyseurs, des compilateurs, des générateurs de code et plus généralement, à construire un ensemble d’outils exploitant les métamodèles.
IDM et Langage
Dans le contexte de l’IDM, les modèles sont traités via l’utilisation de langages. Un langage est présenté soit graphiquement, soit textuellement, soit par les deux (composé de texte et de symboles graphiques). Cependant les symboles graphiques ou les mots d’un langage textuel ne peuvent pas être exploités sauf si on leur donne une interprétation par rapport aux éléments du système modélisé et pour comprendre et manipuler un élément de modèle, il faut qu’il puisse être interprété. Un système peut être décrit par un modèle où les deux peuvent être considérés comme deux ensembles associés par une relation d’interprétation.
L’interprétation établie un lien entre un ou plusieurs éléments du modèle et un ou plusieurs éléments du système modélisé. Pour attribuer un sens aux éléments d’un modèle, la définition explicite d’une sémantique, qu’elle soit formelle ou non, est indispensable pour relier les éléments de modèles aux informations. L’ensemble des informations décrites constitue le domaine sémantique. La ou les données d’un modèle qui décrivent une information du domaine sémantique sont appelées des méta-informations. [54]
Introduction Générale |