Professional Documents
Culture Documents
Methods
HAFIZUL FAHRI BIN HANAFI
Assessment
PENILAIAN KURSUS
Kerja Kursus
Tugasan 1
Ujian Pertengahan Semester
20%
Tugasan 2
Peperiksaan Akhir
Total
60%
20%
20%
40%
100%
Contents
Definition
Formal methods are mathematical approaches
to software and system development which
support the rigorous specification, design and
verification of computer systems. [Fme04]
[they] exploit the power of mathematical
2.
3.
4.
5.
6.
7.
History
1940's:
1970's:
Definition
"Formal is often confused with precise".
CommUnity
Estelle
Esterel
Lotos
Overture Modeling Language
Petri Nets
RAISE
SDL
TRIO, Unity, and VDM
Any programming language
Predicate Calculus
Predicate Calculus
Constant
Variable
Predicate
Function
Connective
Quantifier
Predicate Calculus
Predicate Calculus
1. Whoever can read is literate.
2. Dogs are not literate.
3. Some dogs are intelligent.
Levels of Rigor
Specifications, models, and verifications may be
done using a variety of techniques.
Level 1 represents the use of mathematical logic
to specify the system.
Level 2 uses pencil-and-paper proofs.
Level 3 is the most rigorous application of formal
methods.
physical failure
human error
environmental factors
design errors
[Nas03]
On April 30, 1999 Titan I cost taxpayers 1.23billion dollars, all due to a software malfunction
(incorrectly entered roll rate filter constant)
Improve SW Quality
Reduce cost of verifying system
Improve quality and rigor of entire development
process
Reduce specification errors and provide a rational
basis for choosing test data
Explore the properties of a design architecture
Evidence
Impracticality
No Quantitative evidence
Used with other techniques formal methods has led to highly reliable code;
fewer errors and easy to test.
"Formal methods do not claim to remove the possibility of unwise design
decisions. [San98]
"Automatically generating proofs of program correctness are regarded as
unrealizable for realistic systems."
Methods of automatically generating test cases that expose problems are
available.
Communication
Weaknesses:
Low-level ontologies
Limited Scope
Isolation
Cost
Poor tool feedback
information systems
telecommunication systems
power plant control
security
analysis
Real time extension of YourdonConstantine structured analysis
Formal Methods for specification and
Design
Application Code:
Concurrency
LAN
Data
Quality in terms of faults and failures
normalized by size (LOC)
Reliability MTTF
Assigned severity to failure reports (1-3)
Documents and modules changed listed
Partitioned data problems arising from code
vs. spec/design
Classified modules by type of design that
influenced it
Questions
Lessons Learned
No evident formal design techniques alone
produced higher quality code
Formal design with other techniques yielded
highly reliable code
Formal specification and design effective in
some, but not all circumstances
Formal specification led to simple, independent
components and straightforward unit testing
Formal methods may be more effective acting as
a catalyst for other techniques, such as testing
Focus