Elsevier

Information and Software Technology

Volume 80, December 2016, Pages 265-286
Information and Software Technology

Software architecture knowledge management approaches and their support for knowledge management activities: A systematic literature review

https://doi.org/10.1016/j.infsof.2016.09.007Get rights and content

Abstract

Context: Numerous approaches for Software Architecture Knowledge Management (SAKM) have been developed by the research community over the last decade. Still, these approaches have not yet found widespread use in practice.

Objective: This work identifies existing approaches to SAKM and analyzes them in terms of their support for central architecture knowledge management activities, i.e., capturing, using, maintaining, sharing, and reuse of architectural knowledge, along with presenting the evidence provided for this support.

Method: A systematic literature review has been conducted for identifying and analyzing SAKM approaches, covering work published between January 2004 and August 2015. We identified 56 different approaches to SAKM based on 115 studies. We analyzed each approach in terms of its focus and support for important architecture knowledge management activities and in terms of the provided level of evidence for each supported activity.

Results: Most of the developed approaches focus on using already-captured knowledge. Using is also the best-validated activity. The problem of efficient capturing is still not sufficiently addressed, and only a few approaches specifically address reuse, sharing, and, especially, maintaining.

Conclusions: Without adequate support for other core architecture knowledge management activities besides using, the adoption of SAKM in practice will remain an elusive target. The problem of efficient capturing is still unsolved, as is the problem of maintaining captured knowledge over the long term. We also need more case studies and replication studies providing evidence for the usefulness of developed support for SAKM activities, as well as better reporting on these case studies.

Introduction

Software architecture has been a major research topic over the last two decades. Early definitions of software architecture appeared in the early 1990s (e.g., [1] and [2]). Within the past decade, the view of software architecture has been considerably extended. While early views of software architecture emphasized the structure or structures of a software system and their externally visible properties [3], newer views have started to include the design decisions leading to these solution structures and their rationale [4]. This growing importance of a decision-oriented view of software architecture as opposed to a solution-oriented view also led to Software Architecture Knowledge Management (SAKM) [5] as a still very active sub-discipline of software architecture research.

SAKM deals with identifying and leveraging architectural knowledge within software developoment (see Section 2). Architectural knowledge, in this case, encompasses not only project-specific knowledge such as requirements, design decisions, and their rationale but also project-generic knowledge such as experience, expertise, patterns, and architectural tactics. If not explicitly managed, critical knowledge remains tacit knowledge, which erodes over time [5]. Many different approaches have been developed and documented to manage software architecture knowledge (see [6] for some examples). An SAKM approach in this context is any concept, method, tool, and technique (or any combination thereof) that has been specifically developed to support SAKM within software development.

Although SAKM has been a topic of research for more than a decade, formal approaches for SAKM, especially such for capturing decisions and their rationale, have not yet been established in practice. A recent study we performed with 25 software architects from 22 different companies in 10 different countries [7] showed that none of the survey participants use or used a formalized approach to documenting architectural knowledge (AK) even though all participants agreed on the usefulness of capturing AK. Time and cost have been mentioned as the main limiting factors in this case. Another study with open source communities [8] found out that rationale is rarely part of architecture documentation, a potential reason being limited incentives for developers to document AK. A study by Capilla et al. [9] identified lack of motivation and understanding, lack of adequate tools, too much effort in capturing AK, not knowing what to capture, and disruption of the design flow as barriers that hinder widespread adoption of SAKM in practice.

This raises the questions of whether and how existing SAKM approaches have contributed to improvements in this area, along with why these approaches have not yet seen broad application in practice despite more than 10 years of research. To answer these questions, we performed a comprehensive, systematic literature review (SLR) to identify and analyze existing SAKM approaches. We wanted to know how current approaches support SAKM and, in particular, which knowledge-management activities (i.e., capturing, using, maintaining, sharing, and reuse) are well supported and where support is currently lacking.

The contribution of this paper is a comprehensive overview of existing approaches on SAKM developed over the last decade and their focus in terms of the different SAKM activities. Three main aspects distinguish our work from previous, similar work is this area. First, we identify approaches for SAKM based on published studies by aggregating related studies that considered the same approach or variations thereof. Second, for each approach, we determine the exact knowledge-management activity or set of activities supported by that approach, and we also determine the focus of the research performed. Finally, we identify the provided evidence in terms of empirical studies related to a specific activity and not related to an approach in general. This allows us to consider the state of evidence for a particular knowledge-management activity as opposed to the evidence for the approach as a whole.

