Towards an Evidence-Based Understanding of Emergence of Architecture through Continuous Refactoring in Agile Software Development

The proponents of Agile software development approaches claim that software architecture emerges from continuous small refactoring, hence, there is not much value in spending upfront effort on architecture related issues. Based on a large-scale empirical study involving 102 practitioners who had worked with agile and architecture approaches, we have found that whether or not architecture emerges through continuous refactoring depends upon several contextual factors. Our study has identified 20 factors that have been categorized into four elements: project, team, practices, and organization. These empirically identified contextual factors are expected to help practitioners to make informed decisions about their architecture practices in agile software development.

[1]  Marina Bosch The Rational Unified Process An Introduction , 2016 .

[2]  M. Naedele,et al.  Picture of health - An integrated approach to asset health management , 2014 .

[3]  Muhammad Ali Babar Chapter 1 – Making Software Architecture and Agile Approaches Work Together: Foundations and Approaches , 2014 .

[4]  Muhammad Ali Babar,et al.  Making Software Architecture and Agile Approaches Work Together , 2014 .

[5]  Robert Grimm,et al.  A catalog of stream processing optimizations , 2014, ACM Comput. Surv..

[6]  Gabriele Bavota,et al.  Evaluating test‐to‐code traceability recovery methods through controlled experiments , 2013, J. Softw. Evol. Process..

[7]  Patricia Lago,et al.  Organizational social structures for software engineering , 2013, CSUR.

[8]  Richard N. Taylor The role of architectural styles in successful software ecosystems , 2013, SPLC '13.

[9]  Heiko Koziolek,et al.  Experiences from identifying software reuse opportunities by domain analysis , 2013, SPLC '13.

[10]  Patricia Lago,et al.  Dynamic networked organizations for software engineering , 2013, SSE 2013.

[11]  Henry Muccini,et al.  Software architecture-based analysis and testing: a look into achievements and future challenges , 2013, Computing.

[12]  Janne Järvinen,et al.  Industrial Experiences of Organizing a Hackathon to Assess a Device-centric Cloud Ecosystem , 2013, 2013 IEEE 37th Annual Computer Software and Applications Conference.

[13]  Reidar Conradi,et al.  Architectural Decision-Making in Enterprises: Preliminary Findings from an Exploratory Study in Norwegian Electricity Industry , 2013, ECSA.

[14]  Henry Muccini,et al.  What Industry Needs from Architectural Languages: A Survey , 2013, IEEE Transactions on Software Engineering.

[15]  Brian Fitzgerald,et al.  Uncovering theories in software engineering , 2013, 2013 2nd SEMAT Workshop on a General Theory of Software Engineering (GTSE).

[16]  Chris Parnin,et al.  1st International workshop on live programming (LIVE 2013) , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[17]  Klaus Marius Hansen,et al.  Software ecosystems - A systematic literature review , 2013, J. Syst. Softw..

[18]  Zhengping Qian,et al.  TimeStream: reliable stream computation in the cloud , 2013, EuroSys '13.

[19]  Ravi Sundaram,et al.  Maygh: building a CDN from client web browsers , 2013, EuroSys '13.

[20]  Philippe Kruchten,et al.  Contextualizing agile software development , 2013, J. Softw. Evol. Process..

[21]  Xavier Franch,et al.  Non-functional Requirements in Architectural Decision Making , 2013, IEEE Software.

[22]  Bashar Nuseibeh,et al.  Characterizing Architecturally Significant Requirements , 2013, IEEE Software.

[23]  Ola Henfridsson,et al.  Balancing platform control and external contribution in third‐party development: the boundary resources model , 2013, Inf. Syst. J..

[24]  Luciano Baresi,et al.  Customizing Service Platforms (Dagstuhl Seminar 13171) , 2013, Dagstuhl Reports.

[25]  Richard N. Taylor,et al.  Architecture-Driven Modeling of Adaptive Collaboration Structures in Large-Scale Social Web Applications , 2012, WISE.

[26]  Nelly Bencomo,et al.  A View of the Dynamic Software Product Line Landscape , 2012, Computer.

[27]  Sooyong Park,et al.  Building Dynamic Software Product Lines , 2012, Computer.

[28]  Peter H. Feiler,et al.  Model-Based Engineering with AADL: An Introduction to the SAE Architecture Analysis & Design Language , 2012 .

