Skip to main content

Validating HyDe: Intelligent Method for Inferring Software Architectures from Mobile Codebase

  • Conference paper
  • First Online:
Evaluation of Novel Approaches to Software Engineering (ENASE 2021)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 1556))

  • 505 Accesses

Abstract

Interacting with businesses, searching for information, or accessing news and entertainment sources all have a common feature, they are predominately accessed nowadays from mobile applications. The software architecture used in building those kinds of products represents a major factor in their lifecycle, costs, and roadmap, as it affects their maintainability and extensibility. In this study, our novel approach designed for detecting MVC architectural layers from mobile codebases (that use SDK for building their UI interrfaces) is validated and analysed from various perspectives (Artificial Intelligence, architectural rules, empiric evaluation). Our proposal is validated on eight different-sized iOS codebases corresponding to different mobile applications that have different scopes (both open and closed source). 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 analyzed codebases. Our hybrid approach for detecting architectural layers achieves good results by combining the accuracy of the deterministic methods with the flexibility for being used on other architectural patterns and platforms via the non-deterministic step. We also validate the workflow of the proposal from an empirical point of view through an interview with two mobile application developers.

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 69.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 89.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

References

  1. Anquetil, N., Lethbridge, T.C.: Recovering software architecture from the names of source files. J. Softw. Maint. Res. Pract. 11(3), 201–221 (1999)

    Article  Google Scholar 

  2. Apple: Model-view-controller (2012). https://apple.co/3a5Aox9

  3. Apple: Placing objects and handling 3D interaction (2019). https://apple.co/3tJw8v2

  4. Belle, A.B., El-Boussaidi, G., Desrosiers, C., Mili, H.: The layered architecture revisited: is it an optimization problem? In: SEKE, pp. 344–349 (2013)

    Google Scholar 

  5. Belle, A.B., El Boussaidi, G., Kpodjedo, S.: Combining lexical and structural information to reconstruct software layers. Inf. Softw. Technol. 74, 1–16 (2016)

    Article  Google Scholar 

  6. Belle, A.B., El Boussaidi, G., Mili, H.: Recovering software layers from object oriented systems. In: 2014 9th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE), pp. 1–12. IEEE (2014)

    Google Scholar 

  7. Campos, E., Kulesza, U., Coelho, R., Bonifácio, R., Mariano, L.: Unveiling the architecture and design of android applications. In: Proceedings of the 17th International Conference on Enterprise Information Systems, vol. 2, pp. 201–211 (2015)

    Google Scholar 

  8. Corazza, A., Di Martino, S., Maggio, V., Scanniello, G.: Weighing lexical information for software clustering in the context of architecture recovery. Empir. Softw. Eng. 21(1), 72–103 (2015). https://doi.org/10.1007/s10664-014-9347-3

    Article  Google Scholar 

  9. Daoudi, A., ElBoussaidi, G., Moha, N., Kpodjedo, S.: An exploratory study of MVC-based architectural patterns in android apps. In: Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing, pp. 1711–1720. ACM (2019)

    Google Scholar 

  10. Davies, D.L., Bouldin, D.W.: A cluster separation measure. IEEE Trans. Pattern Anal. Mach. Intell. 2, 224–227 (1979)

    Article  Google Scholar 

  11. DeLong, D.: A better MVC (2017). https://davedelong.com/blog/2017/11/06/a-better-mvc-part-1-the-problems/

  12. Dobrean, D.: Automatic examining of software architectures on mobile applications codebases. In: 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 595–599. IEEE (2019)

    Google Scholar 

  13. Dobrean, D., Dioşan, L.: An analysis system for mobile applications MVC software architectures, pp. 178–185. INSTICC, SciTePress (2019). https://doi.org/10.5220/0007827801780185

  14. Dobrean, D., Dioşan, L.: Model view controller in iOS mobile applications development, pp. 547–552. KSI Research Inc. and Knowledge Systems Institute Graduate School (2019). https://doi.org/10.18293/SEKE2019

  15. Dobrean, D., Dioşan, L.: Detecting model view controller architectural layers using clustering in mobile codebases. In: Proceedings of the 15th International Conference on Software Technologies, pp. 196–203. INSTICC (2020). https://doi.org/10.5220/0009884601960203

  16. Dobrean, D., Dioşan, L.: A hybrid approach to MVC architectural layers analysis. In: In Proceedings of the 16th International Conference on Evaluation of Novel Approaches to Software Engineering, pp. 36–46. INSTICC (2021). https://doi.org/10.5220/0010326700360046

  17. El Boussaidi, G., Belle, A.B., Vaucher, S., Mili, H.: Reconstructing architectural views from legacy systems. In: 2012 19th Working Conference on Reverse Engineering, pp. 345–354. IEEE (2012)

    Google Scholar 

  18. Garcia, J., Popescu, D., Mattmann, C., Medvidovic, N., Cai, Y.: Enhancing architectural recovery using concerns. In: 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011), pp. 552–555. IEEE (2011)

    Google Scholar 

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

    Google Scholar 

  20. Huang, A.: Similarity measures for text document clustering. In: Proceedings of the Sixth New Zealand Computer Science Research Student Conference (NZCSRSC2008), Christchurch, New Zealand, vol. 4, pp. 9–56 (2008)

    Google Scholar 

  21. GSMA Intelligence: 2019 raport (2019). https://www.gsmaintelligence.com/

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

    Google Scholar 

  23. Laval, J., Anquetil, N., Bhatti, U., Ducasse, S.: Ozone: layer identification in the presence of cyclic dependencies. Sci. Comput. Program. 78(8), 1055–1072 (2013)

    Article  Google Scholar 

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

    Google Scholar 

  25. Levenshtein, V.I.: Binary codes capable of correcting deletions, insertions, and reversals. Soviet Phys. Dokl. 10, 707–710 (1966)

    MathSciNet  Google Scholar 

  26. Lutellier, T., et al.: Comparing software architecture recovery techniques using accurate dependencies. In: 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering (ICSE), vol. 2, pp. 69–78. IEEE (2015)

    Google Scholar 

  27. Mancoridis, S., Mitchell, B.S., Chen, Y., Gansner, E.R.: Bunch: a clustering tool for the recovery and maintenance of software system structures. In: Proceedings IEEE International Conference on Software Maintenance-1999 (ICSM 1999). Software Maintenance for Business Change (Cat. No. 99CB36360), pp. 50–59. IEEE (1999)

    Google Scholar 

  28. Mitchell, B.S., Mancoridis, S.: On the evaluation of the bunch search-based software modularization algorithm. Soft. Comput. 12(1), 77–93 (2008)

    Article  Google Scholar 

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

  30. Müller, H.A., Orgun, M.A., Tilley, S.R., Uhl, J.S.: A reverse-engineering approach to subsystem structure identification. J. Softw. Maint. Res. Pract. 5(4), 181–204 (1993)

    Article  Google Scholar 

  31. Murtagh, F.: A survey of recent advances in hierarchical clustering algorithms. Comput. J. 26(4), 354–359 (1983)

    Article  Google Scholar 

  32. Pruijt, L., Köppe, C., van der Werf, J.M., Brinkkemper, S.: The accuracy of dependency analysis in static architecture compliance checking. Softw.: Pract. Exp. 47(2), 273–309 (2017)

    Google Scholar 

  33. Rathee, A., Chhabra, J.K.: Software remodularization by estimating structural and conceptual relations among classes and using hierarchical clustering. In: Singh, D., Raman, B., Luhach, A.K., Lingras, P. (eds.) Advanced Informatics for Computing Research. CCIS, vol. 712, pp. 94–106. Springer, Singapore (2017). https://doi.org/10.1007/978-981-10-5780-9_9

    Chapter  Google Scholar 

  34. Rousseeuw, P.J.: Silhouettes: a graphical aid to the interpretation and validation of cluster analysis. J. Comput. Appl. Math. 20, 53–65 (1987)

    Article  Google Scholar 

  35. Sangal, N., Jordan, E., Sinha, V., Jackson, D.: Using dependency models to manage complex software architecture. In: ACM SIGPLAN Notices, vol. 40, no. 10, pp. 167–176. ACM (2005)

    Google Scholar 

  36. Sarkar, S., Maskeri, G., Ramachandran, S.: Discovery of architectural layers and measurement of layering violations in source code. J. Syst. Softw. 82(11), 1891–1905 (2009)

    Article  Google Scholar 

  37. Scanniello, G., D’Amico, A., D’Amico, C., D’Amico, T.: Using the Kleinberg algorithm and vector space model for software system clustering. In: 2010 IEEE 18th International Conference on Program Comprehension, pp. 180–189. IEEE (2010)

    Google Scholar 

  38. Schmidt, F., MacDonell, S.G., Connor, A.M.: An automatic architecture reconstruction and refactoring framework. In: Lee, R. (ed.) Software Engineering Research, Management and Applications 2011. Studies in Computational Intelligence, vol. 377, pp. 95–111. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-23202-2_7

    Chapter  Google Scholar 

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

  40. Vewer, D.: 2019 raport (2019). https://iosdevsurvey.com/2019/

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

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

    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

© 2022 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Dobrean, D., Dioşan, L. (2022). Validating HyDe: Intelligent Method for Inferring Software Architectures from Mobile Codebase. In: Ali, R., Kaindl, H., Maciaszek, L.A. (eds) Evaluation of Novel Approaches to Software Engineering. ENASE 2021. Communications in Computer and Information Science, vol 1556. Springer, Cham. https://doi.org/10.1007/978-3-030-96648-5_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-96648-5_1

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-96647-8

  • Online ISBN: 978-3-030-96648-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics