During the past few years, several approaches, frameworks, and meta-models to capture and manage the Architecture Knowledge (AK) have been proposed and successfully applied in research as well as in industries. This trend is mainly due to the realization of the fact that the AK is an organizational asset and harnessing this knowledge enables knowledge reuse, supports decision making, and avoids knowledge evaporation within an organization. In accordance with the classical Knowledge Management (KM) domain, architecture knowledge can be classified along two orthogonal dimensions (a) tacit vs explicit and (b) application-generic vs application-specific. The aim is to codify the knowledge residing in the minds of software architects (tacit knowledge) explicitly in either structured or semi-structured knowledge base. Subsequently, using such a knowledge base to support a software architect's decision in applying the application-generic knowledge including architectural styles, reference architectures, design patterns, and architectural standards to specific project instances. This view correlates to the decision-centric view of the Architecture Knowledge Management (AKM) wherein the AK is comprised of design and design decisions. Furthermore, the decision-centric view also focuses on capturing the decisions made during the application of generic knowledge in specific project context so as to reuse and learn about these decisions in similar project context.
Architectural decisions are not made in isolation but by considering various influencing factors including project context, architecture-significant requirements, previously made decisions that resulted in the existing architecture, availability of human, time, and budget resources, and expertise of human resources. Therefore, there is a need to link architecture design decisions to different artifacts in software engineering life-cycle. These artifacts for instance include project plans, requirement specification documents, architecture design documents, source-code commits, bug reports, and change requests. However, as the aforementioned attributes are captured in a variety of disparate information systems by multiple stakeholders, providing a consolidated view to software architects to make informed decisions based on the current state of the project becomes challenging. In other words, one of the most important criteria for real-time decision support for software architects is the availability of the consolidated current state of the relevant project.
In this research project, we propose a meta-model based framework to support software architects during the execution of projects in real-time collaborative environment. The need for such a framework is motivated both from the state-of-the-art literature review on software architecture knowledge management (SAKM) domain as well as from software architecture management (SAM) teams from our industry partners. In particular, the framework captures multiple components including the core model-based API-driven platform, API-driven data integration component, and a value-added service (VAS) component to incorporate services like recommendation and simulation engines. The realization of the framework through the underling platform and concrete VAS such as dashboard for SAM, inconsistency analysis in project artifacts, and gamification of software architecture methods will be evaluated through use cases from our industry partners.
Through the design and implementation of such a framework we address the following research questions:
Furthermore, we also address the technical challenges and benefits of implementing, extending, and maintaining such a framework in large IT organizations.
The meta-model of the web-based framework allows to model the organization- and project-specific concepts as the user-model at runtime. The high-level view of the architecture of the framework is depicted in the Figure below. The framework comprises of multiple components including the core platform, knowledge base, integration engine and user interfaces which are discussed in the subsequent sub-sections. All the components interact with the platform and with each other over the RESTful interfaces.
[Bh16] Bhat, M.; Shumaiev, K.; Biesdorf, A.; Hohenstein, U.; Hassel, M.; Matthes, F.: Meta-model Based Framework for Architectural Knowledge Management, SAGRA workshop at European Conference on Software Architecutre 2016, Nov. 28 - Dec. 02, 2016, Copenhagen, Denmark