Software architecture review by association
HighlightsThe objective of this paper is to help designers review the causal relationships between software design elements.In Design Association Theory, causal relationship is the basis of associating architectural design concerns, design problems and design solutions.We propose an association-based five-step review procedure to systematically identify design reasoning issues.We studied three industrial software architecture design cases, and found design reasoning issues in all three cases.We generalize reasoning failures into eight different design reasoning failure scenarios. During the process of software design, software architects have their reasons to choose certain software components to address particular software requirements and constraints. However, existing software architecture review techniques often rely on the design reviewers' knowledge and experience, and perhaps using some checklists, to identify design gaps and issues, without questioning the reasoning behind the decisions made by the architects. In this paper, we approach design reviews from a design reasoning perspective. We propose to use an association-based review procedure to identify design issues by first associating all the relevant design concerns, problems and solutions systematically; and then verifying if the causal relationships between these design elements are valid. Using this procedure, we discovered new design issues in all three industrial cases, despite their internal architecture reviews and one of the three systems being operational. With the newly found design issues, we derive eight general design reasoning failure scenarios.