| Abstract: | Angular, built on TypeScript, has become a leading framework for developing large-scale and
modular web applications. Its structure—combining TypeScript components, HTML templates,
and dependency injection—improves productivity but also raises new challenges for
software quality. Static code analysis is a key practice to address these challenges, offering
early detection of defects, vulnerabilities, and maintainability issues. This thesis presents
a state of the art on static analysis approaches and tools in the context of Angular applications.
It reviews existing solutions such as ESLint, SonarQube, and Fortify, as well as
Angular-specific analyzers like Codelyzer and angular-eslint. Their strengths and limitations
are examined with regard to false positives, limited coverage of framework-specific constructs,
and integration into DevOps/CI pipelines. The study also explores model-driven engineering
approaches, such as Moose and FAMIX, which provide higher-level representations and
visualization capabilities. The analysis shows that static analysis is indispensable for quality
assurance in Angular projects but remains incomplete. Current tools struggle with template–
component bindings, redundancy detection, and security vulnerabilities specific to the
framework. Perspectives for improvement include hybrid approaches combining static and
dynamic analysis, better handling of Angular templates, stronger DevSecOps integration,
and the reinforcement of open-source collaboration. In short, this work highlights both the
maturity and the limits of static analysis for Angular/TypeScript, and outlines the directions
needed to make it more precise, reliable, and adapted to modern development practices.****
Angular, basé sur TypeScript, s’est imposé comme un cadre majeur pour le développement
d’applications web modulaires et de grande envergure. Sa structure combinant composants
TypeScript, modèles HTML et mécanismes d’injection de dépendances favorise la productivité
mais soulève également de nouveaux défis en matière de qualité logicielle. L’analyse
statique du code constitue une pratique essentielle pour répondre à ces enjeux, en permettant
la détection précoce de défauts, de vulnérabilités et de problèmes de maintenabilité. Ce
mémoire présente un état de l’art des approches et outils d’analyse statique dans le contexte
des applications Angular. Il examine les solutions existantes telles qu’ESLint, SonarQube
ou Fortify, ainsi que les analyseurs spécifiques à Angular comme Codelyzer et angular-eslint.
Leurs atouts et limites sont analysés au regard des faux positifs, de la couverture partielle des
constructions propres au framework et de leur intégration dans les chaînes DevOps/CI. Le
travail explore également les approches issues de l’ingénierie dirigée par les modèles, notamment
Moose et FAMIX, qui offrent des représentations abstraites et des capacités avancées
de visualisation. L’étude montre que l’analyse statique est indispensable pour assurer la
qualité des projets Angular, mais qu’elle reste incomplète. Les outils actuels rencontrent
des difficultés face aux liens entre composants et modèles, à la détection de redondances ou
encore aux vulnérabilités spécifiques au framework. Les perspectives d’amélioration concernent
l’adoption d’approches hybrides combinant analyse statique et dynamique, un meilleur
traitement des modèles Angular, une intégration renforcée dans les pratiques DevSecOps et
la valorisation des collaborations open source. En résumé, ce travail met en évidence à la
fois la maturité et les limites de l’analyse statique pour Angular/TypeScript, tout en traçant
les pistes nécessaires pour la rendre plus précise, fiable et adaptée aux pratiques modernes
de développement logiciel. |