[29]  Alexander Egyed,et al.  Assessing the effect of requirements traceability for software maintenance , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[30]  Maryam Razavian,et al.  A Viewpoint for Dealing with Change in Migration to Services , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[31]  Paris Avgeriou,et al.  Forces on Architecture Decisions - A Viewpoint , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[32]  Henry Muccini,et al.  On the Composition and Reuse of Viewpoints across Architecture Frameworks , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[33]  Olaf Zimmermann Architectural decision identification in architectural patterns , 2012, WICSA/ECSA '12.

[34]  João Pimentel,et al.  STREAM-ADD - Supporting the Documentation of Architectural Design Decisions in an Architecture Derivation Process , 2012, 2012 IEEE 36th Annual Computer Software and Applications Conference.

[35]  Geir Kjetil Hanssen,et al.  A longitudinal case study of an emerging software ecosystem: Implications for practice and theory , 2012, J. Syst. Softw..

[36]  Tommi Mikkonen,et al.  From proprietary to open source - Growing an open source ecosystem , 2012, J. Syst. Softw..

[37]  Slinger Jansen,et al.  Shades of gray: Opening up a software producing organization with the open software enterprise model , 2012, J. Syst. Softw..

[38]  Cesare Pautasso,et al.  Reusable decision space for mashup tool design , 2012, EICS '12.

[39]  Scott Shenker,et al.  Discretized Streams: An Efficient and Fault-Tolerant Model for Stream Processing on Large Clusters , 2012, HotCloud.

[40]  Richard N. Taylor,et al.  Co-adapting human collaborations and software architectures , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[41]  Alessandro Margara,et al.  Processing flows of information: From data stream to complex event processing , 2012, CSUR.

[42]  Paris Avgeriou,et al.  A documentation framework for architecture decisions , 2012, J. Syst. Softw..

[43]  Naoyasu Ubayashi,et al.  Architectural point mapping for design traceability , 2012, FOAL '12.

[44]  Henry Muccini,et al.  Model-Driven Techniques to Enhance Architectural Languages Interoperability , 2012, FASE.

[45]  E. Allman Managing technical debt , 2012, Commun. ACM.

[46]  Tore Dybå,et al.  Theoretical foundations of software ecosystems , 2012, IWSECO@ICSOB.

[47]  Gustavo Alonso,et al.  Virtualizing Stream Processing , 2011, Middleware.

[48]  Gabriele Bavota,et al.  SCOTCH: Test-to-code traceability using slicing and conceptual coupling , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[49]  Peng Liang,et al.  Architectural design decision visualization for architecture design: preliminary results of a controlled experiment , 2011, ECSA '11.

[50]  Uwe Aßmann,et al.  Feature-Based Customisation of Tool Environments for Model-Driven Software Development , 2011, 2011 15th International Software Product Line Conference.

[51]  Erik Meijer The world according to LINQ , 2011, CACM.

[52]  Christian Kreiner,et al.  Software Product Lines - An Agile Success Factor? , 2011, EuroSPI.

[53]  Rainer Weinreich,et al.  Automatic Tracing of Decisions to Architecture and Implementation , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[54]  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.

[55]  Remco C. de Boer,et al.  Experiences with Semantic Wikis for Architectural Knowledge Management , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[56]  Marjo Kauppinen,et al.  Software Ecosystems: A Set of Management Practices for Platform Integrators in the Telecom Industry , 2011, ICSOB.

[57]  Slinger Jansen,et al.  Steering Insight: An Exploration of the Ruby Software Ecosystem , 2011, ICSOB.

[58]  Romain Robbes,et al.  A study of ripple effects in software ecosystems: (NIER track) , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[59]  Badrish Chandramouli,et al.  The extensibility framework in Microsoft StreamInsight , 2011, 2011 IEEE 27th International Conference on Data Engineering.

[60]  Erik Wilde,et al.  From the Internet of Things to the Web of Things: Resource-oriented Architecture and Best Practices , 2011, Architecting the Internet of Things.

[61]  Henry Muccini,et al.  A model-driven approach to automate the propagation of changes among Architecture Description Languages , 2010, Software & Systems Modeling.

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

[63]  Gustavo Alonso,et al.  A lightweight and extensible platform for processing personal information at global scale , 2010, Journal of Internet Services and Applications.

[64]  Leonardo Neumeyer,et al.  S4: Distributed Stream Computing Platform , 2010, 2010 IEEE International Conference on Data Mining Workshops.

[65]  Kalle Lyytinen,et al.  Research Commentary - The New Organizing Logic of Digital Innovation: An Agenda for Information Systems Research , 2010, Inf. Syst. Res..

