Formal Methods in Software Engineering: Shakeel Ahmad
Formal Methods in Software Engineering: Shakeel Ahmad
Software
Engineering
Shakeel Ahmad
1 Week-I 10/12/2019
Grading Policy
i. Project 10 Marks
ii. Assignment & Quizzes 08 Marks
iii. Mid-term 12 Marks
iv- Final-term 30 Marks
2 10/12/2019
Book and Material
Website: www.tinyurl.com/itlectures
10/12/2019
Notorious Bugs – BYTE, September 1995
http://www.byte.com/art/9509/sec7/art20.htm
8
9 Background
– Need to be precise
– Management
– Must be able to agree what is to be implemented
10 Background
– Need to be precise
– Programming
– Written in language is probably no use
– Expensive to create
– Long
– Include un-necessary details
– Performance not effect of operation
– Difficult to understand
11 Background
– Dynamic aspects
– All operations which are possible
– The relations of inputs to outputs
– Changes of state that can occur
15 Specification Parts
– Program specification
– Program verification
– Automated theorem proving
– Model checking
24 Program Specification
– It can be
– informal, in which case it can be considered as a
blueprint or user manual from a developer point of view,
or formal, in which case it has a definite meaning defined
in mathematical or programmatic terms.
25 Program Verification
– Is concise
– Is non-ambiguous
32 Mathematics – good features
Box Structures
black box
state box
clear box
41
Box Structures
Many of the concepts introduced for object-oriented systems are also applicable for
the black box. Data abstractions and the operations that manipulate those
abstractions are encapsulated by the black box. Like a class hierarchy, the black box
specification can exhibit usage hierarchies in which low-level boxes inherit the
properties of those boxes higher in the tree structure.
10/12/2019
42 State-Box Specification
10/12/2019
44
Cleanroom Testing
– statistical use testing
– tests the actual usage of the program
– determine a “usage probability distribution”
– analyze the specification to identify a set of stimuli
– stimuli cause software to change behavior
– create usage scenarios
– assign probability of use to each stimuli
– test cases are generated for each stimuli according to the usage
probability distribution
47
Certification
Certification Models
54
http://sats.nasa.gov/