Explore the world of formal methods, a rigorous approach to software development that emphasizes mathematical verification and analysis. By employing formal specifications, proofs, and techniques, this methodology aims to ensure the correctness, reliability, and security of software systems. Discover how formal methods mitigate errors, reduce vulnerabilities, and elevate software quality, leading to more robust and trustworthy applications.
4. WHAT IS FORMAL METHODS?
Mathematical modeling for
◉ Specification
◉ Development
◉ Verification
for both software and hardware.
4
5. WHY IS FORMAL METHOD REQUIRED?
5
Better
understandin
g of problem
Avoid
overlookin
g critical
issues
Providing
means to
record
assumptions
and decisions
Consistenc
y among
related
activities
7. USEFULNESS OF FORMAL METHODS
7
ERROR
DETECTION
SECURITY
REPRESENTING REQUIREMENTS
CODING VERIFICATION
SPECIFYING SOFTWARE
SOFTWARE DESIGN
Articulates the requirements of software
Developing a precise statement of what software do
Verifying of the coding is done
Data refinement involves state machine
specification, abstraction functions and simulation
proofs
Enhancing early error detection
Developing safe, secure software-intensive systems
8. ADVANTAGES OF FORMAL METHODS
8
Deep understanding of
the system
requirements
Analyzing
automatically to
discover
inconsistencies and
incompleteness
Cost reduction due to
verification of program
Guaranteed to meet its
specification
9. LIMITATIONS OF FORMAL METHODS
9
CORRECTNESS OF
SPECIFICATION
No way to guarantee correctness
and completeness of specification
with respect to user's informal
requirements
CORRECTNESS OF
IMPLEMENTATION
Difficult to identify whether or not a
given program satisfies the given
specifications
Generally impossible to ensure the
correctness of specification as well
as implementation because
CORRECTNESS OF
PROOFS
Unavailability or being too complex
of formal definition of semantics of
important languages
DEALING COMPLEX
LANGUAGE FEATURES
10. DISADVANTAGES OF FORMAL METHODS
10
1 3 5
4
2
Difficult to
understand the
application domain
Lack of training to
use formal
specification
language
Difficult to use in
very large systems
Difficult to estimate
possible cost savings
Not compatible to
agile methods
11. ISSUES NOT ADDRESSED BY FORMAL METHODS
Creativity
Formal methods are not
considered to be creative, more
likely descriptive and analytical in
nature. There are only formal
ways of describing and analyzing
designs.
Software Product
Quality
Formal methods do not contribute
to software product quality. It
deals with the software itself and
its documentation. Other
important components such as
training, customer support,
maintenance or installation have
to be dealt with separately.
Systems &
environments
Software systems normally take
inputs from external
environments which may not be
predictable. This issue usually
creates the problem of developing
`correct' specifications and
deciding what behavior is correct.
11