AbstractSelf-adaptive behavior is a feature which architects needs to include in their systems in order to improve its reliability. However, despite several ways to get it, it is still hard to implement a self-adaptive system focused on non-functional properties. Difficulties to express quality attributes in the system without combining business logic with the self-adaptation logic and to include new services on runtime are some of them. In this paper we propose a model-driven analysis approach to offer a mechanism which allow the desired quality requirements to be expressed in a simple and non-intrusive manner, to find the best services available in a system and, to offer a code generation mechanism which takes the models created under the...