K. Brandner, R. Weinreich: A Recommender System for Software Architecture Decision Making. In ECSA’19: European Conference on Software Architecture: Companion Proceedings, September 9-13, 2019, Paris, France, ACM, New York, NY, USA, doi: 10.1145/3344948.3344959.
Making the right design decisions for a software system is a difficult task. Inappropriate design decisions are often hard to reverse and can lead to high costs and a poor quality of the software product. To support architects in the decision-making process, we present a hybrid recommender system for software architecture decision making. The system provides recommendations for areas of system design and for design options within these areas. It uses two kinds of codified architectural knowledge for decision making: decision models for describing potential design options in a design space, and architectural profiles for documenting design decisions in different software systems. The developed recommender system is able to make recommendations early on in the decision-making process and provides more tailored recommendations the more software architecture knowledge is available. The system has been experimentally applied to microservice decision making.