Tool Support and Applications
Briefly explain Tool Support and Applications in program model checking?
Expert
Tool Support and Applications: Environment models are essential for software model checking. The problem of environment generation is difficult and it is the subject of active research. There is little tool support publicly available, most of what is available comes from academia or research labs. One such tool, BEG (BEG website) from Kansas State University, is described in more detail below.
The Bandera Environment Generator (BEG) tool builds environment models for Java components. It uses static analysis to discover the interface of the analyzed component and it uses filters (regular expressions and temporal logic formulas) and available code from the rest of the components to build precise environment models. BEG can be used in conjunction with the Bandera tool set or JPF for model checking. BEG has been applied to Java applications developed at NASA Ames and Fujitsu.
While BEG proved to be quite useful in generating environments for small systems, the tool support is much more valuable when applied to larger software systems. One such application is described in (Tkachuk, Dwyer, and Pasareanu 2003) where BEG was applied to Autopilot, a Swing-based GUI for an MD-11 autopilot simulator used at NASA. The application code consists of more than 3600 lines of code clustered in one class. The system makes intensive use of java.awt and java.swing GUI frameworks that influence the behavior of the system; the main thread of control is owned by the framework and application methods are invoked as application callbacks. To analyze the system, BEG was used to generate stubs for all the GUI framework components and to generate drivers that encode assumptions about user behavior. JPF was used to check for mode confusion properties. JPF detected a mismatch between the user model and the software’s state (encoded as an assertion violation), indicating potential mode confusion. As mentioned in (Tkachuk, Dwyer, and Pasareanu 2003), a previous effort to build an environment for this application required several months of manual work and yielded an environment model that was inconsistent with the actual environment implementation. From relatively simple assumption specifications, BEG generated an environment in less than 4 minutes that was consistent with the implementation.
Multi programming: Multiprogramming is the method of running numerous programs at a time employing timesharing. It permits a computer to do numerous things at similar time. Multiprogramming makes logical parallelis
Test-Related Code Annotation and Runtime System: As useful as test systems like JUnit are, test cases do require a significant amount of work to create and maintain, especially since they are implemented outside of the SUT sources, and need to be kept
Property Identification: In order to perform model checking, you need to specify a number of properties that the application under analysis must satisfy. JPF detects certain generic properties by default—for example, “no assertion violatio
Processor: A processor is the division a computer system which executes instructions. It is also termed as CPU.
State the forces which are responsible for the antigen-antibody reactions.
Normal 0 false false
Inserting Property Oracles: A property oracle is a program or a piece of code that says whether or not a property holds during model checking. The process of inserting this (often conditionally compiled code) in the program is called instrumentation.<
18,76,764
1932897 Asked
3,689
Active Tutors
1420208
Questions Answered
Start Excelling in your courses, Ask an Expert and get answers for your homework and assignments!!