4. The Importance of Software Correctness
Defects can be fatal and extremely costly
products subject to mass-production
safety-critical systems
5. What is System Verification?
System verification amounts to check whether a system fulfills the
qualitative requirements that have been identified.
Software verification techniques:
Peer reviewing
Testing
7. Formal Verification Techniques
Deductive methods
Formal proofs
Model checking
systematic check in all states
tool: model checker (Spin, NuSMV, UppAal)
Model-based simulation or testing
test by exploring possible behaviors
8. Model Checking
Model checking is a very effective technique to expose potential design
errors.
Or
Model checking is a formal verification technique based on graph
algorithms and formal logic. It allows the desired behavior (specification)
of a system to be verified, and its approach is to employ a suitable model
of the system
9. Why Model checking?
Effective technique to identify potential design errors
Widely used in the hardware and software fields
Employed in the verification of microprocessors
Security protocols
Transportation sector (trains)
Verification of software in the space sector.
10.
11. What are Models?
States labeled with basic propositions
Transition relation between states
Action-labeled transitions to facilitate composition
12. Transition system
A finite transition system is a mathematical description of the behavior of
systems, plants, controllers or environments with finite (discrete)
• inputs,
• outputs, and
• internal states and transitions between the states.
13. Transition system
A transition system is a tuple
Transition system = ( S, Act, →, S0 , AP, L)
Set of states a set of actions Initial state Labeling function
Atomic proposition
Transition
14. Atomic proposition
A proposition is a statement that can be either true or false, but not both.
An atomic proposition is one whose truth or falsity does not depend on the truth or falsity
of any other proposition.
Examples:
“Traffic light is green” is an atomic proposition”.
“If traffic light is green, the car can drive” is not an atomic proposition.
15. Labeling function
For state s, L(s) is the set of atomic propositions that are satisfied at s.
- Labels model outputs or observables.
- Actions model inputs or “communication.”
16. Example
S = {q0, q1}
Act = {rear, front, both, neither}
= {(q0, front, q1),(q1, neither, q0),
(q1, rear, q1),...}
S0 = {q0}
L(q0) = {door is not open}
L(q1) = {door is open}