--%>

Scalability aspects of a Java PathFinder

Scalability of program model checkers such as JPF encompasses two aspects:

  • How large a program can be model checked, and
  • Once a defect has been detected, how readily meaningful debugging information can be derived from trace.

How large a program JPF can model check is highly dependent on the structure and amount of nondeterminism in the application. For example, UI applications or certain Web applications which have a central control loop (i.e., reactive state machines) that reacts to user input or signals from the environment are amenable to model checking. We have applied JPF successfully to multithreaded Mars Rover software which was around ten thousand lines of code (10 KLOC.) We have also applied JPF successfully to multithreaded UI programs with 33 KLOC of application source plus many more lines of code in the libraries. At this point, the largest program checked by JPF is a commercial Web application of several hundred thousand lines of code, in which JPF found a deadlock involving about 20 threads; JPF executed more than 200 million byte code instructions of the target application in about 4 hours. 

The second aspect of scalability is the ability to derive meaningful debugging information from an execution trace that manifests a defect. This sense of scalability can represent a severe limitation if the defect occurs long into the program execution. JPF provides limited capabilities here—for example, JPF’s DeadlockAnalyzer and ChoiceTracker, which are used in user interface applications to generate trace reports showing only user-input events. They are used also in analyzing Unified Modeling Language (UML) to limit trace reports to showing only state-machine environment events.

   Related Questions in Programming Languages

  • Q : Define Sign bit Sign bit : In

    Sign bit: In 2s-complement notation, the most important bit in an integer value is employed to determine the sign of the value. A 1-bit point out a negative number and a 0 bit point out a positive number.

  • Q : Define the term Key value Define the

    Define the term Key value: The object employed to produce an associated hash code for look-up in an associative data structure.

  • Q : What is applet? Explain life cycle of

    Ans. Applet: An applet is an application designed to travel over the internet and to be executed on the client machine by a java compatible

  • Q : Fact table and dimension table describe

    describe the foreign key in fact table and dimension table

  • Q : Introduction to Programming for

    The purpose of this assignment is to get you started with C++ programming. You'll develop simple programs (with input and output) to solve simple mathematical and engineering problems. 1. Write a program to compute the area A of an

  • Q : ArrayLists I. The Assignment The

    I. The Assignment The Bashemin Parking Garage contains a single lane that can hold up to ten cars.  Arriving cars enter the garage at the rear and are parked in the empty space nearest to the front.  Departing cars exit only from the front.  If a cu

  • Q : Define Continue statement Continue

    Continue statement: A statement which might only be employed within the body of a loop. In case of a while loop or do loop, control passes instantly to the loop's terminating test. In case of a for loop, the control passes to the post-body update expr

  • Q : How can I get an exact image in a web

    How can I get an exact image in a web page?

  • Q : Questions on java class Array 1.

    1. Suppose we have a class A which has a constructor that takes a single integer. (a) After the following statements have been executed, how many A objects will exist

  • Q : Explain Right shift operator Right

    Right shift operator: Right shift operator (>>) is the bit manipulation operator. It shifts the bits in its left operand zero (0) or many places to the right, according to the value of its accurate operand. The most important bit from before the