Most of today's systems are complex, ditributes and networked in dynamic environments. Change is characteristic, failure a symptom often encountered. Managing such systems is a challenge for both human managers and autonomic managers. Designing systems capable of managing themselves is the goal of autonomic computing: self-configuration, self-optimisation, self-healing, and self-protecting. This thesis focuses on self-reconfiguration, one of the essential elements of self-healing.