[66]  Henry Muccini,et al.  Realizing architecture frameworks through megamodelling techniques , 2010, ASE.

[67]  James D. Herbsleb,et al.  Architecting in software ecosystems: interface translucence as an enabler for scalable collaboration , 2010, ECSA '10.

[68]  James Noble,et al.  Organizing self-organizing teams , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[69]  Peng Liang,et al.  Rationale visualization of software architectural design decision using compendium , 2010, SAC '10.

[70]  Giovanni Cantone,et al.  Peaceful Coexistence: Agile Developer Perspectives on Software Architecture , 2010, IEEE Software.

[71]  Muhammad Ali Babar,et al.  Agility and Architecture: Can They Coexist? , 2010, IEEE Softw..

[72]  Muhammad Ali Babar,et al.  A comparative study of architecture knowledge management tools , 2010, J. Syst. Softw..

[73]  Cathy Urquhart,et al.  Putting the ‘theory’ back into grounded theory: guidelines for grounded theory studies in information systems , 2009, Inf. Syst. J..

[74]  Ola Henfridsson,et al.  Governing Third-Party Development through Platform boundary Resources , 2010, ICIS.

[75]  Barry W. Boehm,et al.  Architected Agile Solutions for Software-Reliant Systems , 2010, Agile Software Development.

[76]  Schahram Dustdar,et al.  VbTrace: using view-based and model-driven development to support traceability in process-driven SOAs , 2011, Software & Systems Modeling.

[77]  Tony Gorschek,et al.  A systematic review of domain analysis solutions for product lines , 2009, J. Syst. Softw..

[78]  Dieter Fensel,et al.  It's a Streaming World! Reasoning upon Rapidly Changing Information , 2009, IEEE Intelligent Systems.

[79]  Muhammad Ali Babar An exploratory study of architectural practices and challenges in using agile software development approaches , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[80]  Peng Liang,et al.  Architectural design decision: Existing models and tools , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[81]  M. Cecilia Bastarrica,et al.  Feature model to product architectures: Applying MDE to Software Product Lines , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[82]  Bartosz Michalik,et al.  Towards Decision Centric Repository of Architectural Knowledge , 2009, CEE-SET.

[83]  Hakan Erdogmus,et al.  Architecture Meets Agility , 2009, IEEE Softw..

[84]  Jan Bosch,et al.  From software product lines to software ecosystems , 2009, SPLC.

[85]  Ying Li,et al.  Microsoft CEP Server and Online Behavioral Targeting , 2009, Proc. VLDB Endow..

[86]  M. Cecilia Bastarrica,et al.  Model-Driven approach to Software Architecture design , 2009, 2009 ICSE Workshop on Sharing and Reusing Architectural Knowledge.

[87]  Slinger Jansen,et al.  A sense of community: A research agenda for software ecosystems , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

[88]  Vladimir Tosic,et al.  Guidelines for industrially-based multiple case studies in software engineering , 2009, 2009 Third International Conference on Research Challenges in Information Science.

[89]  Philippe Kruchten,et al.  The Decision View's Role in Software Architecture Practice , 2009, IEEE Software.

[90]  Paris Avgeriou,et al.  Tools and Technologies for Architecture Knowledge Management , 2009, Software Architecture Knowledge Management.

[91]  Peng Liang,et al.  Knowledge Architect: A Tool Suite for Managing Software Architecture Knowledge , 2009 .

[92]  Peng Huang,et al.  When Do ISVs Join a Platform Ecosystem? Evidence from the Enterprise Software Industry , 2009, ICIS.

[93]  Mark Strembeck,et al.  Reusable Architectural Decisions for DSL Design: Foundational Decisions in DSL Projects , 2009, EuroPLoP.

[94]  Genny Tortora,et al.  Assessing IR-based traceability recovery tools through controlled experiments , 2009, Empirical Software Engineering.

[95]  Michael Isard,et al.  DryadLINQ: A System for General-Purpose Distributed Data-Parallel Computing Using a High-Level Language , 2008, OSDI.

[96]  Sae Young Jeong,et al.  Usability challenges for enterprise service-oriented architecture APIs , 2008, 2008 IEEE Symposium on Visual Languages and Human-Centric Computing.

[97]  François Bry,et al.  Semantic Wikis , 2008, IEEE Software.

[98]  Genny Tortora,et al.  Adams re-trace , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[99]  Jarmo Harju,et al.  Peer-to-Peer Streaming Technology Survey , 2008, Seventh International Conference on Networking (icn 2008).

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

