Slicing Behavior Tree Models for Verification

  • Nisansala Yatapanage
  • Kirsten Winter
  • Saad Zafar
Part of the IFIP Advances in Information and Communication Technology book series (IFIPAICT, volume 323)


Program slicing is a reduction technique that removes irrelevant parts of a program automatically, based on dependencies. It is used in the context of documentation to improve the user’s understanding as well as for reducing the size of a program when analysing. In this paper we describe an approach for slicing not program code but models of software or systems written in the graphical Behavior Tree language. Our focus is to utilise this reduction technique when model checking Behavior Tree models. Model checking as a fully automated analysis technique is restricted in the size of the model and slicing provides one means to improve on the inherent limitations. We present a Health Information System as a case study. The full model of the system could not be verified due to memory limits. However, our slicing algorithm renders the model to a size for which the model checker terminates. The results nicely demonstrate and quantify the benefits of our approach.


Execution Time Model Check Linear Temporal Logic Control Flow Graph Temporal Logic Formula 
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.
    Dromey, R.G.: From requirements to design: Formalizing the key steps. In: Proc. of Software Engineering and Formal Methods (SEFM 2003), pp. 2–13. IEEE Computer Society, Los Alamitos (2003)Google Scholar
  2. 2.
    Dromey, R.G.: Genetic design: Amplifying our ability to deal with requirements complexity. In: Leue, S., Systä, T.J. (eds.) Scenarios: Models, Transformations and Tools. LNCS, vol. 3466, pp. 95–108. Springer, Heidelberg (2005)Google Scholar
  3. 3.
    Grunske, L., Lindsay, P.A., Yatapanage, N., Winter, K.: An automated failure mode and effect analysis based on high-level design specification with behavior trees. In: Romijn, J.M.T., Smith, G.P., van de Pol, J. (eds.) IFM 2005. LNCS, vol. 3771, pp. 129–149. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  4. 4.
    Grunske, L., Winter, K., Yatapanage, N.: Defining the abstract syntax of visual languages with advanced graph grammars-a case study based on Behavior Trees. Journal of Visual Language and Computing 19(3), 343–379 (2008)CrossRefGoogle Scholar
  5. 5.
    Colvin, R., Grunske, L., Winter, K.: Timed behavior trees for failure mode and effects analysis of time-critical systems. Journal of Systems and Software 81(12), 2163–2182 (2008)CrossRefGoogle Scholar
  6. 6.
    Baier, C., Katoen, J.-P.: Principles of Model Checking. MIT Press, Cambridge (2008)zbMATHGoogle Scholar
  7. 7.
    Weiser, M.: Program slicing. In: Proc. of Int. Conf. on Software Engineering (ICSE’81), pp. 439–449 (1981)Google Scholar
  8. 8.
    Tip, F.: A survey of program slicing techniques. Journal of Programming Languages 3(3), 121–189 (1995)Google Scholar
  9. 9.
    Xu, B., Qian, J., Zhang, X., Wu, Z., Chen, L.: A brief survey of program slicing. SIGSOFT Softw. Eng. Notes 30(2), 1–36 (2005)CrossRefGoogle Scholar
  10. 10.
    Oda, T., Araki, K.: Specification slicing in formal methods of software development. In: Proc. of Computer Software and Applications Conference (COMSAC 93), pp. 313–319. IEEE, Los Alamitos (2005)Google Scholar
  11. 11.
    Wu, F., Yi, T.: Slicing Z specifications. ACM SIGPLAN Notices 39(8), 39–48 (2004)CrossRefGoogle Scholar
  12. 12.
    Heimdahl, M., Whalen, M.: Reduction and slicing of heirarchical state machines. In: Jazayeri, M., Schauer, H. (eds.) ESEC 1997 and ESEC-FSE 1997. LNCS, vol. 1301, pp. 450–467. Springer, Heidelberg (1997)Google Scholar
  13. 13.
    Dorel, B., Singh, I., Tahat, L., Vaysburg, S.: Slicing of state-based models. In: Proc. of Int. Conf. on Software Maintenance (ICSM 2003), pp. 34–43. IEEE, Los Alamitos (2003)Google Scholar
  14. 14.
    Hatcliff, J., Dwyer, M., Zheng, H.: Slicing software for model construction. Higher-Order and Symbolic Computation 13(4), 315–353 (2000)zbMATHCrossRefGoogle Scholar
  15. 15.
    Emerson, E.A.: Temporal and modal logic. In: van Leeuwen, J. (ed.) Handbook of Theoretical Coomputer Science, vol. B. Elsevier Science Publishers, Amsterdam (1990)Google Scholar
  16. 16.
    Millett, L., Teitelbaum, T.: Slicing promela and its applications to model checking, simulation and protocol understanding. In: Proc. of Int. SPIN Workshop (1998)Google Scholar
  17. 17.
    Ganesh, V., Saidi, H., Shankar, N.: Slicing SAL. Technical report, Computer Science Laboratory (1999)Google Scholar
  18. 18.
    Thrane, C.: Slicing for UPPAAL. In: Ann. IEEE Conf. (Student Paper), pp. 1–5. IEEE, Los Alamitos (2008)CrossRefGoogle Scholar
  19. 19.
    Leuschel, M., Llorens, M., Olivier, J., Silva, J., Tamarit, S.: The MEB and CEB static analysis for CSP specifications. In: Hanus, M. (ed.) LOPSTR 2008. LNCS, vol. 5438, pp. 103–118. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  20. 20.
    Brückner, I., Wehrheim, H.: Slicing an integrated formal method for verification. In: Lau, K.-K., Banach, R. (eds.) ICFEM 2005. LNCS, vol. 3785, pp. 360–374. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  21. 21.
    Wen, L., Dromey, R.G.: From requirements change to design change: A formal path. In: Proc. of Int. Conf. on Software Engineering and Formal Methods (SEFM 2004), pp. 104–113. IEEE Computer Society, Los Alamitos (2004)Google Scholar
  22. 22.
    Zafar, S., Colvin, R., Winter, K., Yatapanage, N., Dromey, R.G.: Early validation and verification of a distributed role-based access control model. In: Proc. of Asia-Pacific Software Engineering Conference (APSEC 2007), pp. 430–437. IEEE Computer Society, Los Alamitos (2007)CrossRefGoogle Scholar
  23. 23.
    Dromey, G.R.: Behavior Engineering,
  24. 24.
    Colvin, R., Hayes, I.J.: A semantics for Behavior Trees. Technical Report SSE-2010-03, The University of Queensland (May 2010),
  25. 25.
    Colvin, R., Hayes, I.J.: Csp with hierarchical state. In: Leuschel, M., Wehrheim, H. (eds.) IFM 2009. LNCS, vol. 5423, pp. 118–135. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  26. 26.
    de Moura, L., Owre, S., Rueß, H., Rushby, J., Shankar, N., Sorea, M., Tiwari, A.: SAL 2. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 496–500. Springer, Heidelberg (2004)Google Scholar
  27. 27.
    Ottenstein, K.J., Ottenstein, L.M.: The program dependence graph in a software development environment. SIGSOFT Softw. Eng. Notes 9(3), 177–184 (1984)CrossRefGoogle Scholar
  28. 28.
    Ferrante, J., Ottenstein, K.J., Warren, J.D.: The program dependence graph and its use in optimization. ACM Trans. Program. Lang. Syst. 9(3), 319–349 (1987)zbMATHCrossRefGoogle Scholar
  29. 29.
    Ranganath, V.P., Amtoft, T., Banerjee, A., Hatcliff, J., Dwyer, M.B.: A new foundation for control dependence and slicing for modern program structures. ACM Trans. Program. Lang. Syst. 29(5), 27 (2007)CrossRefGoogle Scholar
  30. 30.
    Krinke, J.: Static slicing of threaded programs. SIGPLAN Notices 33(7), 35–42 (1998)CrossRefGoogle Scholar
  31. 31.
    Evered, M., Bögeholz, S.: A case study in access control requirements for a health information system. In: Proc. of Workshop on Australasian Information Security, Data Mining and Web Intelligence, and Software Internationalisation, vol. 32, pp. 53–61. Australian Computer Society, Inc. (2004)Google Scholar

Copyright information

© IFIP 2010

Authors and Affiliations

  • Nisansala Yatapanage
    • 1
  • Kirsten Winter
    • 2
  • Saad Zafar
    • 3
  1. 1.Institute for Integrated and Intelligent SystemsGriffith UniversityNathanAustralia
  2. 2.School of Information Technology and Electrical EngineeringThe University of QueenslandSt.LuciaAustralia
  3. 3.Riphah International UniversityRawalpindiPakistan

Personalised recommendations