A framework for model checking UDP network programs with Java pathfinder

Complex asynchronous, distributed systems could benefit significantly from model checking, but model checking programs do not natively support verification of distributed software. Several frameworks have been developed recently that apply model checking to networked software, but none of these frameworks support complete modeling of programs that use the User Datagram Protocol (UDP). This paper presents the first framework to model realistic rather than ideal UDP network operations using Java Pathfinder, and describes its use in verifying a distributed UDP-based application.

[2]  Yanhong A. Liu,et al.  Transformations for model checking distributed Java programs , 2001, SPIN '01.

[3]  Cyrille Artho,et al.  Efficient Model Checking of Networked Applications , 2008, TOOLS.

[4]  Cyrille Artho,et al.  Cache-Based Model Checking of Networked Applications: From Linear to Branching Time , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[5]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[6]  Tevfik Bultan,et al.  Netstub: a framework for verification of distributed java applications , 2007, ASE '07.

[7]  Cyrille Artho,et al.  Accurate Centralization for Applying Model Checking on Networked Applications , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[8]  Dawson R. Engler,et al.  Model Checking Large Network Protocol Implementations , 2004, NSDI.

[9]  Nastaran Shafiei,et al.  Extending JPF to verify distributed systems , 2014, SOEN.

[10]  Klaus Havelund,et al.  Model checking JAVA programs using JAVA PathFinder , 2000, International Journal on Software Tools for Technology Transfer.

[11]  Brad Richards Bugs as features: teaching network protocols through debugging , 2000, SIGCSE '00.