Naive Architecting - Understanding the Reasoning Process of Students - A Descriptive Survey

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.

[1]  Raymond McCall,et al.  Rationale Management in Software Engineering , 2006 .

[2]  Frank Buschmann,et al.  A system of patterns , 1995 .

[3]  Jan Bosch,et al.  Documenting after the fact: Recovering architectural design decisions , 2008, J. Syst. Softw..

[4]  Mark Klein,et al.  The Duties, Skills, and Knowledge of Software Architects , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[5]  Jan Bosch,et al.  Software architecture design: evaluation and transformation , 1999, Proceedings ECBS'99. IEEE Conference and Workshop on Engineering of Computer-Based Systems.

[6]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture Volume 1: A System of Patterns , 1996 .

[7]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[8]  P. Krutchen,et al.  The Rational Unified Process: An Introduction , 2000 .

[9]  Connie U. Smith,et al.  PASASM: a method for the performance assessment of software architectures , 2002, WOSP '02.

[10]  Patricia Lago,et al.  The Architect's Mindset , 2007, QoSA.

[11]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[12]  Leonard J. Bass,et al.  SAAM: a method for analyzing the properties of software architectures , 1994, Proceedings of 16th International Conference on Software Engineering.

[13]  Jan Bosch,et al.  Software Architecture: The Next Step , 2004, EWSA.

[14]  Rick Kazman,et al.  The architecture tradeoff analysis method , 1998, Proceedings. Fourth IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.98EX193).

[15]  Janice Singer,et al.  Studying Software Engineers: Data Collection Techniques for Software Field Studies , 2005, Empirical Software Engineering.

[16]  Jeff Tyree,et al.  Architecture decisions: demystifying architecture , 2005, IEEE Software.

[17]  Paris Avgeriou,et al.  Using Architectural Decisions , 2006 .

[18]  Antony Tang,et al.  Design Reasoning Improves Software Design Quality , 2008, QoSA.

[19]  Robert L. Nord,et al.  Generalizing a Model of Software Architecture Design from Five Industrial Approaches , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[20]  Robert L. Nord,et al.  Applied Software Architecture , 1999, Addison Wesley object technology series.

[21]  Philippe Kruchten,et al.  What do software architects really do? , 2008, J. Syst. Softw..

[22]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture: A System of Patterns: John Wiley & Sons , 1987 .

[23]  Jos Nijhuis,et al.  Design Decisions: The Bridge between Rationale and Architecture , 2006 .

[24]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture , 1996 .

[25]  William M. K. Trochim,et al.  Research methods knowledge base , 2001 .

[26]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[27]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[28]  Janice Singer,et al.  Guide to Advanced Empirical Software Engineering , 2007 .

[29]  Claes Wohlin,et al.  Empirical Research Methods in Software Engineering , 2003, ESERNET.

[30]  Johan F. Hoorn,et al.  The lonesome architect , 2009, WICSA/ECSA.

[31]  Philippe Kruchten,et al.  The Rational Unified Process: An Introduction, Second Edition , 2000 .

[32]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[33]  Philippe Kruchten,et al.  Architecture blueprints—the “4+1” view model of software architecture , 1995, TRI-Ada '95.

[34]  Uwe Zdun Systematic pattern selection using pattern language grammars and design space analysis , 2007 .

[35]  Frank Leymann,et al.  Combining Pattern Languages and Reusable Architectural Decision Models into a Comprehensive and Comprehensible Design Method , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[36]  Leon J. Osterweil,et al.  Proceedings of the 16th international conference on Software engineering , 1994, ICSE 1994.

[37]  Reidar Conradi,et al.  Empirical Methods and Studies in Software Engineering , 2003, Lecture Notes in Computer Science.

[38]  Muhammad Ali Babar,et al.  A survey of architecture design rationale , 2006, J. Syst. Softw..

[39]  Daniel A. Reed,et al.  Data Sonification: Do You See What I Hear? , 1995, IEEE Softw..

[40]  Jan Bosch,et al.  Software Architecture as a Set of Architectural Design Decisions , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[41]  Clemens A. Szyperski,et al.  Software Architectures, Components, and Applications, Third International Conference on Quality of Software Architectures, QoSA 2007, Medford, MA, USA, July 11-23, 2007, Revised Selected Papers , 2008, QoSA.