Return to search

Langage et méthode pour une ingénierie des modèles fiable

Ce travail s'inscrit dans un contexte où la taille et la complexité des logiciels augmentent alors que les contraintes de temps de développement, de qualité, de maintenance et d'évolution sont toujours plus fortes. Pour répondre à cette tendance, l'ingénierie dirigée par les modèles constitue une évolution prometteuse des techniques de génie logiciel. Les idées de l'ingénierie dirigée par les modèles sont, d'une part de rendre les modèles productifs, et d'autre part d'automatiser certaines étapes du développement grâce à des transformations de modèles. Une des conditions pour que l'ingénierie dirigée par les modèles tienne ses promesses, en terme de productivité et de qualité, est d'assurer, tout d'abord, la correction des modèles, et ensuite, la correction des transformations utilisées. La contribution de ce travail s'articule autour de ces deux axes et constitue un premier pas vers la fiabilisation des processus de dévelopement dirigés pas les modèles. Le premier axe de ce travail vise à améliorer les possibilités de validation des modèles en proposant une plateforme pour la définition de langages de modélisation. En fonction des expériences et du domaine considéré, les modèles utilisés dans l'ingénierie dirigée par les modèles sont exprimés dans divers langages de modélisation. Comme tout langage, un langage de modélisation est constitué de plusieurs éléments de spécification : une syntaxe abstraite (ou méta-modèle), une sémantique et des contraintes syntaxiques et sémantiques. Pour assurer la précision et la cohérence d'un tel langage, il faut d'une part spécifier sans ambiguïtés chaque élément, et d'autre part assurer la bonne intégration des différents éléments entre eux. Or, les pratiques actuelles de l'ingénierie dirigée par les modèles utilisent des formalismes hétérogènes et parfois difficiles à exploiter (le langage naturel par exemple) pour la spécification de ces éléments. Afin d'améliorer la définition des langages de modélisation, nous proposons l'utilisation d'un coeur sémantique unique et précis. Ce coeur sémantique se présente sous la forme d'un langage appelé Kermeta. Au coeur de la plateforme d'ingénierie dirigée par les modèles développée par l'équipe Triskell, le langage Kermeta a été utilisé dans des contextes variés dont la transformation de modèles, la modélisation orientée-aspects et l'analyse d'exigences logicielles. L'utilisation de Kermeta pour ces applications a permis de valider le langage et de mettre en évidence ses avantages par rapport aux techniques existantes. Le second axe de ce travail concerne la validation des transformations de modèles. Celles-ci sont utilisées pour automatiser les phases du processus de développement qui peuvent l'être. Qu'il s'agisse de raffinement, de composition, de refactoring ou encore de génération de code, la qualité des transformations de modèles est primordiale pour assurer la qualité des logiciels développés. Il suffit en effet qu'une seule transformation utilisée soit erronée pour que l'ensemble du processus de développement soit fragilisé. Dans ce contexte, nous proposons une technique pour la sélection de modèles de test permettant la validation des programmes de transformation de modèles. Cette technique tire avantage du fait que toute transformation de modèles manipule des données dont la structure est décrite par un méta-modèle.

Identiferoai:union.ndltd.org:CCSD/oai:tel.archives-ouvertes.fr:tel-00538288
Date09 October 2006
CreatorsFleurey, Franck
PublisherUniversité Rennes 1
Source SetsCCSD theses-EN-ligne, France
LanguageFrench
Detected LanguageFrench
TypePhD thesis

Page generated in 0.0151 seconds