Capturing Software Architecture Knowledge for Pattern-Driven Design

Context: Software architecture is a knowledge-intensive field. One mechanism for storing architecture knowledge is the recognition and description of architectural patterns. Selecting architectural patterns is a challenging task for software architects, as knowledge about these patterns is scattered among a wide range of literature. Method: We report on a systematic literature review, with the aim of building a decision model for the architectural pattern selection problem. Moreover, twelve experienced practitioners at software-producing organizations evaluated the usability and usefulness of the extracted knowledge.\newline Results: An overview is provided of 29 patterns and their effects on 40 quality attributes. Furthermore, we report in which systems the 29 patterns are applied and in which combinations. The practitioners confirmed that architectural knowledge supports software architects with their decision-making process to select a set of patterns for a new problem. We investigate the potential trends among architects to select patterns. Conclusion: With the knowledge available, architects can more rapidly select and eliminate combinations of patterns to design solutions. Having this knowledge readily available supports software architects in making more efficient and effective design decisions that meet their quality concerns.

[1]  Rajkumar Buyya,et al.  Principles of Parallel and Distributed Computing , 2013 .

[2]  Philippe Kruchten,et al.  The Past, Present, and Future for Software Architecture , 2006, IEEE Software.

[3]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[4]  John Mylopoulos,et al.  Non-Functional Requirements in Software Engineering , 2000, International Series in Software Engineering.

[5]  Michael D. Myers,et al.  The qualitative interview in IS research: Examining the craft , 2007, Inf. Organ..

[6]  Muhammad Ali Babar,et al.  Identifying relevant studies in software engineering , 2011, Inf. Softw. Technol..

[7]  Douglas C. Schmidt,et al.  Past, Present, and Future Trends in Software Patterns , 2007, IEEE Software.

[8]  David Garlan,et al.  Software architecture: a travelogue , 2014, FOSE.

[9]  Tore Dybå,et al.  Evidence-based software engineering , 2004, Proceedings. 26th International Conference on Software Engineering.

[10]  Paris Avgeriou,et al.  Mining Relationships between the Participants of Architectural Patterns , 2010, ECSA.

[11]  Uwe Zdun,et al.  Architectural Patterns Revisited - A Pattern Language , 2005, EuroPLoP.

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

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

[14]  A. Onwuegbuzie,et al.  Mixed Methods Research: A Research Paradigm Whose Time Has Come , 2004 .

[15]  Slinger Jansen,et al.  Decision Support for Blockchain Platform Selection: Three Industry Case Studies , 2020, IEEE Transactions on Engineering Management.

[16]  Kate Thomas The Past , 2015 .

[17]  Beate Littig,et al.  Expert Interviews: An Introduction to a New Methodological Debate , 2009 .

[18]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[19]  Timothy Lethbridge,et al.  A taxonomy of software types to facilitate search and evidence-based software engineering , 2008, CASCON '08.

[20]  Mark Richards,et al.  Software Architecture Patterns , 2015 .

[21]  Seyed Morteza Babamir,et al.  Evaluating software architectural styles based on quality features through hierarchical analysis and Fuzzy Integral (FAHP) , 2015, 2015 7th Conference on Information and Knowledge Technology (IKT).

[22]  Ahmed E. Sabry Decision Model for Software Architectural Tactics Selection Based on Quality Attributes Requirements , 2015 .

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

[24]  Sonali Agarwal,et al.  A Complete Survey on Software Architectural Styles and Patterns , 2015 .

[25]  Barbara Kitchenham,et al.  Procedures for Performing Systematic Reviews , 2004 .

[26]  Neil B. Harrison,et al.  Incorporating fault tolerance tactics in software architecture patterns , 2008, SERENE '08.

[27]  Johnny Saldaña,et al.  The Coding Manual for Qualitative Researchers , 2009 .

[28]  Ilene Burnstein,et al.  Practical Software Testing: A Process-Oriented Approach , 2003 .

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

[30]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[31]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

[32]  ISO / IEC 25010 : 2011 Systems and software engineering — Systems and software Quality Requirements and Evaluation ( SQuaRE ) — System and software quality models , 2013 .

[33]  Hasan Rashidi,et al.  Software Architecture: A Survey and Classification , 2010, 2010 Second International Conference on Communication Software and Networks.

[34]  Rainer Weinreich,et al.  Making the Case for Centralized Software Architecture Management , 2016, SWQD.

[35]  Austen Rainer,et al.  Case Study Research in Software Engineering - Guidelines and Examples , 2012 .

[36]  Shyi-Ming Chen,et al.  Aggregating Fuzzy Opinions in the Group Decision-making Environment , 1998, Cybern. Syst..

[37]  Enrico Gobbetti,et al.  Encyclopedia of Electrical and Electronics Engineering , 1999 .

[38]  Prasanna Mani,et al.  Software architecture pattern selection model for Internet of Things based systems , 2018, IET Softw..

[39]  Matthias Riebisch,et al.  Impact Evaluation for Quality-Oriented Architectural Decisions regarding Evolvability , 2010, ECSA.

[40]  Armin Eberlein,et al.  Systematic selection of software architecture styles , 2010, IET Softw..

