Abstract
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.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
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)
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)
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)
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)
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)
Baier, C., Katoen, J.-P.: Principles of Model Checking. MIT Press, Cambridge (2008)
Weiser, M.: Program slicing. In: Proc. of Int. Conf. on Software Engineering (ICSE’81), pp. 439–449 (1981)
Tip, F.: A survey of program slicing techniques. Journal of Programming Languages 3(3), 121–189 (1995)
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)
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)
Wu, F., Yi, T.: Slicing Z specifications. ACM SIGPLAN Notices 39(8), 39–48 (2004)
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)
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)
Hatcliff, J., Dwyer, M., Zheng, H.: Slicing software for model construction. Higher-Order and Symbolic Computation 13(4), 315–353 (2000)
Emerson, E.A.: Temporal and modal logic. In: van Leeuwen, J. (ed.) Handbook of Theoretical Coomputer Science, vol. B. Elsevier Science Publishers, Amsterdam (1990)
Millett, L., Teitelbaum, T.: Slicing promela and its applications to model checking, simulation and protocol understanding. In: Proc. of Int. SPIN Workshop (1998)
Ganesh, V., Saidi, H., Shankar, N.: Slicing SAL. Technical report, Computer Science Laboratory (1999)
Thrane, C.: Slicing for UPPAAL. In: Ann. IEEE Conf. (Student Paper), pp. 1–5. IEEE, Los Alamitos (2008)
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)
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)
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)
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)
Dromey, G.R.: Behavior Engineering, http://www.behaviorengineering.org
Colvin, R., Hayes, I.J.: A semantics for Behavior Trees. Technical Report SSE-2010-03, The University of Queensland (May 2010), http://espace.library.uq.edu.au/view/UQ:204809
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)
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)
Ottenstein, K.J., Ottenstein, L.M.: The program dependence graph in a software development environment. SIGSOFT Softw. Eng. Notes 9(3), 177–184 (1984)
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)
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)
Krinke, J.: Static slicing of threaded programs. SIGPLAN Notices 33(7), 35–42 (1998)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 IFIP
About this paper
Cite this paper
Yatapanage, N., Winter, K., Zafar, S. (2010). Slicing Behavior Tree Models for Verification. In: Calude, C.S., Sassone, V. (eds) Theoretical Computer Science. TCS 2010. IFIP Advances in Information and Communication Technology, vol 323. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-15240-5_10
Download citation
DOI: https://doi.org/10.1007/978-3-642-15240-5_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-15239-9
Online ISBN: 978-3-642-15240-5
eBook Packages: Computer ScienceComputer Science (R0)