Formal Methods

2,806 views

Published on

introduction to formal methods

2 Comments
3 Likes
Statistics
Notes
No Downloads
Views
Total views
2,806
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
93
Comments
2
Likes
3
Embeds 0
No embeds

No notes for slide

Formal Methods

  1. 1. <ul><li>Introduction to </li></ul><ul><li>Formal Methods </li></ul><ul><li>By : Hend Muhammad Rizk </li></ul><ul><li>61570 </li></ul><ul><li>CS-303 </li></ul>
  2. 2. What are formal methods? Formal methods are a mathematically based techniques and tools for the specification, design and verification of software systems .
  3. 3. 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. 4. <ul><li>4-Coding verification . </li></ul><ul><li>5-Enhancing early error detection . </li></ul><ul><li>6-Developing safe, reliable, secure software - intensive systems . </li></ul>
  5. 5. The overall effect of the use of formal techniques on time, cost ,and quality :
  6. 6. Formal Specification Methods : <ul><li>Formal specifications . </li></ul><ul><li>Formal Proofs . </li></ul><ul><li>Model Checking . </li></ul><ul><li>Abstraction . </li></ul>
  7. 7. Formal specification <ul><li>The specifications used in formal methods are well - formed statements which describe what some software should do , </li></ul><ul><li>“ not necessarily how” in a language defined by a mathematical logic . </li></ul><ul><li>This languages called “specification languages” </li></ul>
  8. 8. Properties of Formal Specifications : <ul><li>Unambiguous . </li></ul><ul><li>Consistency . </li></ul><ul><li>Completeness . </li></ul><ul><li>Inference . </li></ul>
  9. 9. Formal Specification Languages : <ul><li>A formal specification language consists of : </li></ul><ul><li>1- Syntax — the notation . </li></ul><ul><li>2- Semantics — the specifiable objects . </li></ul><ul><li>3- Relation defining which objects satisfy which notations . </li></ul>
  10. 10. <ul><li>Basic Specification Language Types : </li></ul><ul><li>1- Axiomatic specifications : </li></ul><ul><li>defines operations by logical assertions . </li></ul><ul><li>2- Abstract model specifications : </li></ul><ul><li>defines operations in terms of a well - defined math model . </li></ul>
  11. 11. <ul><li>3- Algebraic specifications : </li></ul><ul><li>defines operations by collections of equivalence relations . </li></ul><ul><li>4- Temporal logic specifications : </li></ul><ul><li>defines operations in terms of order of execution and timing . </li></ul><ul><li>5- Concurrent specifications : </li></ul><ul><li>defines operations in terms of simultaneously occurring events . </li></ul>
  12. 12. Formal verification <ul><li>Formal verifications are rigorous deductions in logic </li></ul><ul><li>( i . e . each step follows from a rule of inference and hence can be checked by a mechanical process .) </li></ul>
  13. 13. <ul><li>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 . </li></ul>
  14. 14. <ul><li>The cost of applying this methods is very high </li></ul><ul><li>To make analysis economically feasible, the cost of specification must be dramatically reduced, and the analysis itself must be automated . </li></ul>
  15. 15. <ul><li>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 . </li></ul>
  16. 16. <ul><li>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 . </li></ul>
  17. 17. <ul><li>Conclusions : </li></ul><ul><li>Formal methods are : </li></ul><ul><li>a mathematically based techniques and tools for the specification, design and verification of software systems . </li></ul><ul><li>Formal specifications are : </li></ul><ul><li>well - formed statements which describe what some software should do . </li></ul>
  18. 18. <ul><li>Formal verifications are : </li></ul><ul><li>the act of proving or disproving the correctness of some algorithm in a system . </li></ul><ul><li>formal methods cannot guarantee the completeness of a specifications . </li></ul>
  19. 19. Thanks for listening

×