Skip to main content

Run-time Model Projections for Software Failure Prediction

Final Report Summary - RUNMORE (Run-time Model Projections for Software Failure Prediction)

The scope of the RunMore project ( http://runmore.giordano.webfactional.com ) was to contribute to the development of conceptual foundations, engineering techniques, and computing infrastructure for the systematic development of dynamically adaptive software systems.
The long-term vision of the project is systems that are able to: (1) reason about potential changes, (2) anticipate them, and (2) give an account of adaptations they might make.

The project focused on investigating how formal models (e.g. Markov Chains) can be used to monitor and analyze the behavior of complex software systems, their deployment environment, and their users at run-time. In the RunMore vision these run-time formal models enabled system able to reason about themselves and thus able to steer their behavior to manage or anticipate unforseen changes. In particular, RunMore confirmed this initial intuition showing how formal modeling may be used to enable software systems with adaptive capabilities. One concrete example are Web applications that monitor the way in which are used by their users and consequently adapt their content and business logic to better fit the detected behavior of the users. RunMore also demonstrated how the same mechanisms can be used to adapt the policy to transmit data among distributed client/server applications (ICSOC 2013, Best Paper Award). In addition to the main stream of investigation mentioned above, RunMore also included a set of secondary research streams that have been investigated during the project. For example, a relevant finding of the project is a novel mechanism to learn Complex Event Processing rules from historical traces. This finding may enable the development of a novel class of systems able to learn complex rule to be used to trigger reconfigurations, or adaptation mechanisms (DEBS 2014, Best Paper Award).

The research activity of the project have been organized along four different pillars: (1) Adaptation Synchronization model-architecture, (2) Management of Multiple conflicting requirements and models, (3) Prototype and Tools implementation, (4) Assessment of the obtained results. Hereafter we report a brief summary of these activities.
1) Adaptation Synchronization model-architecture: in this activity we investigated the mapping between run-time models and the architecture of the running system. At the same time we also investigated the design of adaptation strategies compliant a set of given system requirements. In this context we adopted and refined a model-driven approach conceived initially for mobile systems, but in principle applicable to any general-purpose system. This approach exploits the concept of embedded model (i.e. a Discrete Time Markov chain annotated with Rewards) that is generated by developers starting from a high-level description of the system (i.e. a UML activity diagram). The embedded model is in charge of executing the system computing the required model projections leveraging a probabilistic model checking engine (i.e. PRISM). Exploiting the model projections, the embedded model steers the system execution accordingly to a set of non-functional requirements.
2) Management of Multiple conflicting requirements and models: in this activity we investigated a set of possible approaches to capture and resolve conflicts among requirements at run-time and in particular during the adaptation process. In this context we conceived a solution to requirements conflict resolution that effectively mixes probability theory and utility theory. In the proposed solution the adaptation process is performed assigning a probability of success to each and every possible adaptation strategy. Briefly, the adaptation strategy that satisfies the most critical requirements with the highest probability is selected and executed. This solution has been effectively integrated in the approach based on the notion of embedded model (see above).
3) Prototype and Tools implementation: All the approaches mentioned above have been implemented in prototypes. These prototypes have been publicly released as open-source software artifacts to improve the replicability and to promote the adoption of the project’s findings. All these software tools can be downloaded from the project’s website.
4) Assessment of the obtained results: in this initial period of the project we started to engage an industrial partner to define applicative scenarios and to assess the project’s findings. More precisely, we started collaborating with an UK based IT firm. In the context of this collaboration we were able to obtain already some interesting results investigating a case study in the domain of Web applications described that have been published in the most influential conference of Software Engineering (ICSE 2014).