Skip to main content

On What Kind of Applications Can Clustering Be Used for Inferring MVC Architectural Layers?

  • Chapter
  • First Online:
Advances in Information Systems Development (ISD 2022)

Part of the book series: Lecture Notes in Information Systems and Organisation ((LNISO,volume 63))

Included in the following conference series:

  • 159 Accesses

Abstract

Mobile applications are one of the most used pieces of software nowadays, as they continue to expand, the architecture of those software systems becomes more important. In the fast-paced domain of the mobile world, the applications need to be developed rapidly and they need to work on a wide range of devices. Moreover, those applications need to be maintained for long periods and they need to be flexible enough to work and interact with new hardware. Model View Controller (MVC) is one of the most widely used architectural patterns for building those kinds of applications. In this paper, we are analysing how an ML technique, in fact clustering, can be used for detecting autonomously the conformance of various mobile codebases to the MVC pattern. With our method CARL, we pave the way for creating a tool that automatically validates a mobile codebase from an architectural point of view. We have analyzed CARL’s performance on 8 iOS codebases distributed into 3 different classes based on their size (small, medium, large) and it has an accuracy of 81%, an average Mean Silhouette coefficient of 0.81, and an average Precision computed for each layer of 83%.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 89.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 119.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Metrics like accuracy, precision, and recall will be used for this purpose.

  2. 2.

    The performance can be evaluated through metrics like homogeneity, completeness, Silhouette Coefficient score, Davies-Bouldin index.

