Concepts and diagram elements for architectural knowledge management
Bojan Orlić, Rudolf H. Mak, Ionut David, Johan J. Lukkien · 2011
Capturing architectural knowledge is very important for the evolution of software products. There is increasing awareness that an essential part of this knowledge is in fact the very process of architectural reasoning and decision making, and not just its end results. Therefore, a conceptual framework is needed that provides support for the process of architectural reasoning and making decisions. In this paper we introduce diagrams that advance existing achievements, address observed problems, and capture known insights in order to facilitate the process of architectural reasoning and its documentation, and in that way provide support for processes such as e.g. product evolution, architecture evaluation, and change impact analysis. An approach to architectural knowledge management is proposed in which a software architecture is modeled by a set of architectural reasoning diagrams, where each diagram is composed of several layers and addresses certain aspects of the system. These diagrams supplement existing ways to capture architecture descriptions, they share a set of common elements, and capture design decisions, their motivations and dependencies. A metamodel is given that defines those common elements and also defines the dependencies that exist between these elements both within and between layers. The proposed concepts and diagrams are illustrated on a software architecture for a component-based framework that needs to satisfy a given set of requirements and to address concerns of particular stakeholders.