Making Software Systems Dependable and Capable of Adapting 

Rogério de Lemos  Software systems are becoming increasingly central to the support of everyday activities, and for that reason it is important to improve their dependability and optimize their performance, while at the same time reducing their development and operational costs. This is particularly relevant, for instance, in applications such as renewable power plants, where uncertainty in the operating conditions is common. This is where the Assuring Dependability in Architecture-based Adaptive Systems (ADAAS) project, carried out in the scope of the CMU Portugal Program, comes in. 


Led by Rogério de Lemos, faculty member at the Faculdade de Ciências e Tecnologia da Universidade de Coimbra (FCTUC), in Portugal, together with David Garlan, from CMU, the main outcomes of the ADAAS project had a concrete impact on Critical Software, who “will be changing its practices on how to develop self-adaptive software systems,” explained Rogério de Lemos.

CMU Portugal: What were the main outcomes of the Assuring Dependability in Architecture-based Adaptive Systems (ADAAS) project?
Rogério de Lemos (RL): In terms of applying architecture-based solutions to self-adaptive software systems, and in particular CMU’s Rainbow [Architecture-based Adaptation of Complex Systems], the main outcomes of the project can be viewed from two perspectives: during run-time, architecture-based solutions are more resilient to faults and they react quickly to changes; during development-time, the solutions are more easily maintained and incorporated into legacy systems. In order to achieve the outcomes mentioned above, the ADAAS project has established innovative procedures for evaluating the resilience of self-adaptive systems. In addition to these findings, there were other equally important results, such as an improved fault detection algorithm that allows events to identify faults, which are detected indirectly by observing lower level events. Another important outcome was a goal-based approach to self-adaptation that encompasses a technique to dynamically generate adaptation strategies from high-level goal policies, and the fact that we used different approaches to support the dynamic adaptation of replicated data grids.

CMU Portugal: What is the main impact of these outcomes?
Rogério de Lemos (RL): One concrete impact of these outcomes is that Critical Software will be changing its practices on how to develop self-adaptive software systems. They have noticed that it is important to have not only a separate entity, such as a controller, for managing the changes in the target systems or its environment, but also a language, such as Stitch, to represent the strategies that manage the adaptation.

CMU Portugal: Is the ADAAS solution being applied to one of the Critical Software projects? Could you tell us a little bit more about this technology transfer experience?
RL: In order for ADAAS to evaluate architecture-based self-adaptive solutions, Critical Software, the industrial partner of ADAAS, has made one of their products available – the Data Acquisition and Control Service (DCAS). DCAS is a middleware used to monitor and manage highly populated networks of devices in renewable energy production plants. This is a proprietary software that has allowed us to perform several evaluations on the resilience of architecture-based self-adaptive software systems. Several of the results related to this work have either been published already, or are in the process of being published. During the process of incorporating Rainbow into DCAS, Critical Software and ADAAS researchers held several regular and ad hoc meetings. In those meetings, ADAAS researchers would describe the novel approaches being incorporated into DCAS, and discuss the results obtained. Right from the beginning, Critical Software acknowledged the advantages of incorporating into their practices the technical solutions adopted by ADAAS.

CMU Portugal: Recently, both PIs [Rogério de Lemos (FCTUC) and David Garlan (CMU)] were members of the organizing committee of the Dagstuhl Seminar on “Software Engineering for Self-Adaptive Systems: Assurances,” which took place in December 2013. How was this event important for the project and for the research team involved?
RL: The motivation to organize this Dagstuhl seminar on assurances for self-adaptive software systems actually came from initial discussions within ADAAS. It was clear that a special forum was necessary to discuss the current state of the art, and to identify challenges in the area. Unfortunately, since this Dagstuhl seminar was organized very late in the project’s lifetime, it had little impact back on the project. However, the experience obtained in ADAAS was very useful for setting up the agenda of the discussions. Some of the presentations at the Dagstuhl seminar were directly related to the outcomes of the ADAAS project. However, since the work started with the seminar will continue through working groups, the members of the ADAAS project will have the opportunity to have an impact on the research agenda for the area.

The ADAAS project focuses on provision of self-adaptability to enhance system dependability and reduce overall operational costs, and to improve support for the practical applications of self-adaptation. The project started in 2010 and was completed in 2013. The project was carried out by the Faculdade de Ciências e Tecnologia da Universidade de Coimbra (FCTUC), Fundação da Faculdade de Ciências (FCUL), INESC/ID, Instituto Superior Técnico of the Universidade de Lisboa (IST/UL), and Carnegie Mellon University, with Critical Software. ADDAS aims at developing a language to express adaptability strategies that can be dynamically generated and modified.