Chekhaba, Chaima (2023). Analyse et détection des patrons architecturaux dans les applications mobiles à l’aide des techniques d’apprentissage automatique. Mémoire de maîtrise électronique, Montréal, École de technologie supérieure.
Prévisualisation |
PDF
Télécharger (1MB) | Prévisualisation |
Résumé
Récemment, les applications mobiles ont connu une grande émergence dans de multiples domaines. Afin de répondre à la qualité requise de ces applications, les développeurs mobiles appliquent les bonnes pratiques (par exemple, les patrons) et les directives recommandées par la communauté du développement. Parmi les patrons architecturaux les plus couramment utilisés pour implémenter les applications Android, figurent le célèbre patron architectural Modèle-Vue-Contrôleur (MVC) et ses variantes : Modèle-Vue-Présentateur (MVP) et Modèle- Vue-Vue-Modèle (MVVM). Cependant, les développeurs ont tendance à appliquer différemment ces patrons en fonction de leur expérience et de leur propre compréhension des directives relatives aux patrons. Cela peut conduire à des implémentations incorrectes qui ont un impact négatif sur la conception de l’application. Parfois, cela conduit également à mélanger différentes variantes MVC au sein d’une même application, ce qui peut nuire à la compréhensibilité, à la maintenabilité et à la testabilité de l’application.
Dans ce mémoire, nous nous intéressons à l’analyse des applications Android afin de détecter les patrons appliqués et identifier potentiellement le mélange de plusieurs patrons de type MVC implémentés dans une même application. À cette fin, nous présentons nos deux approches outillées : Coach et MlCoach. L’approche Coach permet de détecter le patron du type MVC dominant dans les applications Android à l’aide de la classification traditionnelle. Quant à l’approche MlCoach, elle permet de détecter le mélange de plusieurs patrons de type MVC à l’aide de la classification multi-label en utilisant l’apprentissage profond. En l’absence de données d’entraînement, nous effectuons nos analyses sur un ensemble de données annotées manuellement de 69 applications Android libres écrites en Java. D’après nos expérimentations, nos approches donnent des résultats prometteurs et surpassent les approches de l’état de l’art. Nous présentons également une analyse qualitative sur un sous-ensemble d’applications mobiles afin de donner un aperçu sur les facteurs qui peuvent conduire au mélange de différents patrons de type MVC dans ces applications.
Titre traduit
Architectural pattern detection and analysis in mobile apps using machine learning techniques
Résumé traduit
Recently, mobile applications (apps) have known widespread emergence in multiple fields. In order to meet the required quality for these apps, mobile developers apply good practices (e.g., patterns) and guidelines recommended by the development community. Among the most commonly used architectural patterns to implement Android apps are the popular Model-View- Controller (MVC) architectural pattern and its variants : Model-View-Presenter (MVP) and Model-View-ViewModel (MVVM). However, developers tend to apply differently these patterns according to their experience and proper understanding of the patterns guidelines. This may lead to faulty implementations that impact negatively the design of the app. Sometimes, it also leads to the mixing of different MVC variants within the same app, which could hinder the understandability, maintainability, and testability of the app.
In this thesis, we are interested in analyzing Android apps in order to detect the applied patterns and potentially the mixing of multiple MVC variants implemented in the same app. For that end, we introduce our tool-based approaches : Coach and MlCoach. Coach allow the detection of the dominant MVC pattern variant in Android apps using the traditional classification techniques. As for MlCoach, it detect the mixing of multiple MVC pattern variants using the multi-label classification technique based on deep learning. In the absence of benchmarks, we perform our analyses on a manually annotated dataset of 69 open-source Java projects for Android apps. Based on our experiments, our approaches yield promising results and outperform the state-of-the-art approaches. We also present a qualitative analysis on a subset of mobile apps to provide some insights about the factors that may lead to the mixing of different MVC variants in these apps.
Type de document: | Mémoire ou thèse (Mémoire de maîtrise électronique) |
---|---|
Renseignements supplémentaires: | "Mémoire présenté à l’École de technologie supérieure comme exigence partielle à l’obtention de la maîtrise avec mémoire en génie logiciel". Comprend des références bibliographiques (pages 105-116). |
Mots-clés libres: | patrons architecturaux, MVC, MVP, MVVM, applications mobiles, classification, classification multi-label |
Directeur de mémoire/thèse: | Directeur de mémoire/thèse Moha, Naouel |
Codirecteur: | Codirecteur El Boussaidi, Ghizlane |
Programme: | Maîtrise en ingénierie > Génie |
Date de dépôt: | 01 févr. 2024 16:08 |
Dernière modification: | 01 févr. 2024 16:08 |
URI: | https://espace.etsmtl.ca/id/eprint/3355 |
Gestion Actions (Identification requise)
Dernière vérification avant le dépôt |