An Intelligent Approach to Support the Making of Architectural Design Decisions in the Context of the Evaluation of Software Architectures
DOI:
https://doi.org/10.33414/rtyc.33.208-229.2018Keywords:
Software Architecture Evaluation, Design Decision-making, Artificial IntelligenceAbstract
Software Engineering needs novel tools to pursue further the goals of achieving software quality, facing the changing role of software. In this context, Software Architecture plays a key role because it directly affects the final quality. Software Architecture Evaluation validates if the architecture achieves the quality requirements, and triggers a set of design decisions. The decision-making is a very complex process driven by several human factors. Nowadays, it is argued that Artificial Intelligence-based practices can assist this process. In this work, an Artificial Intelligence-based approach for assisting architects in the design decision-making process driven by quality attributes is proposed. This first version combines quality-attribute models and an intelligent agent to support software architecture evaluation. It applies Reinforcement Learning tools to obtain a sequential architectural pattern application policy by simulation. A case study and a set of experiments illustrate the proposal with patterns commonly used in software industry.