An Intelligent Approach to Support Software Architecture Decision-making in the Context of Software Architecture Evaluation - Bogado, Verónica (2016)
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. 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.