1 Formal Methods
1 Formal Methods
Formal Methods in
Software Engineering
1
Software Engineering and Formal Methods
2
What are Formal Methods?
3
Why Consider Formal Methods?
5
Formal Specification
6
Type of Formal Specifications
7
Formal Proofs
8
Model Checking
9
Abstraction
10
Mathematical Models
Two types
Continuous models
Discrete models
11
Formal Specification Process Model
Expose defects
Identify exceptions
12
Cleanroom software development
Formal specification
Incremental development
13
Cleanroom Process
14
Cleanroom Process
Develop
operational Design Test
profile statistical integrated
tests system
15
Cleanroom Process
Incremental development
Allows freezing of requirements, so formal work can proceed
Work on critical functionality in early revisions, so it receives
the most testing
16
Cleanroom Process
Specification team.
Develop and maintain system specification
Development team.
Develop and verify (mathematically) the software.
The software is not executed or even compiled during this process
Certification team.
Develop set of statistical tests to exercise the software after
development.
Reliability growth models used to determine when reliability is
acceptable
17
Test Results
Generally workable
Higher quality code resulted
18
Benefits of Formal Specifications
19
Limitations to Formal Methods
For the majority of systems Does not offer significant cost or quality
advantages over others
20