Introduction
• Model checkingis an automated technique such that given a finite state
model of a system and a formal property that systematically checks
whether the property is true of false in a given state in the model.
• It is an effective technique to identify potential design errors, and it
increases the confidence in the correctness of the system design.
• Model checking is a highly effective verification technology and is widely
used in the hardware and software fields. It has been employed in the
verification of security protocols; in the transportation sector (trains);
and in the verification of software in the space sectors.
3.
Model Checking
• Modelchecking is a formal verification technique based on graph
algorithms and formal logic.
• It allows the desired behaviour (specification) of a system to be
verified, and its approach is to employ a suitable model of the system,
and to carry out a systematic and exhaustive inspection of all states of
the model to verify that the desired properties are satisfied.
• These properties are generally safety properties such as the absence
of deadlock, request–response properties and invariants. The
systematic search shows whether a given system model truly satisfies
a particular property or not.
4.
Phases of modelchecking process
• The phases in the model checking process include the
• Modelling,
• Running and
• Analysis phases
Model Checking
• Modelchecking is an automated technique such that given a finite
state model of a system and a formal property, then a systematic
search may be conducted to determine whether the property holds
for a given state in the model.
• The set of all possible states is called the model’s state space, and
when a system has a finite state space, it is then feasible to apply
model checking algorithms to automate the demonstration of
properties, with a counter-example exhibited if the property is not
valid.
7.
• The propertiesto be validated are generally obtained from the system
specification, and they may be quite elementary; for example, a
deadlock scenario should never arise (i.e. the system should never be
able to reach a situation where no further progress is possible).
• The formal specification describes what the system should do,
whereas the model description (often automatically generated) is an
accurate and unambiguous description of how the system actually
behaves.
• The model is often expressed in a finite state machine consisting of a
finite set of states and a finite set of transitions.
8.
Concept of modelchecking
• Figure shows the structure of a
typical model checking system
where a preprocessor extracts a
state transition graph from a
program or circuit. The model
checking engine then takes the
state transition graph and a
temporal formula P and
determines whether the formula
is true or not in the model.
Advantages
• The advantagesof model theory include the fact that the user of the
model checker does not need to construct a correctness proof (as in
automated Theorem Proving or proof checking).
• Essentially, all the user needs to do is to input a description of the
program or circuit to be verified and the specification to be checked,
and to then press the return key.
• The checking process is then automatic and fast, and it provides a
counter-example if the specification is not satisfied.
11.
Conclusion
• Model checkinghas been applied to areas such as the verification of
hardware designs, embedded systems, protocol verification and
software engineering. Its algorithms have improved over the years,
and today model checking is a mature technology for verification and
debugging with many successful industrial applications.
12.
Tools for modelchecking
• There are various tools for model checking including Spin, Bandera, SMV and UppAal.
• These tools perform a systematic check on property P in all states and are applicable if the
system generates a finite behavioural model.
• Model checking tools use a model-based approach rather than a proof-rule-based
approach, and the goal is to determine whether the concurrent program satisfies a given
logical property.
• Spin is a popular open-source tool that is used for the verification of distributed software
systems (especially concurrent protocols), and it checks finite state systems with properties
specified by linear temporal logic. It generates a counter-example trace if it determines that
a property is violated.
• Spin has its own input specification language (PROMELA), and so the system to be verified
needs to be translated to the language of the model checker. The properties are specified
using LTL
13.
Tools for modelchecking
• Bandera is a tool for model checking Java source code, and it
automates the extraction of a finite state model from the Java source
code. It then translates into an existing model checker’s input
language. The properties to be verified are specified in the Bandera
Specification Language (BSL), which supports precondition and
postcondition and temporal properties.
Editor's Notes
#2 Security protocol- A sequence of operations that ensure protection of data. Used with a communications protocol, it provides secure delivery of data between two parties.
#3 Deadlock is a situation where a set of processes are blocked because each process is holding a resource and waiting for another resource acquired by some other process.
#6 Counter example: an example that opposes or contradicts an idea or theory.