Foundations of Computing and Decision Sciences (Dec 2023)
Traceability of Architectural Design Decisions and Software Artifacts: A Systematic Mapping Study
Abstract
The definition of architecture is a crucial task in software development, where the architect is responsible for making the right decisions to meet specific functional and quality requirements. These architectural design decisions form the foundation that shapes the arrangement of elements within a system. Unfortunately, these decisions are often poorly documented, implicit in various artifacts, or inadequately updated, leading to negative consequences on the maintainability of a system and resulting in rework and cost overruns. The objective of this systematic mapping study is to comprehend the current state regarding approaches for traceability of architectural design decisions and how these decisions are linked with the different artifacts used in software development. To achieve this, an information extraction protocol is followed, utilizing databases with search strings, inclusion, and exclusion criteria. The findings demonstrate that this knowledge is highly relevant; however, it is rarely explicitly documented. As a result, most works propose diverse approaches to extract this knowledge from existing technical documentation, commonly used tools, and other sources of product and process information. In contrast, it is evident that there is no standard for documenting design decisions, leading each author to present a subjective version of what is important and where to trace these decisions. This suggests that there is still a significant amount of research to be conducted regarding the traceability of these architectural design decisions and their connection with software artifacts. Such research could lead to intriguing new proposals for investigation.
Keywords