Software monitoring through formal specification animation

  • Hui Liang
  • Jin Song Dong
  • Jing Sun
  • W. Eric Wong
Original Paper


This paper presents a formal specification-based software monitoring approach that can dynamically and continuously monitor the behaviors of a target system and explicitly recognize undesirable behaviors in the implementation with respect to its formal specification. The key idea of our approach is in building a monitoring module that connects a specification animator with a program debugger. The requirements information about expected dynamic behaviors of the target system are gathered from the formal specification animator, while the actual behaviors of concrete implementations of the target system are obtained through the program debugger. Based on the information obtained from both sides, the judgement on the conformance of the concrete implementation with respect to the formal specification is made timely while the target system is running. Furthermore, the proposed formal specification-based software monitoring technique does not embed any instrumentation codes to the target system nor does it annotate the target system with any formal specifications. It can detect implementation errors in a real-time manner, and help the developers and users of the system to react to the problems before critical failure occurs.


Target System Conveyor Belt Specialized Instrument Operation Schema Solar Sail 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Abercrombie P, Karaorman M (2002) jContractor: Bytecode instrumentation techniques for implementing design by contract in Java. In: Proceedings of second workshop on runtime verification (RV’02)Google Scholar
  2. 2.
    Barnett M, Rustan K, Schulte W (2004) The Spec# programming system: an overview. In: Proceedings of international workshop on construction and analysis of safe, secure, and interoperable smart devices, pp 49–69Google Scholar
  3. 3.
    Bartetzko D, Fischer C, Moller M, Wehrheim H (2001) Jass—Java with assertions. In: Proceedings of first workshop on runtime verification, RV’01Google Scholar
  4. 4.
    Chen F, D’Amorim M, Roşu G (2004) A formal monitoring-based framework for software development and analysis. In: Proceedings of the 6th international conference on formal engineering methods (ICFEM’04), Springer, Heidelberg, pp 357–373Google Scholar
  5. 5.
    Drusinsky D (2000) The temporal rover and the ATG rover. In: Proceedings of the 7th international SPIN workshop on SPIN model checking and software verification, pp 323–330Google Scholar
  6. 6.
    Havelund K, Roşu G (2001) Java PathExplorer—a runtime verification tool. In: Proceedings of 6th international symposium on artificial intelligence, robotics and automation in space, ISAIRAS’01Google Scholar
  7. 7.
    Hlady M, Kovacevic R, Li JJ, Pekilis B, Prairie D, Savor T, Seviora R, Simser D, Vorobiev A (1995) An approach to automatic detection of software failures. In: Proceedings of sixth international symposium on software reliability engineeringGoogle Scholar
  8. 8.
    Kim M, Kannan S, Lee I, Sokolsky O (2001) Java-MaC: a run-time assurance tool for Java. In: Proceedings of first workshop on runtime verification, RV’01Google Scholar
  9. 9.
    Karaorman M, Abercrombie P (2005) jContractor: introducing design-by-contract to Java using reflective bytecode instrumentation. Formal Methods Syst Des 27(3): 275–312zbMATHCrossRefGoogle Scholar
  10. 10.
    Satpathy M, Leuschel M, Butler MJ (2005) ProTest: an automatic test environment for B specifications. Electron. Notes Theor Comp Sci 111: 113–136CrossRefGoogle Scholar
  11. 11.
    Liang H, Dong JS, Sun J, Duke R, Seviora RE (2006) Formal Specification-based Online Monitoring. In: ICECCS ’06: proceedings of the 11th IEEE international conference on engineering of complex computer systems, Washington, DC, USA, IEEE Computer Society, Los Alamitos, pp 152–160Google Scholar
  12. 12.
    Jacky J (1997) The way of Z: practical programming with formal methods. Cambridge University Press, CambridgeGoogle Scholar
  13. 13.
    Spivey J (1989) The Z notation: a reference manual. Prentice-Hall, Englewood CliffszbMATHGoogle Scholar
  14. 14.
    Woodcock J, Davies J (1996) Using Z: specification, refinement, and proof. Prentice-Hall, Englewood CliffszbMATHGoogle Scholar
  15. 15.
    Miller T, Strooper P (2000) A framework for systematic specification animation. Technical report 02-35, The University of QueenslandGoogle Scholar
  16. 16.
    Miller T, Strooper P (2002) Model-based specification animation using testgraphs. In: ICFEM ’02: proceedings of the 4th international conference on formal engineering methods, Springer, Heidelberg, pp 192–203Google Scholar
  17. 17.
    Hewitt MA, O’Halloran C, Sennett CT (1997) Experiences with PiZA, an animator for Z. In: ZUM ’97: Proceedings of the 10th international conference of Z users on the Z formal specification notation, Springer, Heidelberg, pp 37–51Google Scholar
  18. 18.
    Hazel D, Strooper P, Traynor O (1997) Possum: an animator for the SUM specification language. In: APSEC ’97: proceedings of the fourth Asia-Pacific software engineering and international computer science conference, IEEE Computer Society, Los Alamitos, p 42Google Scholar
  19. 19.
    Hazel D, Strooper P, Traynor O (1998) Requirements engineering and verification using specification animation. In: ASE ’98: Proceedings of the Thirteenth IEEE Conference on Automated Software Engineering, IEEE Computer Society, Los Alamitos, p 302Google Scholar
  20. 20.
    Waeselynck H, Behnia S (1998) B model animation for external verification. In: Proceedings of the second IEEE international conference on formal engineering methods, ICFEM ’98, pp 36–45Google Scholar
  21. 21.
    Utting M (2000) Data structures for Z testing tools. In: Proceedings of FM-TOOLSGoogle Scholar
  22. 22.
    jdb - The Java debugger. (
  23. 23.
    Achuthan R, Alagar VS, Radhakrishnan T (1995) An object-oriented modeling of real-time robotic assembly system. In: Proceedings of the 1st IEEE international conference on engineering of complex computer systems (ICECCS ’95), pp 310–313Google Scholar
  24. 24.
    Alagar VS, Ramanathan G (1991) Functional specification and proof of correctness for time dependent behaviour of reactive systems. Formal Aspect Comput 3(3): 253–283CrossRefGoogle Scholar
  25. 25.
    Dong JS, Colton J, Zucconi L (1996) A formal object approach to real-time specification. In: Proceedings of the 3rd Asia-Pacific software engineering conference (APSEC’96)Google Scholar
  26. 26.
    Curtis SA, Mica J, Nuth J, Marr G, Rilee ML, Bhat MK (2000) ANTS (Autonomous Nano-Technology Swarm): an artificial intelligence approach to asteroid belt resource exploration. In: Proceedings of international astronautical federation, 51st CongressGoogle Scholar
  27. 27.
    Curtis SA, Truszkowski WF, Rilee ML, Clark PE (2003) ANTS for human exploration and development of space. In: Proceedings of IEEE aerospace conferenceGoogle Scholar
  28. 28.
    Hinchey MG, Dai YS, Rouff CA, Rash JL, Qi MR (2007) Modeling for NASA autonomous nano-technology swarm missions and model-driven autonomic computing. In: AINA ’07: Proceedings of the 21st international conference on advanced networking and applications, pp 250–257Google Scholar
  29. 29.
    Truszkowski WE, Hinchey MG, Rash JL, Rouff CA (2004) NASA’s swarm missions: the challenge of building autonomous software. IT Prof 6(5): 47–52CrossRefGoogle Scholar
  30. 30.
    Truszkowski WE, Hinchey MG, Rash JL, Rouff CA (2006) Autonomous and autonomic systems: a paradigm for future space exploration mission. IEEE Trans Syst Man Cybermet Part C Appl Rev 36(3): 279–291CrossRefGoogle Scholar
  31. 31.
    Hinchey MG, Rouff CA, Rash JL, Truszkowski WF (2005) Requirements of an integrated formal method for intelligent swarms. In: FMICS ’05: Proceedings of the 10th international workshop on formal methods for industrial critical systems, pp 125–133Google Scholar
  32. 32.
    Schroeder BA (1995) On-line monitoring: a tutoiral. IEEE Comp 28(6): 72–78Google Scholar

Copyright information

© Springer-Verlag London Limited 2009

Authors and Affiliations

  • Hui Liang
    • 1
  • Jin Song Dong
    • 1
  • Jing Sun
    • 2
  • W. Eric Wong
    • 3
  1. 1.School of ComputingNational University of SingaporeSingaporeSingapore
  2. 2.Department of Computer ScienceThe University of AucklandAucklandNew Zealand
  3. 3.Department of Computer ScienceUniversity of Texas at DallasTexasUSA

Personalised recommendations