CASSANDRA: An Online Failure Prediction Strategy for Dynamically Evolving Systems

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8829)


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.

Unable to display preview. Download preview PDF.


  1. 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
  2. 2.
    Mariani, L., Pastore, F., Pezzè, M.: Dynamic analysis for diagnosing integration faults. IEEE Trans. Software Eng. 37(4), 486–508 (2011)CrossRefGoogle Scholar
  3. 3.
    de Alfaro, L., Henzinger, T.A.: Interface automata. In: ESEC/SIGSOFT FSE, pp. 109–120 (2001)Google Scholar
  4. 4.
    Salfner, F., Lenk, M., Malek, M.: A survey of online failure prediction methods. ACM Comput. Surv. 42(3) (2010)Google Scholar
  5. 5.
    de Alfaro, L., Henzinger, T.A., Mang, F.Y.C.: Detecting errors before reaching them. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, pp. 186–201. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  6. 6.
    Liu, S., Offutt, A., Ho-Stuart, C., Sun, Y., Ohba, M.: Sofl: a formal engineering methodology for industrial applications. IEEE Transactions on Software Engineering 24(1), 24–45 (1998)CrossRefGoogle Scholar
  7. 7.
    Chatley, R., Savani, R., Kramer, J., Magee, J., Uchitel, S.: Predictable dynamic plugin systems. In: Wermelinger, M., Margaria-Steffen, T. (eds.) FASE 2004. LNCS, vol. 2984, pp. 129–143. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  8. 8.
    Barringer, H., Gabbay, D.M., Rydeheard, D.E.: From runtime verification to evolvable systems. In: Sokolsky, O., Taşıran, S. (eds.) RV 2007. LNCS, vol. 4839, pp. 97–110. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  9. 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
  10. 10.
    Baresi, L., Guinea, S.: Towards dynamic monitoring of WS-BPEL processes. In: Benatallah, B., Casati, F., Traverso, P. (eds.) ICSOC 2005. LNCS, vol. 3826, pp. 269–282. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  11. 11.
    Filieri, A., Ghezzi, C., Tamburrelli, G.: A formal approach to adaptive software: continuous assurance of non-functional requirements. Formal Aspects of Computing 24, 163–186 (2012)MathSciNetCrossRefzbMATHGoogle Scholar
  12. 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

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  1. 1.Computer Science DivisionUniversity of CamerinoItaly
  2. 2.Dipartimento di InformaticaUniversity of L’AquilaItaly

Personalised recommendations