DocumentCode
635292
Title
A hands-on Java Pathfinder tutorial
Author
Mehlitz, Peter ; Rungta, Neha ; Visser, Willem
Author_Institution
NASA Ames Res. Center, Moffet Field, CA, USA
fYear
2013
fDate
18-26 May 2013
Firstpage
1493
Lastpage
1495
Abstract
Java Pathfinder (JPF) is an open source analysis system that automatically verifies Java programs. The JPF tutorial provides an opportunity to software engineering researchers and practitioners to learn about JPF, be able to install and run JPF, and understand the concepts required to extend JPF. The hands-on tutorial will expose the attendees to the basic architecture framework of JPF, demonstrate the ways to use it for analyzing their artifacts, and illustrate how they can extend JPF to implement their own analyses. One of the defining qualities of JPF is its extensibility. JPF has been extended to support symbolic execution, directed automated random testing, different choice generation, configurable state abstractions, various heuristics for enabling bug detection, configurable search strategies, checking temporal properties and many more. JPF supports these extensions at the design level through a set of stable well defined interfaces. The interfaces are designed to not require changes to the core, yet enable the development of various JPF extensions. In this tutorial we provide attendees a hands on experience of developing different interfaces in order to extend JPF. The tutorial is targeted toward a general software engineering audience-software engineering researchers and practitioners. The attendees need to have a good understanding of the Java programming language and be fairly comfortable with Java program development. The attendees are not required to have any background in Java Pathfinder, software model checking or any other formal verification techniques. The tutorial will be self-contained.
Keywords
Java; program debugging; program testing; program verification; public domain software; search problems; software architecture; symbol manipulation; JPF tutorial; Java program development; Java programming language; architecture framework; automated random testing; automatic Java program verification; bug detection; configurable search strategies; configurable state abstractions; formal verification techniques; hands-on Java PathFinder tutorial; open source analysis system; software engineering audience; software engineering practitioners; software engineering researchers; software model checking; symbolic execution; temporal property checking; Educational institutions; Java; Model checking; NASA; Software; Software engineering; Tutorials;
fLanguage
English
Publisher
ieee
Conference_Titel
Software Engineering (ICSE), 2013 35th International Conference on
Conference_Location
San Francisco, CA
Print_ISBN
978-1-4673-3073-2
Type
conf
DOI
10.1109/ICSE.2013.6606756
Filename
6606756
Link To Document