Abstract
Automating the mapping of a system’s code to its architecture is important in improving the adoption of successful Software Architecture Consistency Checking (SACC) methods like Reflexion Modelling. InMap is an interactive and iterative code-to-architecture mapping recommendation approach that achieves a rather decent recall and precision of 0.97 and 0.82 respectively, using minimal architecture documentation to apply natural language techniques to a software’s codebase. Nevertheless, InMap like most other automated recommendations techniques maps to architectural modules, low-level source code units like classes. For large complex systems, this can still hinder adoption due to the review effort required by a software architect when accepting or rejecting the recommendations. In this paper, we present a hierarchical package mapping technique that provides recommendations for higher-level source code units, i.e. packages. It utilizes InMap’s information retrieval capabilities to recommend mappings between the software’s packages and its architectural modules. We show that using our proposed technique we are able to reduce the recommendation review effort required by an architect, by 95% on average, for the six systems tested, and still achieve a code coverage of 75%.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Ali, N., Baker, S., O’Crowley, R., Herold, S., Buckley, J.: Architecture consistency: state of the practice, challenges and requirements. Empir. Softw. Eng. 23(1), 224–258 (2018). https://doi.org/10.1007/s10664-017-9515-3
Bauer, M., Trifu, M.: Architecture-aware adaptive clustering of OO systems. In: Proceedings - 8th European Conference on Software Maintenance and Reengineering, pp. 3–14 (2004)
Bittencourt, R.A., et al.: Improving automated mapping in reflexion models using information retrieval techniques. In: Proceedings - Working Conference on Reverse Engineering, WCRE, pp. 63–172 (2010)
Christl, A., et al.: Automated clustering to support the reflexion method. Inf. Softw. Technol. 49(3), 255–274 (2007)
Christl, A., et al.: Equipping the reflexion method with automated clustering. In: 12th Working Conference on Reverse Engineering (2005)
Fontana, F.A., et al.: Tool support for evaluating architectural debt of an existing system: an experience report. In: Proceedings of the 31st Annual ACM Symposium on Applied Computing, pp. 1347–1349 (2016)
Knodel, J.: Sustainable Structures in Software Implementations by Live Compliance Checking. Fraunhofer-Verl, Stuttgart (2011)
Knodel, J., Popescu, D.: A comparison of static architecture compliance checking approaches. In: Proceedings of the 6th Working IEEE/IFIP Conference on Software Architecture (2007)
Murphy, G.C., et al.: Software reflexion models: bridging the gap between source and high-level models. IEEE Trans. Softw. Eng. 27(4), 364–380 (2001)
Naim, S.M., Kostadin Damevski, M., Hossain, S.: Reconstructing and evolving software architectures using a coordinated clustering framework. Autom. Softw. Eng. 24(3), 543–572 (2017). https://doi.org/10.1007/s10515-017-0211-8
Olsson, T., et al.: Semi-automatic mapping of source code using Naive Bayes. In: Proceedings of the 13th European Conference on Software Architecture, pp. 209–216 (2019)
Passos, L., et al.: Static architecture-conformance checking: an illustrative overview. IEEE Softw. 27(5), 82–89 (2010)
Rosik, J., et al.: Assessing architectural drift in commercial software development: a case study. Softw. Pract. Exp. 41, 63–86 (2011)
de Silva, L., Balasubramaniam, D.: Controlling software architecture erosion: a survey. J. Syst. Softw. 85(1), 132–151 (2012)
Sinkala, Z.T., Herold, S.: InMap: automated interactive code-to-architecture mapping. In: Proceedings of the ACM Symposium on Applied Computing, pp. 1439–1442 (2021)
Sinkala, Z.T., Herold, S.: InMap: automated interactive code-to-architecture mapping recommendations. In: Proceedings - IEEE 18th International Conference on Software Architecture, pp. 173–183 (2021)
Sinkala, Z.T., Herold, S.: Towards hierarchical code-to-architecture mapping using information retrieval. In: Companion Proceedings - IEEE 15th European Conference on Software Architecture (2021)
Wiggerts, T.A.: Using clustering algorithms in legacy systems remodularization. In: Proceedings of the 4th Working Conference on Reverse Engineering, pp. 33–43 (1997)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Sinkala, Z.T., Herold, S. (2022). Hierarchical Code-to-Architecture Mapping. In: Scandurra, P., Galster, M., Mirandola, R., Weyns, D. (eds) Software Architecture. ECSA 2021. Lecture Notes in Computer Science, vol 13365. Springer, Cham. https://doi.org/10.1007/978-3-031-15116-3_5
Download citation
DOI: https://doi.org/10.1007/978-3-031-15116-3_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-15115-6
Online ISBN: 978-3-031-15116-3
eBook Packages: Computer ScienceComputer Science (R0)