1a.The notion of Verification and Validation. Overview of typical verification and validation activities during software development. (L01a)
This includes verification of requirement specification
Modelling and verifying designs
Source code verification and unit testing
1b. Efficient verification of complex systems by symbolic model checking (L08a)
Included model checking with set operations
Representation of states with boolean function. Construction of characteristic function
2a. Basic formalism for modelling behavior: Kripke Structure. Labeled Transition System, Kripke Transition System, Finite Automata, Timed Automata
Kripke Structure: properties of state: labeling by AP
LTL: properties of transitions: labeling by actions
KTS: properties of both
FSA: states and transitions
TA: for modeling time-dependent behavior, labeling with clock-variables
2b. Formal relations for refinement checking: May Preorder and Must Preorder and their relationship with testing.
May Preorder: successful T1, may also be successful T2. preserved behavior
Must Preorder: successful T1, always successful T2. Non-determinism
3a. Verification of Software Requirement Specification: criteria and techniques
Complete, Consistent, Verifiable and Feasible
Techniques: Static Analysis(Manual Review and Tool Support)
3b. Verification of invariant properties by bounded model checking (BMC)
The state space is not handled all at once. Partial verification done by restricting the path of the state space.
Map the problem to a suitable SAT problem
4a. Verification of Software Architecture Design: criteria and techniques
Criteria includes: dependability, performance, maintainability, usability, testability
Techniques: ATAM(how does architecture satisfy quality objective and use of utility trees, Static Analysis and Quantitative Analysis
4b: Formalizing and checking requirements using LTL and HML
LTL: use of rule and symbolisms: linear and branching, AP, boolean operators and temporal operators
HML: LTS = (L, Act, →). Captures finite sequence of actions
5a. Verification of detailed design: criteria and techniques
Criteria include Local Characteristics of Completeness, Consistency, verifiability and feasiblility. Behavioral properties of safety and liveness
Techniques include Static and Dynamic Checking
5b. Model based test case generation by model checking and bounded model checking.
Bounded model checking restricts the path of the state space and maps the problem to a suitable SAT problem
6a. Role of development standards in the verification and validation of critical systems
Standards specifies safety functions and integrity levels.
6b. Software model checking with Counter-Example Guided Abstraction Refinement.
Creating a refined state space from the given concrete state space by hiding details.
7a. Verification of program source codes. Criteria and techniques
Checking for coding guidelines, software metrics, faulty patterns and run-time failures
Techniques include static analysis and code interpretation