CASSANDRA: An Online Failure Prediction Strategy for Dynamically Evolving Systems
Dynamically evolving systems are characterized by components that can be inserted or removed while the system is being operated leading to unsafe run-time changes that may compromise a correct execution. To mitigate the effects of such a failure we propose an online analysis technique that admit an integration “a-priori” and a monitoring of the run-time behaviour to provide information about possible errors when these can happen. Our Cassandra technique proposes a novel run-time monitoring and verification algorithm with the ability to predict potential failures that can happens in future states of the systems. Cassandra combines design-time and run-time information. Both are used to identify the current execution state, and to drive the construction of predictions that look to a number k of steps ahead of the current execution state. This paper provides a detailed formalization of the technique then it introduces a formal definition of the Cassandra algorithms and reports some complexity measures. Finally the paper closes with a description of a first concrete implementation of the approach, and its evaluation.
Unable to display preview. Download preview PDF.
- 1.Baresi, L., Nitto, E.D., Ghezzi, C.: Towards open-world software: Issue and challenges. In: SEW-30 2006, Columbia, MD, USA, April 25-28, pp. 249–252 (2006)Google Scholar
- 3.de Alfaro, L., Henzinger, T.A.: Interface automata. In: ESEC/SIGSOFT FSE, pp. 109–120 (2001)Google Scholar
- 4.Salfner, F., Lenk, M., Malek, M.: A survey of online failure prediction methods. ACM Comput. Surv. 42(3) (2010)Google Scholar
- 9.Goldsby, H., Cheng, B.H.C., Zhang, J.: Amoeba-rt: Run-time verification of adaptive software. In: MoDELS Workshops, pp. 212–224 (2007)Google Scholar
- 12.Ghezzi, C., Mocci, A., Sangiorgio, M.: Runtime monitoring of component changes with spy@runtime. In: ICSE 2012, pp. 1403–1406 (June 2012)Google Scholar