Skip to main content

Teaching Students Software Architecture Decision Making

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

Abstract

Making the right decisions is challenging for architects on all levels of seniority. Less experienced architects in particular perceive the transition from design problems to their solutions as hard; it is not always clear how to find suitable concepts and technologies, how to compare alternatives, and how to build consensus. Lack of experience makes it difficult to train software engineering students in the identification, selection, and collective evaluation of design alternatives. Moreover, human factors such as cognitive bias make “soft” topics like architecture decisions rather hard to teach. To overcome these issues and let students gain the required experience, a Spanish University ran two experiments. Undergraduate computer science students assumed different roles in collaborative decision-making tasks and design activities. They used a novel decision-modeling tool to capture and challenge the relevant design decisions. This paper describes this new teaching setup and reports on lessons learned.

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

Notes

  1. 1.

    ISO/IEC/IEEE 42010 – Systems and software engineering – architecture description. Available at: https://www.iso.org/standard/50508.html.

  2. 2.

    The IBM e-business reference architecture taught about the importance of architectural decisions; decision capturing was a recommended practice at IBM since, at least, 1998.

  3. 3.

    https://www.ifs.hsr.ch/ADMentor-Tool.13201.0.html?&L=4.

References

  1. Alkadhi, R., Nonnenmacher, M., Guzman, E., Bruegge, B.: How do developers discuss rationale? In: International Conference on Software Analysis, Evolution and Reengineering (SANER 2018). IEEE DL (2018)

    Google Scholar 

  2. Babb, J., Hoda, R., Norbjerg, J.: Embedding Reflection and Learning into Agile Software Development (2014)

    Google Scholar 

  3. Bang, J.Y., Krka, I., Medvidovic, N., Kulkarni, N.N., Padmanabhuni, S.: How software architects collaborate: insights from collaborative software design in practice. In: 6th International Workshop on Cooperative and Human Aspects of Software Engineering, pp. 41–48. IEEE (2013)

    Google Scholar 

  4. Capilla, R.: Embedded design rationale in software architecture. In: Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture, pp. 305–308. IEEE DL (2009)

    Google Scholar 

  5. Capilla, R., Jansen, A., Tang, A., Avgeriou, P., Ali Babar, M.: A 10 years of software architecture knowledge management: practice and future. J. Syst. Softw. 116, 191–205 (2016)

    Article  Google Scholar 

  6. Cervantes, H., Kazman, R.: Designing Software Architectures: A Practical Approach. SEI Series in Software Engineering. Addison-Wesley, Boston (2016)

    Google Scholar 

  7. Clements, P., Kazman, R., Klein, M.: Evaluating Software Architectures: Methods and Case Studies. SEI Series in Software Engineering. Addison-Wesley, Boston (2001)

    Google Scholar 

  8. van Deursen, A., et al.: A collaborative approach to teaching software architecture. In: ACM SIGCSE Technical Symposium on Computer Science Education SIGCSE, pp. 591–596. ACM (2017)

    Google Scholar 

  9. Dingsoyr, T., Lago, P., van Vliet, H.: Rationale promotes learning about architectural knowledge. In: 8th International Workshop on Learning Software Organizations (LSO), Rio de Janeiro, Brazil. ACM (2006)

    Google Scholar 

  10. Dittmar, A., Forbrig, P.: A case study on supporting teachers’ collective reflection in higher education. In: 36th European Conference on Cognitive Ergonomics ECCE 2018, pp. 4:1–4:8. ACM DL (2018)

    Google Scholar 

  11. Dorst, K.: Design problems and design paradoxes. Des. Issues 22, 4–17 (2006)

    Article  Google Scholar 

  12. Hohpe, G., Ozkaya, I., Zdun, U., Zimmermann, O.: The software architect’s role in the digital age. IEEE Softw. 33(6), 30–39 (2016)

    Article  Google Scholar 

  13. Hwang, W.-Y., Shadiev, R., Wang, C.-Y., Huang, Z.-H.: A pilot study of cooperative programming learning behavior and its relationship with students’ learning performance. Comput. Educ. 58(4), 1267–1281 (2012)

    Article  Google Scholar 

  14. Kopp, O., Armbruster, A., Zimmermann, O.: Markdown architectural records: format and tool support. In: 10th Central European Workshop on Services and their Composition, pp. 55–62 (2018)

    Google Scholar 

  15. Larkin, J.H., Simon, H.A.: Why a diagram is (sometimes) worth ten thousand words. Cogn. Sci. 11(1), 65–99 (1987)

    Article  Google Scholar 

  16. Mangano, N., LaToza, T.D., Petre, M., van der Hoek, A.: How software designers interact with sketches at the whiteboard. IEEE Trans. Softw. Eng. 41(2), 135–156 (2015)

    Article  Google Scholar 

  17. Männistö, T., Savolainen, J., Myllärniemi, V.: Teaching software architecture design. In: Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008), pp. 117–124. IEEE DL (2008)

    Google Scholar 

  18. Mistrík, I., van der Hoek, A., Grundy, J., Whitehead, J.: Collaborative Software Engineering. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-10294-3

    Book  MATH  Google Scholar 

  19. Nylén, A., Isomöttönen, V.: Exploring the critical incident technique to encourage reflection during project-based learning. In: Koli Calling, pp. 88–97. ACM DL (2017)

    Google Scholar 

  20. Pedraza-Garcia, G., Astudillo, H., Correal, D.: DVIA: understanding how software architects make decisions in design meetings. In: ECSA Workshops 2015, pp. 51:1–51:7. ACM DL (2015)

    Google Scholar 

  21. Razavian, M., Paech, V., Tang, A.: Empirical research for software architecture decision making. J. Syst. Softw. 149(3), 360–381 (2018)

    Google Scholar 

  22. Razavian, M., Tang, A., Capilla, R., Lago, P.: In two minds: how reflections influence software design thinking. J. Softw. Evol. Process 28(6), 394–426 (2016)

    Article  Google Scholar 

  23. Razavian, M., Tang, A., Capilla, R., Lago, P.: Reflective approach for software design decision making. In: Qualitative Reasoning About Software Architectures, pp. 19–26. IEEE DL (2016)

    Google Scholar 

  24. Rupakheti, C.R., Chenoweth, S.V.: Teaching software architecture to undergraduate students: an experience report. In: 37th IEEE/ACM International Conference on Software Engineering, vol. 2, pp. 445–454. IEEE CS (2015)

    Google Scholar 

  25. Schön, D.A.: The Reflective Practitioner: How Professionals Think in Action. Basic Books, Nueva York (1983)

    Google Scholar 

  26. Schoormann, T., Hofer, J., Knackstedt, R.: Software tools for supporting reflection in design thinking projects. In: 53rd Hawaii International Conference on System Sciences (HICSS 2020), ScholarSpace, pp. 1–10 (2020)

    Google Scholar 

  27. Schubanz, M., Lewerentz, C.: What matters to students – a rationale management case study in agile software development. In: 17. Workshops “Software Engineering im Unterricht der Hochschulen (SEUH 2020)”, CEUR Workshop Proceedings, pp. 17–26 (2020)

    Google Scholar 

  28. Smrithi Rekha, V., Muccini, H.: Group decision-making in software architecture: a study on industrial practices. Inf. Softw. Technol. 101, 51–63 (2018)

    Article  Google Scholar 

  29. Talby, D., Hazzan, O., Dubinsky, Y., Keren, A.: Reflections on reflection in agile software development. In: Agile Conference, pp. 11–112. IEEE (2006)

    Google Scholar 

  30. Tang, A., Aleti, A., Burge, J., van Vliet, H.: What makes software design effective? Des. Stud. 31, 614–640 (2010)

    Article  Google Scholar 

  31. Tang, A., Lau, M.F.: Software architecture review by association. J. Syst. Softw. 88(2), 87–101 (2014)

    Article  Google Scholar 

  32. Tang, A., van Vliet, H.: Software designers satisfice. In: Weyns, D., Mirandola, R., Crnkovic, I. (eds.) ECSA 2015. LNCS, vol. 9278, pp. 105–120. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-23727-5_9

    Chapter  Google Scholar 

  33. Tang, A., Bex, F., Schriek, C., van der Werf, J.M.E.M.: Improving software design reasoning - a reminder card approach. J. Syst. Softw. 144, 22–40 (2018)

    Article  Google Scholar 

  34. Tofan, D., Galster, M., Avgeriou, P., Schuitema, W.: Past and future of software architectural decisions - a systematic mapping study. Inf. Softw. Technol. 56(8), 850–872 (2014)

    Article  Google Scholar 

  35. Tofan, D., Galster, M., Lytra, I., Avgeriou, P., Zdun, U., Fouche, M.-A., de Boer, R.C., Solms, F.: Empirical evaluation of a process to increase consensus in group architectural decision making. Inf. Softw. Technol. 72, 31–47 (2016)

    Article  Google Scholar 

  36. Triglianos, V., Pautasso, C., Bozzon, A., Hauff, C.: Inferring student attention with ASQ. In: Verbert, K., Sharples, M., Klobučar, T. (eds.) EC-TEL 2016. LNCS, vol. 9891, pp. 306–320. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-45153-4_23

    Chapter  Google Scholar 

  37. Wachenchauzer, R.: Work in progress – promoting critical thinking while learning programming language concepts and paradigms. In: Proceedings of IEEE International Conference on Frontiers in Education, Savannah, GA, USA, pp. 13–14 (2004)

    Google Scholar 

  38. Zimmermann, O., Koehler, J., Leymann, F.: Architectural decision models as micro-methodology for service-oriented analysis and design. In: Lübke, D. (ed.) Proceedings of the Workshop on Software Engineering Methods for Service-oriented Architecture 2007 (SEMSOA 2007), Hannover, Germany, vol. 244. CEUR-WS.org (2007)

    Google Scholar 

  39. Zimmermann, O., Wegmann, L., Koziolek, H., Goldschmidt, T.: Architectural decision guidance across projects. In: Proceedings of IEEE/IFIP WICSA (2015)

    Google Scholar 

Download references

Acknowledgements

H. Astudillo’s work was partially funded by grant ANID PIA/APOYO AFB180002. O. Zimmermann’s work was partially funded by the Hasler Foundation (project number: 19083).

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Rafael Capilla , Olaf Zimmermann , Carlos Carrillo or Hernán Astudillo .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Capilla, R., Zimmermann, O., Carrillo, C., Astudillo, H. (2020). Teaching Students Software Architecture Decision Making. In: Jansen, A., Malavolta, I., Muccini, H., Ozkaya, I., Zimmermann, O. (eds) Software Architecture. ECSA 2020. Lecture Notes in Computer Science(), vol 12292. Springer, Cham. https://doi.org/10.1007/978-3-030-58923-3_16

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-58923-3_16

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-58922-6

  • Online ISBN: 978-3-030-58923-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics