Week 10 Software Validation and Verification Flashcards
What is validation?
Making sure the software is doing the right thing. It is measured against the users needs.
What is verification?
Ensuring the software is doing things right, it is measured against the SRS and source code implementation.
What are the two types of analysis you can perform?
Dynamic analysis (testing/execution) Static analysis (verification/code)
What is formal verification? What are its 3 components
- Framework for modelling systems.
- A specification language.
- A verification method.
What are the classifications of approaches to verification?
- Proof based or model based?
- The degree of automation.
- Full vs property verification.
- Intended domain of the application.
- Pre vs post development.
What is Automated theorem proving?
A formal proof based verification.
The system description is a set of formula called the theory.
The specification is another formula called the theorem.
You need to prove that theorem conforms to the theory.
Is ATP fully automated?
No, it is very difficult and so requires manual human performance.
What is model checking?
A model based formal verification.
System is represented by a model.
Verification involves showing if M satisfies the specification.
Is model checking automatic?
Yes, usually for finite models.
What does the specification describe within ATP and Model checking
Whole behaviour or a single property.
What is the intended domain of formal verification?
Hardware/software/sequential/concurrent/reactive and terminating systems.
(ATP) What is decidability?
A verification is decidable if there is an effective procedure that decides whether the theorem is a member of the theory.
(ATP) What is decidability?
A verification is decidable if there is an effective procedure that decides whether the theorem is a member of the theory.
(ATP) What is semi-deciability?
When a verification is semi-decidable, it means that the procedure can always tell when the theorem is in the theory, however it cannot tell if the theorem is not in the theory.
How is a system described in ATP?
Utilising formal logic.
How do logical formalisms affect ATP.
It is a cost/benefit decision between automation/expressiveness/validity.
What is a shortcoming of ATP?
Logical proofs are unwieldy and time consuming, it must be done manually.
How is model checking implemented?
The system is modeled as a state machine, the specification is again written using logic.
Using logic you traverse the state machine to see if your specification holds.
This will result in either an OK or error trace.
What approach towards finding bugs does Model Checking use?
A systematic approach.
Where is Model Checking primarily used?
- Verification of control oriented properties.
- Hardware verification.
- Checking data oriented properties.
- Software checking