Slicing Behavior Tree Models for Verification

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.

[1]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[2]  M. Eliantonio,et al.  Private Parties and the Annulment Procedure: Can the Gap in the European System of Judicial Protection Be Closed? , 2010 .

[3]  C. Thrane,et al.  Slicing for uppaal , 2008, 2008 Annual IEEE Student Paper Conference.

[4]  Natarajan,et al.  Slicing SAL , 1999 .

[5]  Jens Krinke,et al.  Static slicing of threaded programs , 1998, PASTE '98.

[6]  Christel Baier,et al.  Principles of model checking , 2008 .

[7]  Baowen Xu,et al.  A brief survey of program slicing , 2005, SOEN.

[8]  Bogdan Korel,et al.  Slicing of state-based models , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[9]  Michael Leuschel,et al.  The MEB and CEB Static Analysis for CSP Specifications , 2009, LOPSTR.

[10]  Matthew B. Dwyer,et al.  Slicing Software for Model Construction , 2000, High. Order Symb. Comput..

[11]  Lian Wen,et al.  From requirements change to design change: a formal path , 2004, Proceedings of the Second International Conference on Software Engineering and Formal Methods, 2004. SEFM 2004..

[12]  Robert Colvin,et al.  Early Validation and Verification of a Distributed Role-Based Access Control Model , 2007, 14th Asia-Pacific Software Engineering Conference (APSEC'07).

[13]  Ashish Tiwari,et al.  Sal 2 , 2004, CAV.

[14]  Thomas A. Alspaugh,et al.  An architectural pattern for non-functional dependability requirements , 2005, ACM SIGSOFT Softw. Eng. Notes.

[15]  Tong Yi,et al.  Slicing Z specifications , 2004, SIGP.

[16]  R. Geoff Dromey,et al.  From requirements to design: formalizing the key steps , 2003, First International Conference onSoftware Engineering and Formal Methods, 2003.Proceedings..

[17]  Mehdi Jazayeri,et al.  Software Engineering — ESEC/FSE'97 , 1997, Lecture Notes in Computer Science.

[18]  Lars Grunske,et al.  Timed Behavior Trees for Failure Mode and Effects Analysis of time-critical systems , 2008, J. Syst. Softw..

[19]  Mats Per Erik Heimdahl,et al.  Reduction and slicing of hierarchical state machines , 1997, ESEC '97/FSE-5.

[20]  Karl J. Ottenstein,et al.  The program dependence graph in a software development environment , 1984, SDE 1.

[21]  Peter A. Lindsay,et al.  An Automated Failure Mode and Effect Analysis Based on High-Level Design Specification with Behavior Trees , 2005, IFM.

[22]  E. Allen Emerson,et al.  Temporal and Modal Logic , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[23]  Robert Colvin,et al.  CSP with Hierarchical State , 2009, IFM.

[24]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[25]  R. Geoff Dromey Genetic Design: Amplifying Our Ability to Deal With Requirements Complexity , 2003, Scenarios: Models, Transformations and Tools.

[26]  Tornohiro ODA,et al.  Specification slicing in formal methods of software development , 1993, Proceedings of 1993 IEEE 17th International Computer Software and Applications Conference COMPSAC '93.

[27]  Mark Evered,et al.  A Case Study in Access Control Requirements for a Health Information System , 2004, ACSW.

[28]  Lars Grunske,et al.  Defining the abstract syntax of visual languages with advanced graph grammars - A case study based on behavior trees , 2008, J. Vis. Lang. Comput..

[29]  Heike Wehrheim,et al.  Slicing an Integrated Formal Method for Verification , 2005, ICFEM.

[30]  Stefan Leue,et al.  Scenarios: Models, Transformations and Tools, International Workshop, Dagstuhl Castle, Germany, September 7-12, 2003, Revised Selected Papers , 2005, Scenarios: Models, Transformations and Tools.

[31]  Ian J. Hayes,et al.  A semantics for behavior trees , 2010 .

[32]  Matthew B. Dwyer,et al.  A new foundation for control dependence and slicing for modern program structures , 2005, TOPL.

[33]  Lynette I. Millett,et al.  Slicing Promela and its Applications to Model Checking, Simulation, and Protocol Understanding , 2002 .

[34]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[35]  Ajitha Rajan,et al.  Requirements Coverage as an Adequacy Measure for Conformance Testing , 2008, ICFEM.