Leveraging software product lines engineering in the construction of domain specific languages

Résumé : La complexité croissante des systèmes logiciels modernes a motivé la nécessité d'élever le niveau d'abstraction dans leur conception et mis en œuvre. L'usage des langages dédiés a émergé pour répondre à cette nécessité. Un langage dédié permet de spécifier un système logiciel à travers des concepts relatifs au domaine d'application. Cette approche a plusieurs avantages tels que la diminution des détails techniques auxquels les développeurs doivent faire face, la séparation des préoccupations et la participation des experts du domaine dans le processus de développement. Malgré les avantages fournis par l'usage des langages dédiés, cette approche présente des inconvénients qui remettent en question sa pertinence dans des projets réels de développement logiciel. L'un de ces inconvénients est le coût de la construction des langages dédiés. La définition et l'outillage de ces langages est une tâche complexe qui prend du temps et qui requiert des compétences techniques spécialisées. Le processus de développement des langages dédiés devient encore plus complexe lorsque nous prenons en compte le fait que ces langages peuvent avoir plusieurs dialectes. Dans ce contexte, un dialecte est une variante d'un langage qui introduit des différences au niveau de la syntaxe et/ou de la sémantique. Afin de réduire le coût du processus de développement des langages dédiés, les concepteurs des langages doivent réutiliser autant de définitions que possible pendant la construction des variantes. Le but est d'exploiter les définitions et l'outillage définis précédemment pour dunaire au maximum, la mis en ouvre des zéro dans la construction de langages. Afin de répondre à la question de recherche précédemment énoncée, la communauté de recherche autour de l'ingénierie des langages a proposé l'usage des lignes de produits. En conséquence, la notion de lignes de langages a récemment émergé. Une ligne de langages est une ligne de produis où les produits sont des langages. Le principal but dans les lignes de langages est la définition indépendante de morceaux de langage. Ces morceaux peuvent être combinées de manières différentes pour configurer des langages adaptés aux situations spécifiques. D'une manière similaire aux lignes de produits, les lignes de langages peuvent être construites à partir de deux approches différentes: top-down et bottom-up . Dans l'approche top-down, les lignes de langages sont conçues et mis en œuvre au travers d'un processus d'analyse du domaine où les connaissances du domaine sont utilisées pour définir un ensemble de modules de langage qui réalisent les caractéristiques de la ligne de langages. En outre, les connaissances du domaine sont aussi utilisées pour représenter la variabilité de la ligne de langages à travers des modèles bien structurés qui, en plus, servent à configurer des langages particuliers. Dans l'approche bottom-up, les lignes des langages sont construites à partir d'un ensemble de variantes des langages existant au travers de techniques d'ingénierie inverse. À partir des approches précédemment énoncées, nous proposons deux contributions : (1) Des facilités pour supporter l'approche top-down. Nous proposons une approche de modularisation des langages qui permet la décomposition des langages dédiés comme modules de langages interdépendants. En plus, nous introduisons une stratégie de modélisation pour représenter la variabilité dans une ligne de langages. (2) Techniques d'ingénierie inverse pour supporter l'approche bottom-up. Comme deuxième contribution, nous proposons une technique d'ingénierie inverse pour construire, de manière automatique, une ligne de langages à partir d'un ensemble de variantes de langages existantes. Nos contributions sont validées à travers des cas d'étude industriels.
Type de document :
Thèse
Software Engineering [cs.SE]. Université Rennes 1, 2016. English. 〈NNT : 2016REN1S136〉
Liste complète des métadonnées

Littérature citée [224 références]  Voir  Masquer  Télécharger

https://tel.archives-ouvertes.fr/tel-01427187
Contributeur : Abes Star <>
Soumis le : mercredi 23 août 2017 - 16:55:06
Dernière modification le : mardi 29 août 2017 - 16:35:52

Fichier

MENDEZ_ACUNA_David.pdf
Version validée par le jury (STAR)

Identifiants

  • HAL Id : tel-01427187, version 2

Citation

David Fernando Méndez Acuña. Leveraging software product lines engineering in the construction of domain specific languages. Software Engineering [cs.SE]. Université Rennes 1, 2016. English. 〈NNT : 2016REN1S136〉. 〈tel-01427187v2〉

Partager

Métriques

Consultations de
la notice

130

Téléchargements du document

39