The main results are a comprehensive picture of the current state of SAKM research in terms of the developed approaches, their main concepts and ideas, the supported knowledge-management activities, and the evidence provided for these activities. Our study shows that core problems SAKM aims to solve, like efficiently capturing rationale and maintaining knowledge over the long term, still remain unsolved. Support and evidence for other activities besides using AK is often weak. Our study also shows that, as researchers in the field, we need to improve our reporting of empirical evidence, the number of empirical studies performed to validate an approach, and the number of studies that replicate earlier results.

The remainder of this paper is structured as follows. In Section 2, we provide an overview of the basic concepts of SAKM and the different SAKM activities. Section 3 presents the main goal and the research questions we answer based on the results of our SLR. In Section 4, we describe the research method we followed during the SLR, and we provide details for each of the steps performed. In Section 5, we present a quality assessment of the studies included in our review and answer the research questions based on the data extracted from the selected studies. We discuss the results and their implications in Section 6. In Section 7, we discuss threats to the validity of this SLR. Section 8 presents related work. The paper is concluded in Section 9.

Section snippets

Software architecture knowledge management

The concept of knowledge management was first studied from an organizational perspective [10], [11], from which knowledge management refers to identifying and leveraging the collective knowledge in an organization [12].

The two main strategies for knowledge management are codification and personalization [13]. Codification focuses on systematizing and storing information, making this information available for reuse, while personalization focuses on providing information about the sources of

Goal and research questions

The overall goal of this literature review is to identify existing SAKM approaches and to determine their support for architecture knowledge management activities, along with the evidence provided for this support. Accordingly, we formulate the following three research questions (RQs):

  • RQ1: Which approaches to SAKM have been developed by the research community within the last decade?

  • RQ2: Which SAKM activities are supported by these approaches, and what has been the focus of research in terms of

Research method and search process

This study was undertaken as a systematic literature review, following the guidelines of Kitchenham [18], in order to identify the current state of research in SAKM by analyzing relevant papers published within the last 12 years. The study was planned in detail and documented in a review protocol in order to reduce researchers bias.1 This protocol describes the research goals and questions, as well

Study results

This section presents the results of search and selection. First, the studies are classified by publication year and venue. Second, the results of the assessment of the quality of the studies are presented. Finally, the three research questions (see Section 3) are answered based on these results.

Discussion of results

Active area of research. The demographic data presented in Section 5.1 reveal that approaches on SAKM are still very actively investigated. Since 2004, research has been published in many different venues, especially in the Journal of Systems and Software (JSS), software architecture conferences (ECSA, WICSA, QoSA), and the workshop on sharing and reusing architectural knowledge (SHARK).

Broad spectrum of approaches. In considering the approaches to SAKM that have been developed by the research

Study validity and assessment of review

In the following section, we first discuss threats to validity and then evaluate our review against a set of four quality questions proposed by Kitchenham et al. [28] for evaluating systematic literature reviews.

Related work

While working on the SLR presented here, we had already published preliminary results related to SAKM models and variability management. In [30], we compared SAKM approaches with respect to their aims and underlying models for SAKM representation. In [31], we specifically analyzed how existing SAKM approaches support variability management. Below, we comment on work by other authors assessing the state of the art in SAKM and related areas.

Li et al. [24] conducted a systematic mapping study to

Conclusion

We performed a systematic literature review to obtain a detailed picture of the state of research on approaches for SAKM. Important aspects distinguishing our study are the identification of approaches based on related primary studies, the separation of focus and support, the separation of general and advanced activities, and the assessment of evidence related to specific SAKM activities.

We identified 115 studies, which we aggregated to 56 SAKM approaches. We then analyzed these approaches in

Acknowledgements

The authors would like to thank Cornelia Neumüller, Georg Buchgeher, and Jürgen Krammer for their help during the search process.

References (33)

  • J. Bosch

    Software architecture: the next step

    First European Workshop on Software Architecture (EWSA 2004)

    (2004)
  • Software Architecture Knowledge Management: Theory and Practice

  • P. Liang et al.

    Tools and Technologies for Architecture Knowledge Management

    (2009)
  • W. Ding et al.

    How do open source communities document software architecture: an exploratory survey

    Engineering of Complex Computer Systems (ICECCS), 2014 19th International Conference on

    (2014)
  • T.H. Davenport

    Saving it’s soul: Human-centered information management

    Harvard Bus. Rev.

    (1994)
  • I. Nonaka et al.

    The Knowledge-Creating Company: How Japanese Companies Create the Dynamics of Innovation

    (1995)
  • Cited by (0)

    View full text