Ripple effect to evaluate the impact of changes in architectural design decisions
Carlos Carrillo, Rafael Capilla · 2018
Software architectures are affected by evolution cycles when requirements or the system change. When architectural elements are modified other parts of the design can be impacted by these changes, and be propagated to all software products. As the frequency and depth of architectural changes may affect the stability of the architecture, it becomes important to estimate how stable or unstable an architecture is during evolution cycles. Although this problem has been addressed at the class level there are no clues how the underpinning design decisions that lead to architectural changes impact on the stability of designs. Existing ripple effect algorithms aimed to estimate the effect of changes in code are rarely used in architecture and to the best of our knowledge never used to analyze the stability of design decisions. We suggest in the paper a new ripple effect technique to evaluate how a change in a design decision may affect other decisions and to assess software architects on the most stable and unstable decisions. We provide a categorization of dependency types between related decisions to improve the efficiency of our ripple effect approach during the analysis of the stability of decisions and architectures.