Abstract
Software design is a complicated process, and novice designers have seldom been taught how to reason with a design. They use a naturalistic approach to work their way through software design. In order to impart the use of design techniques, a card game was developed to help design reasoning. This game was tested on groups of students and resulted in noticeable differences between the control and test groups. Those who used the cards produced better design arguments: the groups with the card game on average perform 75 % more reasoning than the control groups. The results show that the design strategy used by the groups is a clear indicator for how many and what kind of design problems are designed, while the cards influence how the designers solve these problems.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. Series in Software Engineering. Addison Wesley, Reading (2012)
Cohen, J.: Weighted kappa: nominal scale agreement with provision for scaled disagreement or partial credit. Psychol. Bull. 70, 213–220 (1968)
Smart Decisions: A software architecture design game. http://smartdecisionsgame.com/
Galster, M., Weyns, D.: Emperical research in software architecture. In: 13th Working IEEE/IFIP Conference on Software Architecture, Italy, Venice, pp. 11–20. IEEE Computer Society (2016)
Grenning, J.: Planning poker or how to avoid analysis paralysis while release planning. Hawthorn Woods Renaiss. Softw. Consult. 3, 1–3 (2002)
van Heesch, U., Avgeriou, P., Tang, A.: Does decision documentation help junior designers rationalize their decisions? A comparative multiple-case study. J. Syst. Softw. 86, 1545–1565 (2013)
Horsburgh, D.: Evaluation of qualitative research. J. Clin. Nurs. 12, 307–312 (2003)
IDEO: IDEO Method Cards. https://www.ideo.com/by-ideo/method-cards/
Kahneman, D.: Thinking, Fast and Slow. Penguin Books, London (2012)
Klein, G.: Naturalistic decision making. Hum. Factors J. Hum. Factors Ergon. Soc. 50, 456–460 (2008)
Lago, P., van Vliet, H.: Explicit assumptions enrich architectural models. In: 27th International Conference on Software Engineering, ICSE 2005, pp. 206–214. ACM (2005)
Lee, J.: Design rationale systems: understanding the issues. IEEE Expert. Syst. Appl. 12, 78–85 (1997)
Petre, M., van der Hoek, A.: Software Designers in Action: A Human-Centric Look at Design Work. CRC Press, Boca Raton (2013)
Poort, E.R., van Vliet, H.: Architecting as a risk- and cost management discipline. In: 9th Working IEEE/IFIP Conference on Software Architecture, WICSA 2011, pp. 2–11. IEEE Computer Society (2011)
Razavian, M., Tang, A., Capilla, R., Lago, P.: In two minds: how reflections influence software design thinking. J. Softw. Evol. Process 6, 394–426 (2016)
Restrepo, J., Christiaans, H.: Problem structuring, information access in design. J. Des. Res. 4, 1551–1569 (2004)
Rittel, H.W.J., Webber, M.M.: Dilemnas in a general theory of planning. Policy Sci. 4, 155–168 (1973)
Schön, D.A.: The Reflective Practitioner: How Professionals Think in Action. Basic Books, New York (1983)
Simon, H.A.: The structure of ill structured problems. Artif. Intell. 4, 181–201 (1973)
Simon, H.A.: Rationality as process and as product of a thought. Am. Econ. Rev. 68, 1–16 (1978)
Stacy, W., MacMillan, J.: Cognitive bias in software engineering. Commun. ACM. 38, 57–63 (1995)
Stanovich, K.E.: Distinguishing the reflective, algorithmic, autonomous minds: is it time for a tri-process theory? In: Two Minds: Dual Processes and Beyond, pp. 55–88. Oxford University Press (2009)
Tang, A.: Software designers, are you biased? In: 6th International Workshop on SHAring and Reusing Architectural Knowledge, pp. 1–8. ACM, New York (2011)
Tang, A., Babar, M.A., Gorton, I., Han, J.: A survey of architecture design rationale. J. Syst. Softw. 79, 1792–1804 (2006)
Tang, A., Lago, P.: Notes on design reasoning techniques. SUTICT-TR.01, Swimburne University of Technology (2010)
Tang, A., Lau, M.F.: Software architecture review by association. J. Syst. Softw. 88, 87–101 (2014)
Tang, A., Tran, M.H., Han, J., Vliet, H.: Design reasoning improves software design quality. In: Becker, S., Plasil, F., Reussner, R. (eds.) QoSA 2008. LNCS, vol. 5281, pp. 28–42. Springer, Heidelberg (2008). doi:10.1007/978-3-540-87879-7_2
Tang, A., Vliet, H.: Software architecture design reasoning. In: Babar, M.A., Dingsøyr, T., Lago, P., van Vliet, H. (eds.) Software Architecture Knowledge Management, pp. 155–174. Springer, Heidelberg (2009)
Tang, A., Vliet, H.: Software designers satisfice. In: Weyns, D., Mirandola, R., Crnkovic, I. (eds.) ECSA 2015. LNCS, vol. 9278, pp. 105–120. Springer, Heidelberg (2015). doi:10.1007/978-3-319-23727-5_9
UCI: Studying professional software design. http://www.ics.uci.edu/design-workshop/
Zannier, C., Chiasson, M., Maurer, F.: A model of design decision making based on empirical results of interviews with software designers. Inf. Softw. Technol. 49, 637–653 (2007)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing AG
About this paper
Cite this paper
Schriek, C., van der Werf, J.M.E.M., Tang, A., Bex, F. (2016). Software Architecture Design Reasoning: A Card Game to Help Novice Designers. In: Tekinerdogan, B., Zdun, U., Babar, A. (eds) Software Architecture. ECSA 2016. Lecture Notes in Computer Science(), vol 9839. Springer, Cham. https://doi.org/10.1007/978-3-319-48992-6_2
Download citation
DOI: https://doi.org/10.1007/978-3-319-48992-6_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-48991-9
Online ISBN: 978-3-319-48992-6
eBook Packages: Computer ScienceComputer Science (R0)