Evolution of domain-specific languages depending on external libraries
Thèse ou mémoire
2020-11 (octroi du grade: 2021-03-24)
Auteur·e·s
Directeur·trice·s de recherche
Cycle d'études
MaîtriseProgramme
InformatiqueRésumé·s
L'ingénierie dirigée par les modèles est une approche qui s'appuie sur l'abstraction pour exprimer davantage les concepts du domaine.
Ainsi, les ingénieurs logiciels développent des langages dédiés (LD) qui encapsulent la structure, les contraintes et le comportement du domaine.
Comme tout logiciel, les LDs évoluent régulièrement.
Cette évolution peut se produire lorsque l'un de ses composants ou le domaine évolue.
L'évolution du domaine ainsi que l'évolution des composants du LD et l'impact de cette évolution sur ceux-ci ont été largement étudiés.
Cependant, un LD peut également dépendre sur d'éléments externes qui ne sont pas modélisées.
Par conséquent, l'évolution de ces dépendances externes affecte le LD et ses composants.
Actuellement, les ingénieurs logiciels doivent évoluer le LD manuellement lorsque les dépendances externes évoluent.
Dans ce mémoire, nous nous concentrons sur l'évolution des librairies externes.
Plus spécifiquement, le but de cette thèse est d'aider les ingénieurs logiciels dans la tâche d'évolution.
À cette fin, nous proposons une approche qui intègre automatiquement les changements des librairies externes dans le LD.
De plus, nous offrons un LD qui supporte l'évolution des librairies Arduino.
Nous évaluons également notre approche en faisant évoluer un éditeur de modélisation interactif qui dépend d'un LD.
Cette étude nous permet de montrer la faisabilité et l'utilité de notre approche. Model-driven engineering (MDE) is an approach that relies on abstraction to further express domain concepts.
Hence, language engineers develop domain-specific languages (DSLs) that encapsulates the domain structure, constraints, and behavior.
Like any software, DSLs evolve regularly.
This evolution can occur when one of its components or the domain evolves.
The domain evolution as well as the evolution of DSL components and the impact of such evolution on them has been widely investigated.
However, a DSL may also rely on external dependencies that are not modeled.
As a result, the evolution of these external dependencies affects the DSL and its components.
This evolution problem has yet to be addressed.
Currently, language engineers must manually evolve the DSL when the external dependencies evolve.
In this thesis, we focus on the evolution of external libraries.
More specifically, our goal is to assist language engineers in the task of evolution.
To this end, we propose an approach that automatically integrates the changes of the external libraries into the DSL.
In addition, we offer a DSL that supports the evolution of the Arduino libraries.
We also evaluate our approach by evolving an interactive modeling editor that depends on a DSL.
This study allows us to demonstrate the feasibility and usefulness of our approach.
Ce document diffusé sur Papyrus est la propriété exclusive des titulaires des droits d'auteur et est protégé par la Loi sur le droit d'auteur (L.R.C. (1985), ch. C-42). Il peut être utilisé dans le cadre d'une utilisation équitable et non commerciale, à des fins d'étude privée ou de recherche, de critique ou de compte-rendu comme le prévoit la Loi. Pour toute autre utilisation, une autorisation écrite des titulaires des droits d'auteur sera nécessaire.