Concrete Syntax Definition for Modeling Languages

Transcription

Concrete Syntax Definition for Modeling Languages
Version Abrégée
Version Abrégée
L'ingénierie dirigée par les modèles (IDM) promeut les modèles comme composants principaux d’un processus de développement logiciel. Cette approche tente d’organiser la complexité par l’abstraction, par exemple afin de faire face à l’évolution des plate-formes
d’exécution. L’IDM suit une approche par étapes dans laquelle sont développés des modèles
abstraits, peu à peu améliorés pour y intégrer les détails dont a besoin la plate-forme de
déploiement finale. Ainsi l’application d’un processus IDM produit une multitude de modèles à différent niveaux d’abstraction.
Chacun de ces modèles est exprimé dans un langage supposé apporter les concepts
adéquats pour le niveau d’abstraction considéré. De nombreux auteurs préconisent d’utiliser
le langage (de modélisation) le plus adapté possible au but poursuivi. En d’autre termes, il
est souvent plus ingénieux d’utiliser de petits langages très spécialisés pour un domaine et
un niveau d’abstraction donné, que d’utiliser des langages génériques (tels UML) quand ils
ne satisfont pas pleinement au besoins de la modélisation. C’est pourquoi un processus de
développement IDM, qui implique de nombreux domaines et niveaux d’abstraction, doit
souvent impliquer de nombreux langages. Les chefs de projets désireux d’adopter une
approche IDM se voient donc dans l’obligation de jongler avec une véritable prolifération
de langages, ceci à tel point qu’on est en droit de se demander si les ingénieurs du langage
ne seront pas les partenaires indispensables des équipes de développement logiciel du futur.
L’idée développée dans ce document est qu’un mécanisme générique de gestion de
ces nombreux langages simplifierait sans doute cette situation spécifique à l’IDM. De tels
mécanismes seraient par exemple capables de définir complètement des langages de modélisation, de les étendre ou les adapter, voire de les composer. Pour définir un langage, qu’il
s’agisse d’un langage de modélisation ou non, il est nécessaire de spécifier sa syntaxe abstraite, au moins une syntaxe concrète et sa sémantique. Cette thèse s’intéresse à la définition
de syntaxes concrètes, une fois la syntaxe abstraite établie sous forme de métamodèle. Ces
syntaxes concrètes peuvent être soit textuelles, soit graphiques.
Certaines de nos expériences dans la construction de langages textuels (comme MTL,
un langage de transformation de modèles) ou graphiques (tel Netsilon, un modeleur d’application internet) ont montré que beaucoup d’énergie est dépensée dans l’implémentation des
interfaces utilisateur, qu’il s’agisse de processeurs de texte générés à partir de spécifications
pour compilateur de compilateurs, ou de modeleurs créés à partir de bibliothèques pour la
représentation graphique en deux dimensions. En effet, dans ces projets, les syntaxes abstraites et concrètes sont développées de manière indépendante, ce qui pose rapidement des
problèmes en terme de cohérence lors des évolutions de la syntaxe abstraite.
Les solutions proposées ici définissent les syntaxes concrètes comme dépendantes des
syntaxes abstraites. Il a été possible de construire des implémentations prototypes basées
sur les approches proposées. L’une d’elle est capable de produire du texte à partir d’un
iii
Mots Clefs
modèle, ou inversement un modèle à partir d’un texte. Une autre est capable de fournir un
modeleur graphique maintenant en cohérence un modèle et sa représentation graphique. La
première contribution de cette thèse est la définition d’un métamodèle pour la spécification
constructive de syntaxes textuelles réversibles. La seconde contribution est une méthode de
spécification de syntaxes graphiques en deux étapes: l’étape de spécification et l’étape de
réalisation. La spécification suit une approche restrictive dans laquelle un métamodèle définit la structure d’un graphe de syntaxe concrète. Des contraintes viennent en complément
afin d’exprimer la cohérence entre les syntaxes concrète et abstraite, ainsi que les règles de
composition spatiale. L’étape de réalisation consiste à préciser le mode de représentation du
graphe de syntaxe concrète, ainsi que des interactions possibles avec un utilisateur souhaitant modéliser un système.
Après une brève introduction, ce document commencera par un aperçu de l’IDM ainsi
que des techniques communément acceptées de spécification de syntaxes concrètes textuelles et graphiques. Nous verrons ensuite l’outil Netsilon, qui est un exemple d’outil de modélisation pour l’IDM: nous pourrons alors avoir un exemple de démarche IDM et de
spécification de langages textuels et graphiques. Nous en déduirons de possibles améliorations dans la construction d’outils pour l’IDM basés sur les langages. Les deux chapitres
suivants décriront les approches proposées pour la spécification de syntaxes textuelles et
graphiques. Enfin, nous conclurons sur les améliorations à apporter aux approches proposées, notamment en ce qui concerne la réutilisabilité des artefacts des méthodes de type
IDM en général (par exemple les métamodèles ou les transformations de modèles), et des
syntaxes concrètes en particulier.
Mots Clefs
Ingénierie Dirigée par les Modèles, Métamodélisation, Ingénierie des Langages, Syntaxes
Concrètes, Syntaxes Textuelles, Syntaxes Graphiques, Scalable Vector Graphics.
iv

Documents pareils