  Context: Software architecture is a knowledge-intensive field. One mechanism
for storing architecture knowledge is the recognition and description of
architectural patterns. Selecting architectural patterns is a challenging task
for software architects, as knowledge about these patterns is scattered among a
wide range of literature. Method: We report on a systematic literature review,
with the aim of building a decision model for the architectural pattern
selection problem. Moreover, twelve experienced practitioners at
software-producing organizations evaluated the usability and usefulness of the
extracted knowledge.\newline Results: An overview is provided of 29 patterns
and their effects on 40 quality attributes. Furthermore, we report in which
systems the 29 patterns are applied and in which combinations. The
practitioners confirmed that architectural knowledge supports software
architects with their decision-making process to select a set of patterns for a
new problem. We investigate the potential trends among architects to select
patterns. Conclusion: With the knowledge available, architects can more rapidly
select and eliminate combinations of patterns to design solutions. Having this
knowledge readily available supports software architects in making more
efficient and effective design decisions that meet their quality concerns.
