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.
| Date | 1 May 2023 |
|---|
| Original language | French |
|---|
| Awarding Institution | - École de technologie supérieure
|
|---|
| Supervisor | Naouel Moha (Supervisor) & Ghizlane El Boussaidi (Co-supervisor) |
|---|
Chekhaba, C. (Author),
Moha (Supervisor) & Boussaidi (Co-supervisor),
1 May 2023Student thesis: Master's thesis › Master in Engineering: Engineering