Ingénierie Dirigée par les modèles

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]

Table des matières

Introduction Générale
Chapitre 1 Ingénierie Dirigée par les modèles
1.1 Introduction
1.2 Notions générales de L’IDM
1.3 Métamodélisation
1.3.1 IDM et Langage
1.3.1.1 Aspect syntaxique
1.3.1.2 Modèle, métamodèle et langage
1.3.1.3 Sémantique
1.3.2 Architecture de métamodélisation
1.3.3 Formalismes de métamodélisation
1.3.3.1 Les langages de métamodélisation
1.3.3.2 Les Profils UML
1.4 Transformation de modèles
1.4.1 Typologie de transformation
1.4.2 Pourquoi la transformation de modèles
1.4.3 Propriétés de transformation de modèles
1.4.4 Approches de transformation de modèles
1.4.4.1 Model to Text
1.4.4.2 Model to Model
1.4.5 Les outils de transformation
1.4.5.1 Outils génériques
1.4.5.2 Outils intégrés aux AGLs
1.4.5.3 Langages spécifiques
1.4.5.4 Outils de métamodélisation
1.5 Conclusion
Chapitre 2 Grammaires de graphes
2.1 Introduction
2.2 Notions sur les graphes
2.2.1 Définition d’un graphe
2.2.2 propriété d’un graphe
2.3 Grammaire de graphes
2.3.1 Définition formelle
2.3.2 Grammaire de graphe et langage
2.3.3 Dérivation
2.3.4 Transformation de grammaire
2.4 Principe de transformation de graphes
2.5 Approches de transformation de graphes
2.5.1 Approche algèbrique
2.5.2 TGG
2.6 Conclusion
Chapitre 3 Outils de transformation de graphes
3.1 Introduction
3.2 Outils de transformation
3.2.1 AGG
3.2.2 ATOM3
3.2.3 GROOVE
3.2.4 GrGen
3.2.5 Fujaba
3.2.6 EMF Tiger
3.2.7 Viatra
3.3 Etude comparative sur les outils de transformation de graphes
3.3.1 Critères de comparaison
3.3.1.1 Nombre de source et cible
3.3.1.2 Type de transformation
3.3.1.3 Approche utilisée
3.3.1.4 L’intégrité de contrainte
3.3.1.5 Editeur
3.3.1.6 Degré d’automatisation
3.3.1.7 Processus de transformation
3.3.1.8 Réutilisabilité
3.3.1.9 Vérification
3.3.1.10 Validation
3.3.1.11 Composition de transformation
3.3.1.12 Complexité de transformation
3.3.1.13 Standardisation
3.3.1.14 Type d’utilisation des outils
3.3.1.15 Typage
3.3.1.16 Le contrôle de fonctionnalité des outils
3.3.1.17 Exploration
3.3.2 Tableaux de comparaison
3.4 Conclusion
Chapitre 4 Conclusion

Cours gratuitTélécharger le document complet

 

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *