Model Checking: Model-Based Verification Techniques Are Based On Models Describing The Possible
Model Checking: Model-Based Verification Techniques Are Based On Models Describing The Possible
Introduction
In software and hardware design of complex systems, more time and effort are
spent on verification than on construction. Formal methods offer a large potential
to obtain an early integration of verification in the design process, to provide more
effective verification techniques, and to reduce the verification time.
During the last two decades, research in formal methods has led to the
development of some very promising verification techniques that facilitate the
early detection of defects. These techniques are accompanied by powerful software
tools that can be used to automate various verification steps.
Model checking is a verification technique that explores all possible system states
in a brute-force manner. Similar to a computer chess program that checks possible
moves, a model checker, the software tool that performs the model checking,
examines all possible system scenarios in a systematic manner. In this way, it can
be shown that a given system model truly satisfies a certain property. It is a real
challenge to examine the largest possible state spaces that can be treated with
current means, i.e., processors and memories. State of-the-art model checkers can
handle state spaces of about 108 to 109 states with explicit state-space
enumeration. Using clever algorithms and tailored data structures, larger state
spaces (1020 up to even 10476 states) can be handled for specific problems.
Schematic view of the model checking approach
• It is not vulnerable to the likelihood that an error is exposed; this contrasts with
testing and simulation that are aimed at tracing the most probable defects.
It verifies a system model, and not the actual system (product or prototype) itself;