Start Date: May-2012 End Date: May-2013
Keywords: Self-adaptation, self-healing software systems, self-managing software systems, verification and validation of self-adaptative systems.
Members: Gabriel Tamura (project leader), Norha Villegas, Angela Villota, Miguel Jimenez, Andrés Villegas
The main goal of this project is to characterize requirements specification and corresponding verification and validation (V&V) methods. Based on this characterize, to propose models and incorporate them and corresponding suitable V&V methods for them in a controlling feedback-loop that dynamically monitors the satisfaction of the system requirements, as proposed by Tamura et al. 
 G. Tamura, N.M. Villegas, H.A. Müller, et al. Towards Practical Runtime Verification and Validation of Self-Adaptive Software Systems. In Software Engineering for Self-Adaptive Systems 2, volume 7475 of LNCS, pages 108–132. Springer, (2012)
Over the last 10 years, self-adaptation has been used for several purposes in the engineering of software systems, from self-management to self-optimization and self-healing, using a wide variety of approaches. The main objective of this project is to explore the State of the Art on the Self-Healing research topic, in the context of the evolutionary research work of the INRIA ADAM project team (Adaptive Distributed Applications and Middleware), in which Professor G. Tamura developed his PhD. This exploration is expected to help state research questions whose investigation will strengthen collaboration actions between Icesi University, INRIA-Lille – University of Lille 1, and University of Paris 1 – Pantheon Sorbonne.
Three main activities will be developed:
1. Perform a state-of-the-art survey on both: (i) requirements engineering for self-adaptive software systems and corresponding V&V techniques; and (ii) self-healing approaches, specifications and properties, (both at the fine-grained (i.e., source code) and coarse-grained (i.e., components and services) levels.
2. Explore the applicability of fine-grained approaches based on source code to heal components and services based systems. For example, one possibility is to exploit data-mining techniques on source-code repositories for healing services at the component level.
3. Explore software testing techniques based on source-code as a means for runtime verification and validation of self-adaptation.