Understanding software architecture decisions from an approach based on knowledge management (2018)
"The architecture of a software system is the result of balancing a set of concerns expressed by stakeholders in its construction through a decision-making process. Each architectural decision is motivated by a set of design concerns that a team of architects must satisfy. The software architecture community accepts that architectural decisions are true knowledge. Although the importance of architectural decisions and their justification has been recognized, there are few mechanisms and tools for systematic management. As a result, these decisions are intuitive and informal, their quality depends on the architect-s experience and there is a high risk of not considering all aspects to achieve a better solution. On the other hand, knowledge management is a systematic approach that provides a conceptual and practical framework for managing the knowledge lifecycle using concepts and tools for capturing, representing, reusing, distributing, retrieving and inferring the knowledge needed to support software architecture design activities. Several proposals address the implementation of knowledge management in software architecture, but very few refer to sharing and distributing architectural knowledge; there is also little empirical evidence on how to use this knowledge. This study aims to validate whether the introduction of knowledge management activities in the decision making process of software architecture design improves the understanding of decisions, with less effort and greater satisfaction for participating architects. To achieve this goal, we propose a set of strategies and techniques to capture, retrieve, represent and share architectural design decisions as knowledge."--Tomado del Formato de Documento de Grado