References

  1. Apple. (2012). Model-view-controller. https://developer.apple.com/library/archive/documentation/General/Conceptual/CocoaEncyclopedia/Model-View-Controller/Model-View-Controller.html

  2. Apple. (2019). Placing objects and handling 3d interaction. https://apple.co/3eHS164

  3. Avgeriou, P., Kruchten, P., Ozkaya, I., & Seaman, C. (2016). Managing technical debt in software engineering (dagstuhl seminar 16162). In Dagstuhl reports (Vol. 6). Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik.

    Google Scholar 

  4. Belle, A. B., El Boussaidi, G., & Kpodjedo, S. (2016). Combining lexical and structural information to reconstruct software layers. IST, 74, 1–16.

    Google Scholar 

  5. Bishop, C. M. (2006). Pattern recognition and machine learning. Springer.

    Google Scholar 

  6. Boudali, H., et al. (2008). Arcade-a formal, extensible, model-based dependability evaluation framework. In 13th IEEE ICECCS (pp. 243–248). IEEE.

    Google Scholar 

  7. Cai, Y., et al. (2013). Leveraging design rules to improve SA recovery. In ACM Sigsoft Conference on Quality of Software Architectures (pp. 133–142). ACM.

    Google Scholar 

  8. Corazza, A., Di Martino, S., Maggio, V., & Scanniello, G. (2011). Investigating the use of lexical information for software system clustering. In 2011 15th European Conference on Software Maintenance and Reengineering (pp. 35–44). IEEE.

    Google Scholar 

  9. Daoudi, A., et al. (2019). An exploratory study of MVC-based architectural patterns in android apps. In ACM/SIGAPP SAC (pp 1711–1720). ACM.

    Google Scholar 

  10. Davies, D. L., & Bouldin, D. W. (1979). A cluster separation measure. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2, 224–227.

    Article  Google Scholar 

  11. Dobrean, D., & Dioşan, L. (2019). An analysis system for mobile applications MVC software architectures (pp. 178–185). INSTICC, SciTePress.

    Google Scholar 

  12. Dobrean, D., & Dioşan, L. (2020). Detecting model view controller architectural layers using clustering in mobile codebases. In ICSOFT (pp. 1–6).

    Google Scholar 

  13. Dobrean, D., & Dioşan, L. (2021). Importance of software architectures in mobile projects. In 2021 IEEE 15th International Symposium on Applied Computational Intelligence and Informatics (SACI) (pp. 000281–000286). IEEE.

    Google Scholar 

  14. Fawcett, T. (2006). An introduction to roc analysis. Pattern Recognition Letters, 27(8), 861–874.

    Article  Google Scholar 

  15. Garcia, J., Ivkovic, I., & Medvidovic, N. (2013). A comparative analysis of software architecture recovery techniques. In ICASE (pp. 486–496). IEEE Press.

    Google Scholar 

  16. Ghorbani, N., Garcia, J., & Malek, S. (2019). Detection and repair of architectural inconsistencies in Java. In Proceedings of the 41st International Conference on Software Engineering (pp. 560–571). IEEE Press.

    Google Scholar 

  17. Intelligence, G. (2019). 2019 report. https://www.gsmaintelligence.com

  18. Lakos, J. (1996). Large-scale c++ software design. Reading, MA, 173, 217–271.

    Google Scholar 

  19. Laval, J., Anquetil, N., Bhatti, U., & Ducasse, S. (2013). Ozone: Layer identification in the presence of cyclic dependencies. SCP, 78(8), 1055–1072.

    Google Scholar 

  20. Le, D. M. (2018). Architectural evolution and decay in software systems. Ph.D. Thesis, University of Southern California.

    Google Scholar 

  21. Le, D. M., Behnamghader, P., Garcia, J., Link, D., Shahbazian, A., & Medvidovic, N. (2015). An empirical study of architectural change in open-source software systems. In 2015 IEEE/ACM 12th Working Conference on MSR (pp. 235–245). IEEE.

    Google Scholar 

  22. Levenshtein, V. I. (1966). Binary codes capable of correcting deletions, insertions, and reversals. In Soviet physics doklady (Vol. 10, pp. 707–710).

    Google Scholar 

  23. Lutellier, T., et al. (2015). Comparing SA recovery techniques using accurate dependencies. In ICSE (Vol. 2, pp. 69–78). IEEE.

    Google Scholar 

  24. Martini, A., & Bosch, J. (2015). The danger of architectural technical debt: Contagious debt and vicious circles. In 2015 12th Working IEEE/IFIP Conference on Software Architecture (pp. 1–10). IEEE.

    Google Scholar 

  25. Martini, A., Bosch, J., & Chaudron, M. (2015). Investigating architectural technical debt accumulation and refactoring over time: A multiple-case study. Information and Software Technology, 67, 237–253.

    Article  Google Scholar 

  26. Mozilla. (2018). Firefox iOS application. https://github.com/mozilla-mobile/firefox-ios

  27. Murtagh, F. (1983). A survey of recent advances in hierarchical clustering algorithms. The Computer Journal, 26(4), 354–359.

    Article  Google Scholar 

  28. Rathee, A., & Chhabra, J. K. (2017). Software remodularization by estimating structural and conceptual relations among classes and using hierarchical clustering. In ICAICR (pp. 94–106). Springer.

    Google Scholar 

  29. Richards, M. (2015). Software architecture patterns. O’Reilly Media, Incorporated.

    Google Scholar 

  30. Rosenberg, A., & Hirschberg, J. (2007). V-measure: A conditional entropy-based external cluster evaluation measure. In EMNLP-CoNLL (pp. 410–420).

    Google Scholar 

  31. Rousseeuw, P. J. (1987). Silhouettes: A graphical aid to the interpretation and validation of cluster analysis. Journal of Computational and Applied Mathematics, 20, 53–65.

    Article  Google Scholar 

  32. Trust. (2018). Trust wallet iOS application. https://github.com/TrustWallet/trust-wallet-ios

  33. Tzerpos, V., & Holt, R. C. (2000). ACCD: An algorithm for comprehension-driven clustering. In Proceedings of 7th Working Conference on Reverse Engineering (pp. 258–267). IEEE.

    Google Scholar 

  34. Verwer, D. (2020). The ios developer community survey. https://iosdevsurvey.com/2019/01-apple-platform-development/

  35. Wikimedia. (2018). Wikipedia ios application. https://github.com/wikimedia/wikipedia-ios/tree/master

  36. Zapalowski, V., Nunes, I., & Nunes, D. J. (2014). Revealing the relationship between architectural elements and source code characteristics. In Proceedings of the 22nd International Conference on Program Comprehension (pp. 14–25). ACM.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Dragoş Dobrean .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Dobrean, D., Dioşan, L. (2023). On What Kind of Applications Can Clustering Be Used for Inferring MVC Architectural Layers?. In: Silaghi, G.C., et al. Advances in Information Systems Development. ISD 2022. Lecture Notes in Information Systems and Organisation, vol 63. Springer, Cham. https://doi.org/10.1007/978-3-031-32418-5_7

Download citation

Publish with us

Policies and ethics