Skip to main content

Architectural Views: The State of Practice in Open-Source Software Projects

  • Conference paper
  • First Online:
Software Architecture (ECSA 2024)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 14889))

Included in the following conference series:

  • 680 Accesses

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.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

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. 1.

    https://github.blog/2023-11-08-the-state-of-open-source-and-ai.

  2. 2.

    https://docs.github.com/en/rest. Accessed 9th April 2024.

  3. 3.

    https://docs.github.com/en/rest/search/search?apiVersion=2022-11-28#search-code. Accessed 9th April 2024.

  4. 4.

    https://github.com/GoogleCloudPlatform/reg-reporting-blueprint.

  5. 5.

    https://github.com/ApsaraDB/PolarDB-for-PostgreSQL Accessed 14th April 2024.

  6. 6.

    https://github.com/digitaltwinconsortium/ManufacturingOntologies/blob/main/Docs/architecture.png. Accessed 15th April 2024.

  7. 7.

    https://github.com/gridsuite/documentation. Accessed 15th April 2024.

  8. 8.

    https://www.cloudcraft.co. Accessed 15th April 2024.

  9. 9.

    https://aws.amazon.com/lambda. Accessed 10th April 2024.

  10. 10.

    The complete list of technologies and their recurrence is reported for completeness in the replication package of this study.

  11. 11.

    https://github.com/mermaid-js/mermaid. Accessed 24th April 2024.

  12. 12.

    https://adr.github.io. Accessed 24th April 2024.

  13. 13.

    https://github.com/features/actions. Accessed 24th April 2024.

  14. 14.

    https://aws.amazon.com/architecture/icons. Accessed 17th April 2024.

References

  1. IEEE Standard for Information Technology-Systems Design-Software Design Descriptions: IEEE STD 1016-2009, pp. 1–35 (2009)

    Google Scholar 

  2. International Standard for Software, systems and enterprise Architecture description. ISO/IEC/IEEE 42010:2022(E), pp. 1–74 (2022)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 4 edn. Addison-Wesley Professional (2021)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. Clements, P., et al.: Documenting Software Architectures: Views and Beyond. Addison-Wesley (2011)

    Google Scholar 

  7. 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)

    Google Scholar 

  8. 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)

    Google Scholar 

  9. 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)

    Article  Google Scholar 

  10. Ghanam, Y., Carpendale, S.: A survey paper on software architecture visualization. University of Calgary, Technical report, p. 17 (2008)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. ISO/IEC 25010: Systems and software engineering - systems and software quality requirements and evaluation (square) - system and software quality models (2023)

    Google Scholar 

  14. Jenner, B., Flick, U., von Kardoff, E., Steinke, I.: A Companion to Qualitative Research. Sage (2021)

    Google Scholar 

  15. 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)

    Article  Google Scholar 

  16. 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)

    Article  Google Scholar 

  17. Malavolta, I., Lewis, G.A., Schmerl, B., Lago, P., Garlan, D.: Mining guidelines for architecting robotics software. J. Syst. Softw. 178, 110969 (2021)

    Article  Google Scholar 

  18. 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)

    Google Scholar 

  19. Ozkaya, M.: What is software architecture to practitioners: a survey. In: International Conference on Model-Driven Engineering and Software Development (MODELSWARD) (2016)

    Google Scholar 

  20. Ozkaya, M., Erata, F.: A survey on the practical use of UML for different software architecture viewpoints. Inf. Softw. Technol. 121, 106275 (2020)

    Article  Google Scholar 

  21. Prana, G., Treude, C., Thung, F., et al.: Categorizing the content of GitHub README files. Empir. Softw. Eng. 24, 1296–1327 (2019)

    Article  Google Scholar 

  22. 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

    Chapter  Google Scholar 

  23. Rozanski, N., Woods, E.: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives. Addison-Wesley Professional (2005)

    Google Scholar 

  24. Saldaña, J.: The Coding Manual for Qualitative Researchers. Sage (2021)

    Google Scholar 

  25. Shahin, M., Liang, P., Babar, M.A.: A systematic review of software architecture visualization techniques. J. Syst. Softw. 94, 161–185 (2014)

    Article  Google Scholar 

  26. 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)

    Google Scholar 

  27. Tu, Q., Godfrey, M.: The build-time software architecture view. In: Proceedings IEEE International Conference on Software Maintenance, ICSM 2001, pp. 398–407 (2001)

    Google Scholar 

  28. Venigalla, A.S.M., Chimalakonda, S.: What’s in a GitHub repository?–a software documentation perspective. arXiv preprint arXiv:2102.12727 (2021)

  29. 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)

    Article  Google Scholar 

  30. 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

    Book  Google Scholar 

  31. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Roberto Verdecchia .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

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

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics