Abstract
Context: Architectural views serve as fundamental artefacts for designing and communicating software architectures. In the context of collaborative software development, producing sound architectural documentation, where architectural views play a central role, is a crucial aspect for effective teamwork. Despite their importance, the use of architectural views in open-source projects to date remains only marginally explored.
Goal: We aim at conducting a comprehensive analysis on an extensive corpus of open-source architectural views. The goal is to understand (i) what the “history” of architectural views is, (ii) how architectural views are represented, and (iii) what architectural views are used for in the context of open-source projects.
Methods: We leverage a software repository mining process to systematically construct a dataset of 15k architectural views. Then, we perform (i) a quantitative analysis on the metadata of all 15k views and (ii) a qualitative analysis on a statistically-relevant sample of 373 views.
Results: Most projects rely on a single architectural view, which is often used to document a medium or high level description of the architecture. Views are usually created at either the beginning or at the end of a project, are rarely updated, and tend to be maintained by a single contributor. Views usually adopt an informal colored notation without a supporting legend and frequently report technologies used. Deployment and control flow are the most recurrent viewpoints, and commonly cover concerns related to software maintainability and functional suitability.
Conclusion: The state of the practice about architectural views in open-source software systems seems to favor informal descriptions. Despite this, the effort needed to create views might hinder keeping views up to date, and a common syntactic ground between viewpoints seems hard to find. To address current needs, we speculate that a solution could lie in defining and popularizing versionable, templateable views that can be integrated in collaborative programming environments.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Data Availability Statement
To support reproducibility and verifiability, we make all data used in this study, scripts, settings, coding guide, and results available in a replication package online (https://figshare.com/s/a796b8b414bbc7d09fe2. Accessed 24th April 2024). To encourage open science, the replication package is shared under open-source MIT license.
Notes
- 1.
- 2.
https://docs.github.com/en/rest. Accessed 9th April 2024.
- 3.
https://docs.github.com/en/rest/search/search?apiVersion=2022-11-28#search-code. Accessed 9th April 2024.
- 4.
- 5.
https://github.com/ApsaraDB/PolarDB-for-PostgreSQL Accessed 14th April 2024.
- 6.
https://github.com/digitaltwinconsortium/ManufacturingOntologies/blob/main/Docs/architecture.png. Accessed 15th April 2024.
- 7.
https://github.com/gridsuite/documentation. Accessed 15th April 2024.
- 8.
https://www.cloudcraft.co. Accessed 15th April 2024.
- 9.
https://aws.amazon.com/lambda. Accessed 10th April 2024.
- 10.
The complete list of technologies and their recurrence is reported for completeness in the replication package of this study.
- 11.
https://github.com/mermaid-js/mermaid. Accessed 24th April 2024.
- 12.
https://adr.github.io. Accessed 24th April 2024.
- 13.
https://github.com/features/actions. Accessed 24th April 2024.
- 14.
https://aws.amazon.com/architecture/icons. Accessed 17th April 2024.
References
IEEE Standard for Information Technology-Systems Design-Software Design Descriptions: IEEE STD 1016-2009, pp. 1–35 (2009)
International Standard for Software, systems and enterprise Architecture description. ISO/IEC/IEEE 42010:2022(E), pp. 1–74 (2022)
Alshuqayran, N., Ali, N., Evans, R.: A systematic mapping study in microservice architecture. In: International Conference on Service-Oriented Computing and Applications, pp. 44–51. IEEE (2016)
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 4 edn. Addison-Wesley Professional (2021)
Buchgeher, G., Schöberl, S., Geist, V., Dorninger, B., Haindl, P., Weinreich, R.: Using architecture decision records in open source projects–an MSR study on GitHub. IEEE Access (2023)
Clements, P., et al.: Documenting Software Architectures: Views and Beyond. Addison-Wesley (2011)
Ding, W., Liang, P., Tang, A., Van Vliet, H., Shahin, M.: How do open source communities document software architecture: an exploratory survey. In: André, É., Zhang, L. (eds.) Proceedings - 19th International Conference on Engineering of Complex Computer Systems, ICECCS 2014, pp. 136–145. IEEE, Institute of Electrical and Electronics Engineers (2014)
Garlan, D.: Software architecture: a roadmap. In: ICSE 2000: Proceedings of the Conference on The Future of Software Engineering, pp. 91–101. Association for Computing Machinery, New York (2000)
Geiger, R., Varoquaux, N., Mazel-Cabasse, C., et al.: The types, roles, and practices of documentation in data analytics open source software libraries. Comput. Support. Coop. Work 27, 767–802 (2018)
Ghanam, Y., Carpendale, S.: A survey paper on software architecture visualization. University of Calgary, Technical report, p. 17 (2008)
Gousios, G., Vasilescu, B., Serebrenik, A., Zaidman, A.: Lean GHTorrent: GitHub data on demand. In: Proceedings of the 11th Working Conference on Mining Software Repositories, MSR 2014, pp. 384–387. Association for Computing Machinery, New York (2014)
Hebig, R., Quang, T.H., Chaudron, M.R.V., Robles, G., Fernandez, M.A.: The quest for open source projects that use UML: mining GitHub. In: Proceedings of the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems, MODELS 2016, pp. 173–183. Association for Computing Machinery, New York (2016)
ISO/IEC 25010: Systems and software engineering - systems and software quality requirements and evaluation (square) - system and software quality models (2023)
Jenner, B., Flick, U., von Kardoff, E., Steinke, I.: A Companion to Qualitative Research. Sage (2021)
Kalliamvakou, E., Gousios, G., Blincoe, K., Singer, L., German, D., Damian, D.: An in-depth study of the promises and perils of mining GitHub. Empir. Softw. Eng. 21(5), 2035–2071 (2016)
Malavolta, I., Lago, P., Muccini, H., Pelliccione, P., Tang, A.: What industry needs from architectural languages: a survey. IEEE Trans. Softw. Eng. 39(6), 869–891 (2012)
Malavolta, I., Lewis, G.A., Schmerl, B., Lago, P., Garlan, D.: Mining guidelines for architecting robotics software. J. Syst. Softw. 178, 110969 (2021)
Muszynski, M., Lugtigheid, S., Castor, F., Brinkkemper, S.: A study on the software architecture documentation practices and maturity in open-source software development. In: IEEE International Conference on Software Architecture, pp. 47–57 (2022)
Ozkaya, M.: What is software architecture to practitioners: a survey. In: International Conference on Model-Driven Engineering and Software Development (MODELSWARD) (2016)
Ozkaya, M., Erata, F.: A survey on the practical use of UML for different software architecture viewpoints. Inf. Softw. Technol. 121, 106275 (2020)
Prana, G., Treude, C., Thung, F., et al.: Categorizing the content of GitHub README files. Empir. Softw. Eng. 24, 1296–1327 (2019)
Rost, D., Naab, M., Lima, C., von Flach Garcia Chavez, C.: Software architecture documentation for developers: a survey. In: Drira, K. (ed.) ECSA 2013. LNCS, vol. 7957, pp. 72–88. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-39031-9_7
Rozanski, N., Woods, E.: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives. Addison-Wesley Professional (2005)
Saldaña, J.: The Coding Manual for Qualitative Researchers. Sage (2021)
Shahin, M., Liang, P., Babar, M.A.: A systematic review of software architecture visualization techniques. J. Syst. Softw. 94, 161–185 (2014)
Smolander, K.: What is included in software architecture? A case study in three software organizations. In: Proceedings Ninth Annual IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, pp. 131–138 (2002)
Tu, Q., Godfrey, M.: The build-time software architecture view. In: Proceedings IEEE International Conference on Software Maintenance, ICSM 2001, pp. 398–407 (2001)
Venigalla, A.S.M., Chimalakonda, S.: What’s in a GitHub repository?–a software documentation perspective. arXiv preprint arXiv:2102.12727 (2021)
Verdecchia, R., Engström, E., Lago, P., Runeson, P., Song, Q.: Threats to validity in software engineering research: a critical reflection. Inf. Softw. Technol. 164, 107329 (2023)
Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslén, A.: Experimentation in Software Engineering. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-29044-2
Zagalsky, A., Feliciano, J., Storey, M.A., Zhao, Y., Wang, W.: The emergence of github as a collaborative platform for education. In: ACM Conference on Computer Supported Cooperative Work & Social Computing. Association for Computing Machinery (2015)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Migliorini, S., Verdecchia, R., Malavolta, I., Lago, P., Vicario, E. (2024). Architectural Views: The State of Practice in Open-Source Software Projects. In: Galster, M., Scandurra, P., Mikkonen, T., Oliveira Antonino, P., Nakagawa, E.Y., Navarro, E. (eds) Software Architecture. ECSA 2024. Lecture Notes in Computer Science, vol 14889. Springer, Cham. https://doi.org/10.1007/978-3-031-70797-1_27
Download citation
DOI: https://doi.org/10.1007/978-3-031-70797-1_27
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-70796-4
Online ISBN: 978-3-031-70797-1
eBook Packages: Computer ScienceComputer Science (R0)