  Two of the common features of business and the web are diversity and
dynamism. Diversity results in users having different preferences for the
quality requirements of a system. Diversity also makes possible alternative
implementations for functional requirements, called variants, each of them
providing different quality. The quality provided by the system may vary due to
different variant components and changes in the environment. The challenge is
to dynamically adapt to quality variations and to find the variant that best
fulfills the multi-criteria quality requirements driven by user preferences and
current runtime conditions. For service-oriented systems this challenge is
augmented by their distributed nature and lack of control over the constituent
services and their provided quality of service (QoS). We propose a novel
approach to runtime adaptability that detects QoS changes, updates the system
model with runtime information, and uses the model to select the variant to
execute at runtime. We introduce negotiable maintenance goals to express user
quality preferences in the requirements model and automatically interpret them
quantitatively for system execution. Our lightweight selection strategy selects
the variant that best fulfills the user required multi-criteria QoS based on
updated QoS values.