[41]  Muhammad Ali Babar,et al.  On Searching Relevant Studies in Software Engineering , 2010, EASE.

[42]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

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

[44]  Salvatore Mamone,et al.  The IEEE standard for software maintenance , 1994, SOEN.

[45]  Muhammad Ali Babar,et al.  10 years of software architecture knowledge management: Practice and future , 2016, J. Syst. Softw..

[46]  Evangelos Triantaphyllou,et al.  Multi-Criteria Decision Making: An Operations Research Approach , 1998 .

[47]  Oliver Vogel,et al.  Architecture Means (WITH WHAT) , 2011 .

[48]  Peng Liang,et al.  Software Architecture Documentation: The Road Ahead , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[49]  Sylvia Encheva,et al.  Multi-criteria decision-making , 2009 .

[50]  Coral Calero,et al.  A Long Way to Quality-Driven Pattern-Based Architecting , 2016, ECSA.

[51]  Hanêne Ben-Abdallah,et al.  A guideline for software architecture selection based on ISO 25010 quality related characteristics , 2016, International Journal of System Assurance Engineering and Management.

[52]  Mikael Lindvall,et al.  Evaluating software architectures , 2004, Adv. Comput..

[53]  Tore Dybå,et al.  Empirical studies of agile software development: A systematic review , 2008, Inf. Softw. Technol..

[54]  Jane Cleland-Huang,et al.  Software Quality Requirements: How to Balance Competing Priorities , 2008, IEEE Software.

[55]  Slinger Jansen,et al.  A Decision Support System for Cloud Service Provider Selection Problem in Software Producing Organizations , 2018, 2018 IEEE 20th Conference on Business Informatics (CBI).

[56]  Kai Petersen,et al.  Systematic Mapping Studies in Software Engineering , 2008, EASE.

[57]  William C. Chu,et al.  Linking Functions and Quality Attributes for Software Evolution , 2012, 2012 19th Asia-Pacific Software Engineering Conference.

[58]  Neil B. Harrison,et al.  Analysis of Architecture Pattern Usage in Legacy System Architecture Documentation , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[59]  Neil B. Harrison,et al.  How do architecture patterns and tactics interact? A model and annotation , 2010, J. Syst. Softw..

[60]  Mark T True,et al.  Software Requirements , 2005 .

[61]  Mary Shaw,et al.  "The Golden Age of Software Architecture" Revisited , 2009, IEEE Software.

[62]  Matthew R. McBride,et al.  The software architect , 2007, CACM.

[63]  Xin Huang,et al.  A Map of Threats to Validity of Systematic Literature Reviews in Software Engineering , 2016, 2016 23rd Asia-Pacific Software Engineering Conference (APSEC).

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

[65]  Bedir Tekinerdogan,et al.  Model-driven architecture based testing: A systematic literature review , 2018, Inf. Softw. Technol..

[66]  Pearl Brereton,et al.  Lessons from applying the systematic literature review process within the software engineering domain , 2007, J. Syst. Softw..

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

[68]  Salah Sadou,et al.  Composition-Centered Architectural Pattern Description Language , 2013, ECSA.

[69]  Arif Ali Khan,et al.  Software design patterns classification and selection using text categorization approach , 2017, Appl. Soft Comput..

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

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

[72]  Michael E. Atwood,et al.  Effective Design Rationale: Understanding the Barriers , 2006 .

[73]  Paris Avgeriou,et al.  First workshop on sharing and reusing architectural knowledge , 2006, SOEN.

[74]  Mary Shaw,et al.  The golden age of software architecture , 2006, IEEE Software.

[75]  Slinger Jansen,et al.  A decision support system for software technology selection , 2018, J. Decis. Syst..

[76]  Angham A. Abdulahad Sabagh,et al.  An Extensible Framework for Context-Aware Smart Environments , 2011, ARCS.

[77]  Sam Malek,et al.  Enhancing middleware support for architecture-based development through compositional weaving of styles , 2010, J. Syst. Softw..

[78]  Eoin Woods,et al.  Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives , 2005 .

[79]  Tai-Hoon Kim,et al.  ISARE: An Integrated Software Architecture Reuse and Evaluation Framework , 2010, FGIT-ASEA.

[80]  Durgesh Samadhiya,et al.  Quality models: Role and value in software engineering , 2010, 2010 2nd International Conference on Software Technology and Engineering.

[81]  Gerry White,et al.  The Past , 2000 .

[82]  Slinger Jansen,et al.  Multiple Criteria Decision Support in Requirements Negotiation , 2018, REFSQ Workshops.

[83]  Tsuyoshi Murata,et al.  {m , 1934, ACML.

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

[85]  Iris Groher,et al.  Software architecture knowledge management approaches and their support for knowledge management activities: A systematic literature review , 2016, Inf. Softw. Technol..

[86]  D. Winterfeldt,et al.  Cognitive and Motivational Biases in Decision and Risk Analysis , 2015, Risk analysis : an official publication of the Society for Risk Analysis.

[87]  Neil B. Harrison,et al.  Leveraging Architecture Patterns to Satisfy Quality Attributes , 2007, ECSA.