Knowledge Management in Software Architecture: State of the Art

Architectural knowledge has played a role in discussions on design, reuse, and evolution for over a decade. Over the past few years, the term has significantly increased in popularity and attempts are being made to properly define what constitutes ‘architectural knowledge’. In this chapter, we discuss the state-of-the-art in architectural knowledge management. We describe four main views on architectural knowledge based on the results of a systematic literature review. Based on software architecture and knowledge management theory we define four main categories of architectural knowledge, and discuss four distinct philosophies on managing architectural knowledge, which have their origin in the aforementioned views. Whereas traditionally tools, methods, and methodologies for architecture knowledge management were confined to a single philosophy, a trend can be observed that state-of-the-art approaches take a more holistic stance and integrate different philosophies in a single architecture knowledge management approach.

[1]  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).

[2]  Patricia Lago,et al.  Architectural Knowledge: Getting to the Core , 2007, QoSA.

[3]  William C. Regli,et al.  A Survey of Design Rationale Systems: Approaches, Representation, Capture and Retrieval , 2000, Engineering with Computers.

[4]  Alexander Ran,et al.  Design decision trees , 1996, Proceedings of the 8th International Workshop on Software Specification and Design.

[5]  Martin Fowler,et al.  Analysis patterns - reusable object models , 1996, Addison-Wesley series in object-oriented software engineering.

[6]  Uwe Zdun,et al.  Using Patterns to Capture Architectural Decisions , 2007, IEEE Software.

[7]  David C. Brown,et al.  Software Engineering Using RATionale , 2008, J. Syst. Softw..

[8]  M E J Newman,et al.  Finding and evaluating community structure in networks. , 2003, Physical review. E, Statistical, nonlinear, and soft matter physics.

[9]  Klaus Pohl,et al.  COSMOD-RE: Supporting the Co-Design of Requirements and Architectural Artifacts , 2007, 15th IEEE International Requirements Engineering Conference (RE 2007).

[10]  Grady Booch On creating a handbook of software architecture , 2005, OOPSLA '05.

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

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

[13]  Richard N. Taylor,et al.  Towards a knowledge-based approach to architectural adaptation management , 2004, WOSS '04.

[14]  Armin Eberlein,et al.  Transition from Requirements to Architecture: A Review and Future Perspective , 2006, Seventh ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing (SNPD'06).

[15]  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).

[16]  Remco C. de Boer,et al.  Constructing a Reading Guide for Software Product Audits , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[17]  Martin Fowler,et al.  Patterns of Enterprise Application Architecture , 2002 .

[18]  I. Nonaka,et al.  How Japanese Companies Create the Dynamics of Innovation , 1995 .

[19]  Jürgen Dingel,et al.  A survey of self-management in dynamic software architecture specifications , 2004, WOSS '04.

[20]  Morten T. Hansen,et al.  What's your strategy for managing knowledge? , 1999, Harvard business review.

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

[22]  Douglas C. Schmidt,et al.  Patterns, frameworks, and middleware: their synergistic relationships , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[23]  Remco C. de Boer,et al.  In search of `architectural knowledge' , 2008, SHARK '08.

[24]  Bashar Nuseibeh,et al.  Weaving Together Requirements and Architectures , 2001, Computer.

[25]  Klaus Pohl,et al.  Structuring the Co-design of Requirements and Architecture , 2007, REFSQ.

[26]  Hans de Bruin,et al.  Quality-driven software architecture composition , 2003, J. Syst. Softw..

[27]  Giovanni Cantone,et al.  Design decision rationale: experiences and steps ahead towards systematic use , 2006, SOEN.

[28]  Bashar Nuseibeh,et al.  Architecture-driven problem decomposition , 2004, Proceedings. 12th IEEE International Requirements Engineering Conference, 2004..

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

[30]  IEEE-SA Standards Board , 2000 .

[31]  T. V. Prabhakar,et al.  ArchVoc--Towards an Ontology for Software Architecture , 2007, Second Workshop on Sharing and Reusing Architectural Knowledge - Architecture, Rationale, and Design Intent (SHARK/ADI'07: ICSE Workshops 2007).

[32]  Remco C. de Boer,et al.  On the similarity between requirements and architecture , 2009, J. Syst. Softw..

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

[34]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[35]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[36]  Jason E. Robbins,et al.  Using critics to analyze evolving architectures , 1996, ISAW '96.

[37]  Philippe Kruchten,et al.  An Ontology of Architectural Design Decisions in Software-Intensive Systems , 2004 .

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

[39]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[40]  Patricia Lago,et al.  A Just-In-Time Architectural Knowledge Sharing Portal , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[41]  Paul Clements,et al.  The Golden Age of Software Architecture: A Comprehensive Survey. Technical Report CMU-ISRI-06-101 , 2006 .

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

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

[44]  Douglas C. Schmidt,et al.  Software patterns , 1996, CACM.

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

[46]  M E J Newman,et al.  Community structure in social and biological networks , 2001, Proceedings of the National Academy of Sciences of the United States of America.

[47]  Neil B. Harrison,et al.  Organizational Patterns of Agile Software Development , 2004 .

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

[49]  Axel van Lamsweerde,et al.  From System Goals to Software Architecture , 2003, SFM.