Analysis of a Session-Layer Protocol in mCRL2

This paper reports the analysis of an industrial implementation of the session-layer of a load-balancing software system. This software comprises 7.5 thousand lines of C code. It is used for distribution of the print jobs among several document processors (workers). A large part of this commercially used software system has been modeled closely and analyzed using process-algebraic techniques. Several critical issues were discovered. Since the model was close to the code, all problems that were found in the model, could be traced back to the actual code resulting in concrete suggestions for improvement of the code. All in all, the analysis significantly improved the quality of this real-life system.

[1]  Sriram K. Rajamani,et al.  Thorough static analysis of device drivers , 2006, EuroSys.

[2]  Jan Friso Groote,et al.  The Formal Specification Language mCRL2 , 2006, MMOSS.

[3]  Jan Friso Groote,et al.  Syntax and semantics of CRL , 1995 .

[4]  Gerard J. Holzmann,et al.  Software model checking with SPIN , 2005, Adv. Comput..

[5]  Boudewijn R. Haverkort,et al.  Formal Methods: Applications and Technology, 11th International Workshop, FMICS 2006 and 5th International Workshop PDMC 2006, Bonn, Germany, August 26-27, and August 31, 2006, Revised Selected Papers , 2007, FMICS/PDMC.

[6]  Matthew B. Dwyer,et al.  Translating Java for Multiple Model Checkers: The Bandera Back-End , 2005, Formal Methods Syst. Des..

[7]  D. M. Jackson,et al.  Formal verification of a fault tolerant computer , 1992, [1992] Proceedings IEEE/AIAA 11th Digital Avionics Systems Conference.

[8]  Gerard J. Holzmann,et al.  Automating software feature verification , 2000, Bell Labs Technical Journal.

[9]  Paul Pettersson,et al.  Model-Based Testing of a WAP Gateway: An Industrial Case-Study , 2006, FMICS/PDMC.

[10]  Satish Chandra,et al.  Software model checking in practice: an industrial case study , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[11]  Alain Kerbrat,et al.  CADP - A Protocol Validation and Verification Toolbox , 1996, CAV.

[12]  Karl Palmskog Notes for the Verification of the Session Management Protocol , 2022 .

[13]  Willem Visser,et al.  Model Checking Programs with Java PathFinder , 2005, SPIN.

[14]  María-del-Mar Gallardo,et al.  Towards Model Checking C Code with OPEN/CÆSAR , 2006, MSVVEIS.

[15]  Andreas Podelski,et al.  ACSAR: Software Model Checking with Transfinite Refinement , 2007, SPIN.

[16]  Ys Yaroslav Usenko,et al.  Linearization in muCRL , 2002 .

[17]  M.C.J.D. van Eekelen,et al.  Modeling and verifying a Real--Life Industrial Session--Layer Protocol in mCRL2 , 2007 .

[18]  David A. Wagner,et al.  Model Checking One Million Lines of C Code , 2004, NDSS.

[19]  J. Bergstra,et al.  Handbook of Process Algebra , 2001 .

[20]  A. Johannes Pretorius,et al.  Verified Design of an Automated Parking Garage , 2006, FMICS/PDMC.

[21]  Ryszard Janicki,et al.  Verifying protocols by model checking: a case study of the wireless application protocol and the model checker SPIN , 2004, CASCON.