A survey on software architectural assumptions

Conducted with 112 practitioners, who use Chinese as native language.Practitioners understand architectural assumption in different ways.Architectural assumptions are important in software architecting and development.A classification of the definitions of architectural assumption is provided.Reasons of not identifying and recording architectural assumptions are collected. ContextManaging architectural assumptions (AA) during the software lifecycle, as an important type of architecture knowledge, is critical to the success of projects. However, little empirical evidence exists on the understanding, identification, and recording of AA from the practitioners' perspective. ObjectiveWe investigated the current situation on (1) how practitioners understand AA and its importance, and (2) whether and how practitioners identify and record AA in software development. MethodA web-based survey was conducted with 112 practitioners, who use Chinese as native language and are engaged in software development in China. ResultsThe main findings are: (1) AA are important in both software architecting and development. However, practitioners understand AA in different ways; (2) only a few respondents identified and recorded AA in their projects, and very few approaches and tools were used for identifying and recording AA; (3) the lack of specific approaches and tools is the major challenge (reason) of (not) identifying and recording AA. ConclusionsThe results emphasize the need for a widely accepted understanding of the AA concept in software development, and specific approaches, tools, and guidelines to support AA identification and recording.

[1]  Jianfa Shen,et al.  Analyzing Urban Competitiveness Changes in Major Chinese Cities 1995–2008 , 2014 .

[2]  Daniela E. Damian,et al.  Selecting Empirical Methods for Software Engineering Research , 2008, Guide to Advanced Empirical Software Engineering.

[3]  Craig Larman,et al.  Agile and Iterative Development: A Manager's Guide , 2003 .

[4]  Wouter Joosen,et al.  Modularizing Early Architectural Assumptions in Scenario-Based Requirements , 2014, FASE.

[5]  Peng Liang,et al.  Identifying and Recording Software Architectural Assumptions in Agile Development , 2014, SEKE.

[6]  Patricia Lago,et al.  Recovering architectural assumptions , 2006, J. Syst. Softw..

[7]  Wouter Joosen,et al.  Documenting Early Architectural Assumptions in Scenario-Based Requirements , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[8]  L Del Greco,et al.  Questionnaire development: 1. Formulation. , 1987, CMAJ : Canadian Medical Association journal = journal de l'Association medicale canadienne.

[9]  Peng Liang,et al.  The impact of prior knowledge on searching in software documentation , 2014, DocEng '14.

[10]  J. Gosby MEDIA REVIEWS: Basics of Qualitative Research - Techniques and Procedures for Developing Grounded Theory 2nd Edition by A. Strauss and J. Corbin. Sage Publications, , 2000 .

[11]  Geert Wets,et al.  From Decision Tables to Expert System Shells , 1994, Data Knowl. Eng..

[12]  David Garlan,et al.  Architectural Mismatch: Why Reuse Is Still So Hard , 2009, IEEE Software.

[13]  P. Lago,et al.  Explicit assumptions enrich architectural models , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[14]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[15]  Peng Liang,et al.  How Do Open Source Communities Document Software Architecture: An Exploratory Survey , 2014, 2014 19th International Conference on Engineering of Complex Computer Systems.

[16]  Paris Avgeriou,et al.  Mature Architecting - A Survey about the Reasoning Process of Professional Architects , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

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

[18]  Sophia Kluge,et al.  The Survey Handbook , 2016 .

[19]  Shari Lawrence Pfleeger,et al.  Personal Opinion Surveys , 2008, Guide to Advanced Empirical Software Engineering.

[20]  Grace A. Lewis,et al.  Assumptions Management in Software Development , 2004 .

[21]  Anselm L. Strauss,et al.  Basics of qualitative research : techniques and procedures for developing grounded theory , 1998 .

[22]  Antony Tang,et al.  A rationale-based architecture model for design traceability and reasoning , 2007, J. Syst. Softw..

[23]  Meir M. Lehman,et al.  Rules and Tools for Software Evolution Planning and Management , 2001, Ann. Softw. Eng..

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

[25]  Lui Sha,et al.  Prevention of failures due to assumptions made by software components in real-time systems , 2005, SIGBED.

[26]  Steffen Zschaler,et al.  Aspect assumptions: a retrospective study of AspectJ developers' assumptions about aspect usage , 2011, AOSD '11.

[27]  Mohamed Jmaiel,et al.  System of systems software architecture description using the ISO/IEC/IEEE 42010 standard , 2017, SAC.

[28]  Philippe Kruchten,et al.  Using grounded theory to study the experience of software development , 2011, Empirical Software Engineering.

[29]  Michel Wermelinger,et al.  Managing assumptions during agile development , 2009, 2009 ICSE Workshop on Sharing and Reusing Architectural Knowledge.

[30]  Bashar Nuseibeh,et al.  Using trust assumptions with security requirements , 2005, Requirements Engineering.

[31]  Victor R. Basili,et al.  Iterative and incremental developments. a brief history , 2003, Computer.

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