Introduction to  Formal Methods By :  Hend Muhammad Rizk 61570 CS-303
What are formal methods? Formal methods are a mathematically based techniques and tools for the specification, design and verification of software systems .
Formal methods can be useful in : 1-Articulating, and representing requirements . 2-Specifying software :  developing a precise statement of what the software is to do . 3-Software design .  Data refinement involves state machine specification, abstraction functions, and simulation proofs .
4-Coding verification . 5-Enhancing early error detection . 6-Developing safe, reliable, secure software - intensive systems .
The overall effect of the use of formal techniques on time, cost ,and quality :
Formal Specification Methods : Formal specifications . Formal Proofs . Model Checking . Abstraction .
Formal specification The specifications used in formal methods are well - formed statements  which describe what some software should do , “  not necessarily how” in a language defined by a mathematical logic . This languages called “specification languages”
Properties of Formal Specifications : Unambiguous . Consistency . Completeness . Inference .
Formal Specification Languages : A formal specification language consists of : 1- Syntax — the notation . 2- Semantics — the specifiable objects . 3- Relation defining which objects satisfy which notations .
Basic Specification Language Types : 1-   Axiomatic  specifications : defines operations by logical assertions . 2-   Abstract model  specifications : defines operations in terms of a well - defined math model .
3-   Algebraic  specifications : defines operations by collections of equivalence relations . 4- Temporal logic  specifications : defines operations in terms of order of execution and timing . 5-   Concurrent  specifications : defines operations in terms of simultaneously occurring events .
Formal verification Formal verifications are rigorous deductions in logic ( i . e .  each step follows from a rule of inference and hence can be checked by a mechanical process .)
Formal verification can also be defined to be the act of proving or disproving the correctness of some algorithm in a system with respect to a certain formal specification .
The cost of applying this methods is very high To make analysis economically feasible, the cost of specification must be dramatically reduced, and the analysis itself must be automated .
the cost of specification alone is often beyond a project's budget .  Industry will have no reason to adopt formal methods until the benefits of formalization can be obtained immediately .
makeing full formalization is a difficult and expensive task .  As an alternative, various  lightweight  formal methods, which emphasize partial specification and focused application, have been proposed .
Conclusions : Formal methods are : a mathematically based techniques and tools for the specification, design and verification of software systems . Formal specifications are : well - formed statements  which describe what some software should do .
Formal verifications are : the act of proving or disproving the correctness of some algorithm in a system . formal methods  cannot guarantee  the completeness of a specifications .
Thanks for listening

Formal Methods

  • 1.
    Introduction to Formal Methods By : Hend Muhammad Rizk 61570 CS-303
  • 2.
    What are formalmethods? Formal methods are a mathematically based techniques and tools for the specification, design and verification of software systems .
  • 3.
    Formal methods canbe useful in : 1-Articulating, and representing requirements . 2-Specifying software : developing a precise statement of what the software is to do . 3-Software design . Data refinement involves state machine specification, abstraction functions, and simulation proofs .
  • 4.
    4-Coding verification .5-Enhancing early error detection . 6-Developing safe, reliable, secure software - intensive systems .
  • 5.
    The overall effectof the use of formal techniques on time, cost ,and quality :
  • 6.
    Formal Specification Methods: Formal specifications . Formal Proofs . Model Checking . Abstraction .
  • 7.
    Formal specification Thespecifications used in formal methods are well - formed statements which describe what some software should do , “ not necessarily how” in a language defined by a mathematical logic . This languages called “specification languages”
  • 8.
    Properties of FormalSpecifications : Unambiguous . Consistency . Completeness . Inference .
  • 9.
    Formal Specification Languages: A formal specification language consists of : 1- Syntax — the notation . 2- Semantics — the specifiable objects . 3- Relation defining which objects satisfy which notations .
  • 10.
    Basic Specification LanguageTypes : 1- Axiomatic specifications : defines operations by logical assertions . 2- Abstract model specifications : defines operations in terms of a well - defined math model .
  • 11.
    3- Algebraic specifications : defines operations by collections of equivalence relations . 4- Temporal logic specifications : defines operations in terms of order of execution and timing . 5- Concurrent specifications : defines operations in terms of simultaneously occurring events .
  • 12.
    Formal verification Formalverifications are rigorous deductions in logic ( i . e . each step follows from a rule of inference and hence can be checked by a mechanical process .)
  • 13.
    Formal verification canalso be defined to be the act of proving or disproving the correctness of some algorithm in a system with respect to a certain formal specification .
  • 14.
    The cost ofapplying this methods is very high To make analysis economically feasible, the cost of specification must be dramatically reduced, and the analysis itself must be automated .
  • 15.
    the cost ofspecification alone is often beyond a project's budget . Industry will have no reason to adopt formal methods until the benefits of formalization can be obtained immediately .
  • 16.
    makeing full formalizationis a difficult and expensive task . As an alternative, various lightweight formal methods, which emphasize partial specification and focused application, have been proposed .
  • 17.
    Conclusions : Formalmethods are : a mathematically based techniques and tools for the specification, design and verification of software systems . Formal specifications are : well - formed statements which describe what some software should do .
  • 18.
    Formal verifications are: the act of proving or disproving the correctness of some algorithm in a system . formal methods cannot guarantee the completeness of a specifications .
  • 19.