Abstract
Software architecture education is a weak spot in many undergraduate programs in computer science and software engineering. While the concepts and practices used by software architects in industry are rich and varied, transferring this expertise into a university classroom has proved problematic. Bridging the gap between industry and academia requires ongoing, often heroic, effort. This is a “chicken and egg” problem: Because there is a lack of good teaching materials, architecture is seldom taught, and because it is seldom taught, there has been little incentive to create good materials. We would like to change that. Our goal is to establish guidelines for how software architecture practices should be taught—both technical and non-technical topics—and to suggest appropriate teaching methods to best prepare students to be software architects in practice.
This is a preview of subscription content, access via your institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Bærbak Christensen, H.: Teaching microservice architecture using devops—an experience report. In: European Conference on Software Architecture, pp. 117–130. Springer, Berlin (2022)
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 4 edn. Addison-Wesley, Reading (2021)
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture Volume 1: A System of Patterns. Wiley, New York (1996)
Cai, Y., Kazman, R., Jaspan, C., Aldrich, J.: Introducing tool-supported architecture review into software design education. In: Proceedings of the Conference on Software Engineering Education and Training (CSEE&T) (2013)
Capilla, R., Zimmermann, O., Carrillo, C., Astudillo, H.: Teaching students software architecture decision making. In: European Conference on Software Architecture, pp. 231–246. Springer, Berlin (2020)
Cervantes, H., Haziyev, S., Hrytsay, O., Kazman, R.: Smart decisions: an architectural design game. In: Proceedings of the International Conference on Software Engineering (ICSE) (2016)
Dayaratna, A.: Quantifying the worldwide shortage of full-time developers. In: IDC Market perspective (2021)
Fairbanks, G.: Just Enough Software Architecture: A Risk Driven Approach. Marshall and Brainerd, New York (2010)
Galster, M., Angelov, S.: What makes teaching software architecture difficult? In: 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C), pp. 356–359 (2016)
Hazzan, O.: The reflective practitioner perspective in software engineering education. J. Syst. Softw. 63(3), 161–171 (2002)
Keeling, M.: Design It! From Programmer to Software Architect. Pragmatic Bookshelf, New York (2017)
Lago, P., Van Vliet, H.: Teaching a course on software architecture. In: Proceedings of the 18th Conference on Software Engineering Education and Training (CSEET’05), pp. 35–42. IEEE, New York (2005)
Neward, T.: Architectural katas (2012). https://www.architecturalkatas.com
Pautasso, C.: Software Architecture: Visual Lecture Notes. LeanPub, New York (2020)
Taylor, R.N., Nenad Medvidovic, E.D.: Software Architecture: Foundations, Theory, and Practice. Wiley, New York (2009)
Rozanski, N., Woods, E.: Software systems architecture: working with stakeholders using viewpoints and perspectives. Addison-Wesley, Reading (2011)
Rupakheti, C.R., Chenoweth, S.V.: Teaching software architecture to undergraduate students: an experience report. In: 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, vol. 2, pp. 445–454. IEEE, New York (2015)
Van Deursen, A., Aniche, M., Aué, J., Slag, R., De Jong, M., Nederlof, A., Bouwers, E.: A collaborative approach to teaching software architecture. In: Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education, pp. 591–596 (2017)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
Cite this chapter
Kazman, R., Cai, Y., Godfrey, M.W., Pautasso, C., Liu, A. (2023). A Better Way to Teach Software Architecture. In: Pelliccione, P., Kazman, R., Weber, I., Liu, A. (eds) Software Architecture. Springer, Cham. https://doi.org/10.1007/978-3-031-36847-9_6
Download citation
DOI: https://doi.org/10.1007/978-3-031-36847-9_6
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-36846-2
Online ISBN: 978-3-031-36847-9
eBook Packages: Computer ScienceComputer Science (R0)