History of Formal Methods
Mathematical Model:
Abstract representations of a system using mathematical entities and concepts.
There are two types of mathematical models.
Discrete Model
Continuous Model
Discrete Model:
A variable that take value with jumps and gaps.
E.g. student in university
Continuous Model:
A variable that can take any value within a given interval.
` E.g. height, weight, temperature.
1. History of formal methods:
Dijkstra work:
Dijkstra used formal calculus to aid to develop of non-deterministic programs.
John McCarthy’s work:
Recursive functions of symbolic expression and their computation by mechanics
towards a mathematical science of computation.
Robert Floyd’s work:
Assigning meaning to programs.
John Reynold’s works:
Definition interpreters for higher order programming languages.
Christopher Strachey’s work:
Towards a mathematical semantics for computer language.
2. Model Oriented specification:
Construct a model of the system behavior using mathematical objects like sets,
sequences etc.
3. Property Oriented specification:
Specify system behavior in terms of properties that must be satisfied
Example:
Axioms
Rules
It has two types
1) Algebraic semantics
2) Temporal logic models.
Algebraic semantics
Algebraic semantics is a form of axiom semantics based on algebraic laws for
describing and reasoning about program semantics in a formal manner.
Temporal Logic:
“An extension of classical logic”
An inherent problem with classical logic is its essentially static nature.
We can express statements such as
“If it is Tuesday and we are in Liverpool, then it is raining”
But have much more difficulty with dynamic statements such as
“If it is Tuesday, then it will continue raining while we remain in Liverpool”
4. Types of formal method:
Abstract State Machines:
The Abstract State Machine (ASM) thesis implies that any algorithm can be
modeled by an appropriate ASM.
B-Method:
B is a formal method for the development of program code from a specification
in the Abstract Machine Notation.
Z:
A specification language used for describing computer-based systems; based on
set theory and first order predicate logic
Event B:
A latest formal specification and modeling language, based on set theory and
has larger tool support.
VDM:
Vienna Development Method (VDM) supports both sequential and object
oriented concepts.
Alloy:
Alloy is a declarative specification language for expressing complex structural
constraints and behavior in software system. Alloy provides a simple structural
modelling tool based on first order logic.
Common Algebraic Specification Language (CASL):
CASL is a general purpose specification language based on first order logic with
induction.