Formal Methods in Software Engineering: Lecture # 01
Formal Methods in Software Engineering: Lecture # 01
SOFTWARE ENGINEERING
LECTURE # 01
INTRODUCTION TO FORMAL METHODS
INSTRUCTOR: SAIMA ZAREEN
ASSISTANT PROFESSOR
DEPARTMENT OF SOFTWARE ENGINEERING
[email protected]
OBJECTIVES
• REFINEMENT AND
• DECOMPOSITION.
• QUIZES 10%
• ASSIGNMENTS 5%
• PROJECT 10%
i. THERAC-25 (1985-1987)
• CORRECT
• RELIABLE
IMPORTANCE OF FORMAL
METHODS IN SOFTWARE CONTD..
• THESE TWO ATTRIBUTES DEAL WITH THE
SOFTWARE QUALITY.
• TESTING
• VERIFICATION
• VALIDATION
TESTING
• INPUT
• TWO NUMBERS
• OUTPUT
• AVERAGE
• RULE 1
• RULE 2
• OTHERWISE HE RETURNS ONE WHITE BALL INTO THE URN
• DIFFICULT TO ANSWER
• THREE DIFFERENT
COMBINATIONS OF BALLS
2 BALL GAME
DIJKSTRA’S GAME CONTD..
• WHAT IS A FUNCTION?
• FUNCTION:
1. MODELING PHASE
3. ANALYSIS PHASE:
• PROPERTY ERROR
• DESIGN ERROR
• MODELING
• FINITE-STATE AUTOMATA
• TEMPORAL LOGIC
FORMAL METHOD
• CONSISTENCY
• CORRECTNESS:
• THE PROPERTY THAT AN ABSTRACT MODEL
FULFILLS A SET OF WELL DEFINED REQUIREMENTS.
• CONSISTENCY:
• TO BE CONSISTENT, FACTS STATED IN ONE PLACE IN
A SPECIFICATION SHOULD NOT BE CONTRADICTED
IN ANOTHER PLACE.
HOW FORMAL METHODS ARE
APPLIED?
• WE DEVELOP MODELS OF SYSTEM.
• LOGICAL THEORY:
• STRUCTURING THEORY:
• PRE-CONDITION
• POST CONDITION
3. MODEL VERIFICATION AND IMPLEMENTATION
• MAKE FORMAL MODEL AND USE TOOLS TO PROVE MECHANICALLY THAT FORMAL
EXECUTION MODEL SATISFIES FORMAL REQUIREMENTS.
MODEL TYPES
• ABSTRACT MODEL
• CONCRETE MODEL
• FOR EXAMPLE,
• PETRI NETS
• BUT ….
• PRO-B TOOL
• ATELIER B
• RODIN TOOL
SUMMARY