Capturing software architecture knowledge for pattern-driven design

https://doi.org/10.1016/j.jss.2020.110714Get rights and content
Under a Creative Commons license
open access

Highlights

  • Systematic literature review on architectural patterns by analyzing 232 papers.

  • Identifying the impacts of 29 commonly used patterns on 40 quality attributes.

  • Applying fuzzy logic as a method for aggregating individual opinions.

  • Offering benchmarks for pattern selection in pattern-driven architecture design.

Abstract

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, intending to build 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.

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.

Keywords

Architectural patterns
Architectural styles
Quality attributes
Design decisions
Knowledge acquisition

Cited by (0)

Siamak Farshidi is a Ph.D. candidate at the Department of Information and Computer Science at Utrecht University. His research focuses on Decision Support Systems for Multi-Criteria Decision-Making (MCDM) problems in software production.

Slinger Jansen is an assistant professor at the Department of Information and Computer Science at Utrecht University. His research focuses on software product management and software ecosystems, with a strong entrepreneurial component. Jansen received his Ph.D. in computer science from Utrecht University, based on the work entitled “Customer Configuration Updating in a Software Supply Network”.

Jan Martijn van der Werf is an assistant professor at the Department of Computer Science at Utrecht University. His research focuses on modeling and analyzing behavior in software architecture of software products. Van der Werf received his Ph.D. from two universities: the Eindhoven University of Technology and the Humboldt Universität zu Berlin, on the dissertation entitled “Compositional Design and Verification of Component-based Information Systems”.