| Abstract: | The rise of modern web technologies such as Angular and TypeScript has enabled the creation
of large and sophisticated applications, but it has also introduced new challenges for
software analysis, quality assurance, and maintainability. While static code analysis provides
useful insights, it remains limited in capturing the full structure and architecture of
such systems. To overcome these limitations, Model-Driven Engineering (MDE) promotes
the use of abstract models defined by precise metamodels, making it possible to conduct
reusable and in-depth analyses. In this context, the FAMIX metamodel and the Moose
platform have already proven their relevance, especially for languages such as Java through
the stable VerveineJ importer. However, for TypeScript/Angular, the situation was still
immature. The existing FamixTypeScriptImporter (TS2Famix) suffered from instability, incomplete
handling of language constructs, and the absence of mechanisms to validate whether
the produced models fully represented the source code. This thesis brings two main contributions.
First, it improves and stabilizes the FamixTypeScriptImporter, making it able to
process complex TypeScript/Angular projects and generate models that are more complete
and reliable. Second, it introduces a validation tool based on coverage in Moose, which checks
the link between source code and model elements. This ensures that the models are accurate,
traceable, and trustworthy for use in research and industry. The results show that Type-
Script projects can now be analyzed in Moose with a quality close to that of Java projects.
Beyond the case of Berger-Levrault, this work also contributes to the open-source community
and supports international research collaborations. Future work may extend the importer
to cover more advanced TypeScript/Angular features, add new metrics and visualizations to
the coverage tool, develop advanced analyses on architecture and performance, and integrate
these solutions into CI/CD pipelines for real industrial use.***
L’essor des technologies web modernes telles qu’Angular et TypeScript a permis la création
d’applications de plus en plus grandes et sophistiquées, mais il a également introduit de
nouveaux défis pour l’analyse, l’assurance qualité et la maintenance des logiciels. Alors
que l’analyse statique de code fournit des informations utiles, elle reste limitée pour saisir
toute la structure et l’architecture de ces systèmes. Pour dépasser ces limites, l’Ingénierie
Dirigée par les Modèles (IDM) propose l’utilisation de modèles abstraits définis par des
métamodèles précis, permettant de réaliser des analyses réutilisables et approfondies. Dans ce
contexte, le métamodèle FAMIX et la plateforme Moose ont déjà démontré leur pertinence,
notamment pour le langage Java grâce à l’importateur stable VerveineJ. Cependant,
pour TypeScript/Angular, la situation restait immature. L’importateur FamixType-
Script (TS2Famix) souffrait d’instabilité, d’un support incomplet des constructions du
langage, et de l’absence de mécanismes pour vérifier si les modèles produits représentaient
réellement le code source. Ce mémoire apporte deux contributions principales. La première
consiste en l’amélioration et la stabilisation de l’importateur TS2Famix, le rendant
capable de traiter des projets TypeScript/Angular complexes et de générer des modèles plus
complets et fiables. La seconde est l’introduction d’un outil de validation basé sur
la couverture dans Moose, qui vérifie la correspondance entre le code source et les éléments
du modèle. Cela garantit des modèles précis, traçables et dignes de confiance
pour la recherche comme pour l’industrie. Les résultats montrent que les projets TypeScript
peuvent désormais être analysés dans Moose avec une qualité proche de celle obtenue pour
Java. Au-delà du cas de Berger-Levrault, ce travail contribue également à la communauté
open-source et soutient les collaborations internationales dans le domaine de
l’analyse logicielle. Les perspectives incluent l’extension de l’importateur à des fonctionnalités
avancées de TypeScript/Angular, l’ajout de métriques et de visualisations à l’outil de
couverture, le développement d’analyses avancées sur l’architecture et la performance, ainsi
que l’intégration de ces solutions dans les pipelines CI/CD pour un usage industriel réel. |