Abstract
Software architecting entails making architecture decisions, which requires a lot of experience and expertise. Current literature contains several methods and processes to support architects with architecture design, documentation and evaluation but not with the design reasoning involved in decision-making. In order to derive a systematic reasoning process we need to understand the current state of practice and propose ways to improve it. In this paper we present the results of a survey that was conducted with undergraduate software engineering students, aiming to find out the innate reasoning process during architecting. The results of the survey are compared to the existing architecture literature in order to identify promising directions towards systematic reasoning processes.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Amazon.com (2010), http://www.amazon.com
IEEE-Std-1471-2000. Recommended Practice for Architectural Description of Software-Intensive Systems. Technical report, IEEE (2000)
Bass, L., Clements, P., Kazman, R.: Software architecture in practice. Pearson Education, London (2003)
Bosch, J.: Software architecture: The next step. LNCS, pp. 194–199. Springer, Heidelberg (2004)
Bosch, J., Molin, P.: Software architecture design: evaluation and transformation. In: Proceedings of IEEE Conference and Workshop on Engineering of Computer-Based Systems, ECBS 1999, pp. 4–10 (1999)
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture: A System of Patterns, vol. 1. John Wiley & Sons, Inc., New York (1996)
Clements, P., Garlan, D., Bass, L., Stafford, J., Nord, R., Ivers, J., Little, R.: Documenting software architectures: views and beyond. Pearson Education, London (2002)
Clerc, V., Lago, P., Van Vliet, H.: The Architect’s Mindset. In: Overhage, S., Szyperski, C., Reussner, R., Stafford, J.A. (eds.) QoSA 2007. LNCS, vol. 4880, pp. 231–249. Springer, Heidelberg (2008)
Farenhorst, R., Hoorn, J.F., Lago, P., Vliet, H.V.: The Lonesome Architect. In: Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture (WICSA/ECSA 2009), Cambridge, UK (September 14-17, 2009)
Hofmeister, C., Kruchten, P., Nord, R., Obbink, H., Ran, A., America, P.: Generalizing a Model of Software Architecture Design from Five Industrial Approaches. In: Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture. IEEE Computer Society, Los Alamitos (2005)
Hofmeister, C., Nord, R., Soni, D.: Applied Software Architecture. Addison-Wesley Professional, Reading (2009)
Jansen, A., Bosch, J.: Software architecture as a set of architectural design decisions. In: Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture, pp. 109–120 (2005)
Jansen, A., Bosch, J., Avgeriou, P.: Documenting after the fact: Recovering architectural design decisions. The Journal of Systems & Software 81(4), 536–557 (2008)
Kazman, R., Klein, M., Barbacci, M., Longstaff, T., Lipson, H., Carriere, J.: The architecture tradeoff analysis method. In: ICECCS. IEEE Computer Society, Los Alamitos (1998)
Kitchenham, B., Pfleeger, S., Pickard, L., Jones, P., Hoaglin, D., El Emam, K., Rosenberg, J.: Preliminary guidelines for empirical research in software engineering. IEEE Transactions on Software Engineering 28, 721–734 (2002)
Kruchten, P.: The 4+ 1 view of architecture. IEEE software 12(6), 45–50 (1995)
Kruchten, P.: What do software architects really do? Journal of Systems and Software 81, 2413–2416 (2008)
Kazman, R., Bass, L., Webb, M., Abowd, G.: SAAM: A method for analyzing the properties of software architectures. In: Proceedings of the 16th international conference on Software engineering, pp. 81–90. IEEE Computer Society Press, Los Alamitos (1994)
Williams, L., Smith, C.: PASA SM: a method for the performance assessment of software architectures. In: Proceedings of the 3rd International Workshop on Software and Performance, p. 189. ACM, New York (2002)
Lethbridge, T., Sim, S., Singer, J.: Studying software engineers: Data collection techniques for software field studies. Empirical Software Engineering 10(3), 311–341 (2005)
Kruchten, P.: The Rational Unified Process An Introduction. Addison Wesley-Publishing Company, Reading (2000)
Shull, F., Singer, J., Sjøberg, D.: Guide to Advanced Empirical Software Engineering. Springer, New York (2007)
Tang, A., Babar, M., Gorton, I., Han, J.: A survey of architecture design rationale. Journal of systems and software 79(12), 1792–1804 (2006)
Tang, A., Lago, P.: Notes on design reasoning tactics. Technical report, Swinburne University of Technology (2009)
Tang, A., Tran, M., 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)
Trochim, W.: The Research Methods Knowledge Base. Atomic Dog Publishing (2001)
Tyree, J., Akerman, A.: Architecture Decisions: Demystifying Architecture. IEEE Software 22, 19–27 (2005)
Van Der Ven, J., Jansen, A., Avgeriou, P., Hammer, D.: Using architectural decisions. In: Hofmeister, C., Crnković, I., Reussner, R. (eds.) QoSA 2006. LNCS, vol. 4214, Springer, Heidelberg (2006)
Van Der Ven, J., Jansen, A., Nijhuis, J., Bosch, J.: Design Decisions: The Bridge between Rationale and Architecture. In: Rationale management in software engineering, pp. 329–348. Springer, Heidelberg (2006)
Wohlin, C., Host, M., Henningsson, K.: Empirical research methods in software engineering. In: Empirical Methods and Studies in Software Engineering, pp. 145–165. Springer, Heidelberg (2003)
Clements, P., Kazman, R., Klein, M., Devesh, D., Reddy, E., Verma, P.: The Duties, Skills, and Knowledge of Software Architects. In: Proceedings of the Sixth Working IEEE/IFIP Conference on Software Architecture (2007)
Zdun, U.: Systematic pattern selection using pattern language grammars and design space analysis. Software Practice and Experience 37(9), 1016 (2007)
Zimmermann, O., Zdun, U., Gschwind, T., Leymann, F.: Combining Pattern Languages and Reusable Architectural Decision Models into a Comprehensive and Comprehensible Design Method. In: Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008), pp. 157–166 (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
van Heesch, U., Avgeriou, P. (2010). Naive Architecting - Understanding the Reasoning Process of Students. In: Babar, M.A., Gorton, I. (eds) Software Architecture. ECSA 2010. Lecture Notes in Computer Science, vol 6285. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-15114-9_5
Download citation
DOI: https://doi.org/10.1007/978-3-642-15114-9_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-15113-2
Online ISBN: 978-3-642-15114-9
eBook Packages: Computer ScienceComputer Science (R0)