[101]  Hans van Vliet,et al.  Software Architecture Knowledge Management , 2008, 19th Australian Conference on Software Engineering (aswec 2008).

[102]  Philippe Kruchten,et al.  Wishes and Boundaries for a Software Architecture Knowledge Community , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[103]  Sanjay Ghemawat,et al.  MapReduce: simplified data processing on large clusters , 2008, CACM.

[104]  H. van Vliet,et al.  Experiences with a Wiki to Support Architectural Knowledge Sharing , 2008 .

[105]  Martin Glinz,et al.  On Non-Functional Requirements , 2007, 15th IEEE International Requirements Engineering Conference (RE 2007).

[106]  Jan Vitek,et al.  Streamflex: high-throughput stream programming in java , 2007, OOPSLA.

[107]  Patricia Lago,et al.  Effective Tool Support for Architectural Knowledge Sharing , 2007, ECSA.

[108]  Steffen Staab,et al.  On marrying ontological and metamodeling technical spaces , 2007, ESEC-FSE '07.

[109]  Philippe Kruchten,et al.  Voyage in the Agile Memeplex , 2007, ACM Queue.

[110]  Arie van Deursen,et al.  Understanding Execution Traces Using Massive Sequence and Circular Bundle Views , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

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

[112]  Muhammad Ali Babar,et al.  A Tool for Managing Software Architecture Knowledge , 2007, Second Workshop on Sharing and Reusing Architectural Knowledge - Architecture, Rationale, and Design Intent (SHARK/ADI'07: ICSE Workshops 2007).

[113]  Dieter K. Hammer,et al.  Tool Support for Architectural Decisions , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[114]  吴树峰 从学徒到大师之路--读《 The Pragmatic Programmer, From Journeyman to Master》 , 2007 .

[115]  Robert L. Nord,et al.  A general model of software architecture design derived from five industrial approaches , 2007, J. Syst. Softw..

[116]  Michael I. Gordon,et al.  Exploiting coarse-grained task, data, and pipeline parallelism in stream programs , 2006, ASPLOS XII.

[117]  Cláudia Maria Lima Werner,et al.  ArchTrace: Policy-Based Support for Managing Evolving Architecture-to-Implementation Traceability Links , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[118]  Raghvinder S. Sangwan,et al.  Global Software Development Handbook (Auerbach Series on Applied Software Engineering Series) , 2006 .

[119]  Rafael Capilla,et al.  A web-based tool for managing architectural design decisions , 2006, SOEN.

[120]  Marco Sinnema,et al.  Using variability modeling principles to capture architectural knowledge , 2006, SOEN.

[121]  Yoonho Park,et al.  SPC: a distributed, scalable platform for data mining , 2006, DMSSP '06.

[122]  Philippe Kruchten,et al.  Building Up and Reasoning About Architectural Knowledge , 2006, QoSA.

[123]  Andrea De Lucia,et al.  Improving Comprehensibility of Source Code via Traceability Information: a Controlled Experiment , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[124]  N. Nohria,et al.  Are leaders portable? , 2006, Harvard business review.

[125]  James E. Tomayko,et al.  Software architecture-centric methods and agile development , 2006, IEEE Software.

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

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

[128]  Muhammad Ali Babar,et al.  A Survey of the Use and Documentation of Architecture Design Rationale , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[129]  Rob Pike,et al.  Interpreting the data: Parallel analysis with Sawzall , 2005, Sci. Program..

[130]  Bernhard Rumpe,et al.  Assumptions Underlying Agile Software-Development Processes , 2005, J. Database Manag..

[131]  Jan Bosch,et al.  A taxonomy of variability realization techniques , 2005, Softw. Pract. Exp..

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

[133]  Dirk Hamann,et al.  Adapting PROFES for Use in an Agile Process: An Industry Experience Report , 2005, PROFES.

[134]  George Mangalaraj,et al.  Challenges of migrating to agile methodologies , 2005, CACM.

[135]  Jean Bézivin,et al.  On the unification power of models , 2005, Software & Systems Modeling.

[136]  Antony Tang,et al.  Architecture rationalization: a methodology for architecture verifiability, traceability and completeness , 2005, 12th IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'05).

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

[138]  Barry Boehm,et al.  Foundations of Empirical Software Engineering , 2005 .

[139]  Ying Xing,et al.  The Design of the Borealis Stream Processing Engine , 2005, CIDR.

[140]  Jennifer Widom,et al.  The CQL continuous query language: semantic foundations and query execution , 2006, The VLDB Journal.

[141]  Jean-Marie Favre CacOphoNy: Metamodel-Driven Architecture Recovery , 2004 .

[142]  Jean-Marie Favre,et al.  CaCOphoNy: metamodel-driven software architecture reconstruction , 2004, 11th Working Conference on Reverse Engineering.

[143]  Marc Roper,et al.  A novel software visualisation model to support software comprehension , 2004, 11th Working Conference on Reverse Engineering.

[144]  Alistair Cockburn,et al.  Crystal Clear: A Human-Powered Methodology for Small Teams , 2004 .

[145]  Jean Bézivin,et al.  On the Need for Megamodels , 2004, OOPSLA 2004.

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

[147]  Jean Bézivin,et al.  Modeling in the Large and Modeling in the Small , 2003, MDAFA.

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

[149]  Lukasz Golab,et al.  Issues in data stream management , 2003, SGMD.

[150]  M.A. Cusumano,et al.  The elements of platform leadership , 2003, IEEE Engineering Management Review.

[151]  Mary Poppendieck,et al.  Lean Software Development: An Agile Toolkit , 2003 .

[152]  Lucienne Blessing,et al.  Understanding the differences between how novice and experienced designers approach design tasks , 2003 .

[153]  Andrea Zisman,et al.  A Traceability Approach for i* and UML Models , 2003 .

[154]  Michael Stonebraker,et al.  The Aurora and Medusa Projects , 2003, IEEE Data Eng. Bull..

[155]  Ying Xing,et al.  Scalable Distributed Stream Processing , 2003, CIDR.

[156]  R. Motwani,et al.  Query Processing, Approximation, and Resource Management in a Data Stream Management System , 2003, CIDR.

[157]  Michael Stonebraker,et al.  Monitoring Streams - A New Class of Data Management Applications , 2002, VLDB.

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

[159]  Stuart Kent,et al.  Model Driven Engineering , 2002, IFM.

[160]  William Thies,et al.  StreamIt: A Language for Streaming Applications , 2002, CC.

[161]  Steve R. Palmer,et al.  A Practical Guide to Feature-Driven Development , 2002 .

[162]  Ron Jeffries,et al.  Agile Modeling: Effective Practices for eXtreme Programming and the Unified Process , 2002 .

[163]  Jun Han Experience with designing a requirements and architecture management tool , 2000, Proceedings International Conference on Software Methods and Tools. SMT 2000.

[164]  Nenad Medvidovic,et al.  Towards a taxonomy of software connectors , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[165]  N. Hoffart Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory , 2000 .

[166]  David Garlan,et al.  Acme: architectural description of component-based systems , 2000 .

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

[168]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[169]  Stéphane Ducasse,et al.  Recovering high-level views of object-oriented applications from static and dynamic information , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[170]  Carolyn B. Seaman,et al.  Qualitative Methods in Empirical Studies of Software Engineering , 1999, IEEE Trans. Software Eng..

[171]  Linda M. Northrop,et al.  A Framework for Software Product Line Practice , 1999, ECOOP Workshops.

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

[173]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

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

[175]  Robert Stephens,et al.  A survey of stream processing , 1997, Acta Informatica.

[176]  Sushil Jajodia,et al.  An adaptive data replication algorithm , 1997, TODS.

[177]  Dennis Shasha,et al.  The dangers of replication and a solution , 1996, SIGMOD '96.

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

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

[180]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[181]  H. D. Rombach,et al.  The Goal Question Metric Approach , 1994 .

[182]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[183]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[184]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[185]  Kent L. Beck,et al.  A laboratory for teaching object oriented thinking , 1989, OOPSLA '89.

[186]  Barry W. Boehm,et al.  Verifying and Validating Software Requirements and Design Specifications , 1989, IEEE Software.

[187]  M.M. Lehman,et al.  Programs, life cycles, and laws of software evolution , 1980, Proceedings of the IEEE.

[188]  Ken Schwaber,et al.  Agile Project Management with Scrum , 1980 .

[189]  W. Royce Managing the development of large software systems: concepts and techniques , 2021, ICSE '87.

[190]  J. Creswell Qualitative inquiry and research design: Choosing among five approaches, 2nd ed. , 2007 .

[191]  H. B. Mann,et al.  On a Test of Whether one of Two Random Variables is Stochastically Larger than the Other , 1947 .