, Volume 95, Issue 3, pp 165-166

Editorial

This is an excerpt from the content

Modern software systems are often complex, inevitably distributed, and operate in heterogeneous and highly dynamic environments. Examples of such systems include those from the service-oriented, cloud computing, and pervasive computing domains. In these domains, continuous change is the norm. Changes may occur in the requirements or in the environment in which the software is embedded. They are difficult to predict and are often outside the control of the application. Furthermore, their occurrence may be disruptive, and therefore the software must also change accordingly. In many cases, the software is required to self-react by adapting its behavior dynamically, in order to ensure required levels of service quality in changing environments. In summary, these systems are required to be adaptable, flexible, reconfigurable and, increasingly, self-managing.

It has been recognized that in order to support dynamic adaptation and self-* (autonomic) behaviors, appropriate mechanisms should be a