Patterns in System Architecture Decisions. Issue 6 (25th January 2017) - Selva, Daniel; Cameron, Bruce; Crawley, Ed
ABSTRACT: This paper proposes a set of six canonical classes of architectural decisions derived from the tasks described in the system architecture body of knowledge and from real system architecture problems. These patterns can be useful in modeling architectural decisions in a wide range of complex engineering systems. They lead to intelligible problem formulations with simple constraint structures and facilitate the extraction of relevant architectural features for the application of data mining and knowledge discovery techniques. For each pattern, we provide a description, a few examples of its application, and briefly discuss quantitative and qualitative insights and heuristics. A few important theoretical properties of the corresponding set of patterns are discussed, such as completeness, degradedness, and computational complexity, as well as some practical guidance to be taken into account when applying them to real‐life architecture problems. These patterns are intended to be a useful tool for researchers, practitioners, and educators alike by facilitating instruction and communication among system architects and with researchers from other fields such as combinatorics, computer science and operations research; and fostering reuse of domain‐independent knowledge necessary to develop architecture decision support tools (and thus development time and cost reductions for such tools).