Abstract
Mobile applications have become one of the most important means of interacting with businesses, getting information, or accessing entertainment and news for the vast majority of the people, especially for the young generations. How those applications are being built, heavily influences their lifecycle, costs, and product roadmap, that is why software architecture plays a very important role as it affects the maintainability and extensibility of those products. We are presenting a novel automatic approach for detecting MVC architectural layers from mobile codebases that combines an unsupervised Machine Learning algorithm and a classic static analysis. Our proposal does not require any prior training stage or datasets since it does not rely on apriori annotated codebases. As another key of novelty, it uses the information obtained from the mobile SDKs for enhancing the detection process. The validation of our proposal is done in eight different sized codebases that operate in various domains and come from either open-source projects as well as closed-source ones. The performance of the detection quality is measured by the accuracy of the system, as we compared to a manually constructed ground truth, achieving an average accuracy of 85% on all the analysed codebases. Our proposal provides a viable hybrid approach for detecting architectural layers from mobile codebases achieving good results by providing the accurate detection of the layers using a deterministic step and great flexibility for being used on other architectural patterns via the non-deterministic step. Furthermore, we consider our approach as being valuable to students or beginners because it could provide insightful information on how the code should be structured and help them to respect architectural guidelines in real-world projects.
Citare
Dobrean, D., Diosan, L., A hybrid approach to MVC architectural layers analysis, Proceedings of 16th International Conference on Evaluation of Novel Approaches to Software Engineering, pages 36-46