CREDO: Modelling and analysis of evolutionary structures for distributed services

CREDO was a STREP project funded under the EU’s FP6 programme 2010-2013 (project no 033826). CORDIS website here.

In open distributed systems, the availability and requirements of components providing services vary over time. The networks need to dynamically reconfigure communication links between components at run-time in a context-aware manner. This reconfiguration includes the (dis)connection of components, but also the adaptation and updating of both components and the network. Updates may change the computation abilities of components and the coordination abilities of the network. For safety-critical systems, update should not compromise the reliability of services. Updates should be initiated and effectuated in a decentralized manner. No formal model of computation and communication exists today in which end-to-end system evolution can be expressed and validated. The use of formal models and validation techniques will significantly improve the confidence in dynamically reconfigurable systems, which are otherwise error-prone.

This project aims at a compositional modelling and validation framework for dynamically evolving software systems, separating computation, coordination, and scheduling. Exploiting this separation of concerns, we develop a uniform modelling language in which object-oriented components are combined with flexible communication and timing models. A new notion of service interface is essential, allowing separate design and validation of different components and of the network. Interface composition enables end-to-end reasoning about evolving systems. These interfaces specify services and formalize the context awareness needed for run-time coordination and reconfiguration. The framework will help developers design and maintain systems by validating reconfigurations. We focus on automatable and compositional validation techniques, including abstract simulation, synthesis, model-checking, test-generation, and verification of interface compatibility. The usefulness of the framework is assessed through case studies, and by developing an integrated tool.