SlideShare a Scribd company logo
Formal Methods in Software
Engineering
Credit Hours: 3+0
Formal Specification
Objectives

To explain why formal specification
techniques help discover problems in system
requirements

To describe the use of algebraic techniques
for interface specification

To describe the use of model-based
techniques for behavioural specification
Topics covered

Formal specification in the software process

Sub-system interface specification

Behavioural specification
Formal methods

Formal specification is part of a more general
collection of techniques that are known as ‘formal
methods’.

These are all based on mathematical representation
and analysis of software.

Formal methods include
• Formal specification;
• Specification analysis and proof;
• Transformational development;
• Program verification.
Acceptance of formal methods

Formal methods have not become mainstream
software development techniques as was once
predicted
• Other software engineering techniques have been
successful at increasing system quality. Hence the need
for formal methods has been reduced;
• Market changes have made time-to-market rather than
software with a low error count the key factor. Formal
methods do not reduce time to market;
• The scope of formal methods is limited. They are not well-
suited to specifying and analysing user interfaces and
user interaction;
• Formal methods are still hard to scale up to large systems.
Use of formal methods

The principal benefits of formal methods are
in reducing the number of faults in systems.

Consequently, their main area of applicability
is in critical systems engineering. There have
been several successful projects where
formal methods have been used in this area.

In this area, the use of formal methods is
most likely to be cost-effective because high
system failure costs must be avoided.
Specification in the software process

Specification and design are inextricably
intermingled.

Architectural design is essential to structure
a specification and the specification process.

Formal specifications are expressed in a
mathematical notation with precisely defined
vocabulary, syntax and semantics.
Specification and design
Increasing contractor involvement
Decreasing client involvement
Specification
Design
User
requirements
definition
System
requirements
specification
Architectural
design
Formal
specification
High-level
design
Specification in the software process
System
requirements
specification
Formal
specification
High-level
design
User
requirements
definition
System
modelling
Architectural
design
Use of formal specification

Formal specification involves investing more
effort in the early phases of software
development.

This reduces requirements errors as it forces
a detailed analysis of the requirements.

Incompleteness and inconsistencies can be
discovered and resolved.

Hence, savings as made as the amount of
rework due to requirements problems is
reduced.
Cost profile

The use of formal specification means that
the cost profile of a project changes
• There are greater up front costs as more time
and effort are spent developing the
specification;
• However, implementation and validation costs
should be reduced as the specification process
reduces errors and ambiguities in the
requirements.
Development costs with formal specification
Specification
Specification
Design and
implementation
Design and
implementation
Validation
Validation
Cost
Specification techniques

Algebraic specification
• The system is specified in terms of its
operations and their relationships.

Model-based specification
• The system is specified in terms of a state
model that is constructed using mathematical
constructs such as sets and sequences.
Operations are defined by modifications to the
system’s state.
Formal specification languages
Interface specification

Large systems are decomposed into subsystems
with well-defined interfaces between these
subsystems.

Specification of subsystem interfaces allows
independent development of the different
subsystems.

Interfaces may be defined as abstract data types or
object classes.

The algebraic approach to formal specification is
particularly well-suited to interface specification as it
is focused on the defined operations in an object.
Sub-system interfaces
Inter
face
objects
Sub-system
A
Sub-system
B
The structure of an algebraic specification
sort < name >
imports < LIST OF SPECIFICA
TION NAMES >
Inf
ormal descr
iption of the sor
t and its oper
ations
Oper
ation signatures setting out the names and the types of
the parameters to the operations defined over the sor
t
Axioms defining the oper
ations o
ver the sor
t
< SP ECIFICATION NAM
E >
Specification components

Introduction
• Defines the sort (the type name) and declares other
specifications that are used.

Description
• Informally describes the operations on the type.

Signature
• Defines the syntax of the operations in the interface and
their parameters.

Axioms
• Defines the operation semantics by defining axioms
which characterise behaviour.
Systematic algebraic specification

Algebraic specifications of a system may be
developed in a systematic way
• Specification structuring;
• Specification naming;
• Operation selection;
• Informal operation specification;
• Syntax definition;
• Axiom definition.
Specification operations

Constructor operations. Operations which
create entities of the type being specified.

Inspection operations. Operations which
evaluate entities of the type being specified.

To specify behaviour, define the inspector
operations for each constructor operation.
Operations on a list ADT

Constructor operations which evaluate to sort
List
• Create, Cons and Tail.

Inspection operations which take sort list as a
parameter and return some other sort
• Head and Length.

Tail can be defined using the simpler
constructors Create and Cons. No need to
define Head and Length with Tail.
List specification
Head (Create) = Undefinedexception(empty list)
Head (Cons (L, v)) = if L = Create thenv else Head (L)
Leng
th (Create) = 0
Leng
th (Cons (L, v)) = Leng th (L) + 1
Tail (Create ) = Create
Tail (Cons (L, v)) = if L = Create thenCreate else Cons (Tail (L), v)
sortList
imports INTEGER
Defines a list where elements are added at the end and remo
ved
from the front.
The oper
ations are Create
, which br
ings an empty list
into e
xistence
, Cons
, which creates a ne
w list with an added member
,
Leng
th, which e
valuates the list siz
e, Head, which e
valuates the front
element of the list, and
Tail, which creates a list b
y remo
ving the head from
its input list. Undefined represents an undefined value of type Elem.
Create List
Cons (List, Elem)  List
Head (List)  Elem
Leng
th (List)  Integer
Tail (List)  List
LIST ( Elem )
Recursion in specifications

Operations are often specified recursively.

Tail (Cons (L, v)) = if L = Create then Create
else Cons (Tail (L), v).
• Cons ([5, 7], 9) = [5, 7, 9]
• Tail ([5, 7, 9]) = Tail (Cons ( [5, 7], 9)) =
• Cons (Tail ([5, 7]), 9) = Cons (Tail (Cons ([5], 7)), 9) =
• Cons (Cons (Tail ([5]), 7), 9) =
• Cons (Cons (Tail (Cons ([], 5)), 7), 9) =
• Cons (Cons ([Create], 7), 9) = Cons ([7], 9) = [7, 9]
Interface specification in critical systems

Consider an air traffic control system where aircraft
fly through managed sectors of airspace.

Each sector may include a number of aircraft but, for
safety reasons, these must be separated.

In this example, a simple vertical separation of 300m
is proposed.

The system should warn the controller if aircraft are
instructed to move so that the separation rule is
breached.
A sector object

Critical operations on an object representing
a controlled sector are
• Enter. Add an aircraft to the controlled airspace;
• Leave. Remove an aircraft from the controlled
airspace;
• Move. Move an aircraft from one height to
another;
• Lookup. Given an aircraft identifier, return its
current height;
Primitive operations

It is sometimes necessary to introduce additional
operations to simplify the specification.

The other operations can then be defined using
these more primitive operations.

Primitive operations
• Create. Bring an instance of a sector into existence;
• Put. Add an aircraft without safety checks;
• In-space. Determine if a given aircraft is in the sector;
• Occupied. Given a height, determine if there is an aircraft
within 300m of that height.
Sector specification (1)
Enter (S, CS, H) =
if In-space (S, CS ) then S exception (Aircraft already in sector)
elsif Occupied (S, H) then S exception (Height conflict)
else Put (S, CS, H)
sortSector
imports INTEGER, BOOLEAN
Enter - adds an aircraft to the sector if safety conditions are satisfed
Leave - removes an aircraft from the sector
Move - moves an aircraft from one height to another if safe to do so
Lookup - Finds the height of an aircraft in the sector
Create - creates an empty sector
Put - adds an aircraft to a sector with no constraint checks
In-space - checks if an aircraft is already in a sector
Occupied - checks if a specified height is available
Enter (Sector, Call-sign, Height)  Sector
Leave (Sector, Call-sign)  Sector
Move (Sector, Call-sign, Height)  Sector
Lookup (Sector, Call-sign)  Height
Create  Sector
Put (Sector, Call-sign, Height)  Sector
In-space (Sector
, Call-sign)  Boolean
Occupied (Sector
, Height)  Boolean
SECTOR

More Related Content

PPT
Formal Specifications in Formal Methods
PPTX
Formal Specification Ian Sommerville 9th Edition
PDF
Formal Method lecture_3 software Engineering.pdf
PPT
Ch10
PPT
Formal Specification in Software Engineering SE9
PPT
PPT
LECT3A (1).PPThhdfghdfhdfghdhdhdfsfdfgsfd
PPS
Mca se chapter_9_formal_methods
Formal Specifications in Formal Methods
Formal Specification Ian Sommerville 9th Edition
Formal Method lecture_3 software Engineering.pdf
Ch10
Formal Specification in Software Engineering SE9
LECT3A (1).PPThhdfghdfhdfghdhdhdfsfdfgsfd
Mca se chapter_9_formal_methods

Similar to formal method chapter 1 lecture_3_fm.pptlecture_3_fm.ppt (20)

PPTX
Introduction to formal methods lecture notes
PPTX
Software Engineering - Module 3: Lesson7
PPTX
#1 formal methods – introduction for software engineering
PDF
Software Specification Methods 2nd ed Edition Henri Habrias
PPT
Data structure and algorithm first chapter
PDF
nasa-safer-using-b-method
PDF
Phil Calçado - Your microservice as a function
PDF
ScalaItaly 2015 - Your Microservice as a Function
PPT
Week 13-14.ppt ejje jekr krkekr jekek kej
PPT
Lecture 1
PPT
sxdcdcfdffvfvfvfvfvfvfvvgvgvgvgvgvgggggg
PDF
Uni cambridge
 
PPTX
Introduction-to-Formal-Specifications.pptx
PDF
50120140503001
PDF
50120140503001
PDF
50120140503001
PPTX
RTS fault tolerance, Reliability evaluation
PPTX
real time systems fault tolerance, Redundancy
PPT
E3 chap-17
PPTX
Formal Methods lecture 01
Introduction to formal methods lecture notes
Software Engineering - Module 3: Lesson7
#1 formal methods – introduction for software engineering
Software Specification Methods 2nd ed Edition Henri Habrias
Data structure and algorithm first chapter
nasa-safer-using-b-method
Phil Calçado - Your microservice as a function
ScalaItaly 2015 - Your Microservice as a Function
Week 13-14.ppt ejje jekr krkekr jekek kej
Lecture 1
sxdcdcfdffvfvfvfvfvfvfvvgvgvgvgvgvgggggg
Uni cambridge
 
Introduction-to-Formal-Specifications.pptx
50120140503001
50120140503001
50120140503001
RTS fault tolerance, Reliability evaluation
real time systems fault tolerance, Redundancy
E3 chap-17
Formal Methods lecture 01
Ad

More from adnanshaheen425 (16)

PPTX
UMWBDS_ jfjf tfutf yuftf fPresentation.pptx
PPTX
Blood donation hkekh eio hjqehjq society.pptx
PPTX
lecture_EETRYUIOP[SADSFGHJKLTRWETRY2_fm.pptx
PPT
lecture GDTDFYRDYRDYDYRDYRDYRDR _1_fm.ppt
PPT
ch03_DataRateLimitsGUYUHUHHIUHPUI BKH.ppt
PPT
HHDUHDUO UOOYYYOIOUG _MultipleAccess.ppt
PPT
ch07_Tra HGH YIGYG G EYGY nsmissionMedia.ppt
PPTX
Ad BW nbkhuohb hugugBHH NQHBMQUWHnan.pptx
PPTX
nETWORKING LEACTURE 2 HGUYI ULec 2A.pptx
PPTX
Networking chapter jkl; dfghyubLec 1.pptx
PPT
ch3_3_v1.ppt networking ertyu ghyt y uuiqf
PPT
ch2_v1.ppt networking tertyui fdcfjgfybvuu
PPT
formal method chapter 1 lecture_1_fm.ppt
PPT
SD&C chapter software engineeringLec 5A.ppt
PPT
Software designe and constractionLec 4B.ppt
PPTX
Cultural Heritage of Mianwali PPT 28-11-2024.pptx
UMWBDS_ jfjf tfutf yuftf fPresentation.pptx
Blood donation hkekh eio hjqehjq society.pptx
lecture_EETRYUIOP[SADSFGHJKLTRWETRY2_fm.pptx
lecture GDTDFYRDYRDYDYRDYRDYRDR _1_fm.ppt
ch03_DataRateLimitsGUYUHUHHIUHPUI BKH.ppt
HHDUHDUO UOOYYYOIOUG _MultipleAccess.ppt
ch07_Tra HGH YIGYG G EYGY nsmissionMedia.ppt
Ad BW nbkhuohb hugugBHH NQHBMQUWHnan.pptx
nETWORKING LEACTURE 2 HGUYI ULec 2A.pptx
Networking chapter jkl; dfghyubLec 1.pptx
ch3_3_v1.ppt networking ertyu ghyt y uuiqf
ch2_v1.ppt networking tertyui fdcfjgfybvuu
formal method chapter 1 lecture_1_fm.ppt
SD&C chapter software engineeringLec 5A.ppt
Software designe and constractionLec 4B.ppt
Cultural Heritage of Mianwali PPT 28-11-2024.pptx
Ad

Recently uploaded (20)

PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
Microbial disease of the cardiovascular and lymphatic systems
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Sports Quiz easy sports quiz sports quiz
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
Complications of Minimal Access Surgery at WLH
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PPTX
Cell Structure & Organelles in detailed.
PDF
Classroom Observation Tools for Teachers
PPTX
Cell Types and Its function , kingdom of life
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
Pre independence Education in Inndia.pdf
PPTX
Pharma ospi slides which help in ospi learning
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Microbial disease of the cardiovascular and lymphatic systems
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Sports Quiz easy sports quiz sports quiz
STATICS OF THE RIGID BODIES Hibbelers.pdf
Complications of Minimal Access Surgery at WLH
Module 4: Burden of Disease Tutorial Slides S2 2025
Cell Structure & Organelles in detailed.
Classroom Observation Tools for Teachers
Cell Types and Its function , kingdom of life
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
Pre independence Education in Inndia.pdf
Pharma ospi slides which help in ospi learning
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
2.FourierTransform-ShortQuestionswithAnswers.pdf
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape

formal method chapter 1 lecture_3_fm.pptlecture_3_fm.ppt

  • 1. Formal Methods in Software Engineering Credit Hours: 3+0
  • 3. Objectives  To explain why formal specification techniques help discover problems in system requirements  To describe the use of algebraic techniques for interface specification  To describe the use of model-based techniques for behavioural specification
  • 4. Topics covered  Formal specification in the software process  Sub-system interface specification  Behavioural specification
  • 5. Formal methods  Formal specification is part of a more general collection of techniques that are known as ‘formal methods’.  These are all based on mathematical representation and analysis of software.  Formal methods include • Formal specification; • Specification analysis and proof; • Transformational development; • Program verification.
  • 6. Acceptance of formal methods  Formal methods have not become mainstream software development techniques as was once predicted • Other software engineering techniques have been successful at increasing system quality. Hence the need for formal methods has been reduced; • Market changes have made time-to-market rather than software with a low error count the key factor. Formal methods do not reduce time to market; • The scope of formal methods is limited. They are not well- suited to specifying and analysing user interfaces and user interaction; • Formal methods are still hard to scale up to large systems.
  • 7. Use of formal methods  The principal benefits of formal methods are in reducing the number of faults in systems.  Consequently, their main area of applicability is in critical systems engineering. There have been several successful projects where formal methods have been used in this area.  In this area, the use of formal methods is most likely to be cost-effective because high system failure costs must be avoided.
  • 8. Specification in the software process  Specification and design are inextricably intermingled.  Architectural design is essential to structure a specification and the specification process.  Formal specifications are expressed in a mathematical notation with precisely defined vocabulary, syntax and semantics.
  • 9. Specification and design Increasing contractor involvement Decreasing client involvement Specification Design User requirements definition System requirements specification Architectural design Formal specification High-level design
  • 10. Specification in the software process System requirements specification Formal specification High-level design User requirements definition System modelling Architectural design
  • 11. Use of formal specification  Formal specification involves investing more effort in the early phases of software development.  This reduces requirements errors as it forces a detailed analysis of the requirements.  Incompleteness and inconsistencies can be discovered and resolved.  Hence, savings as made as the amount of rework due to requirements problems is reduced.
  • 12. Cost profile  The use of formal specification means that the cost profile of a project changes • There are greater up front costs as more time and effort are spent developing the specification; • However, implementation and validation costs should be reduced as the specification process reduces errors and ambiguities in the requirements.
  • 13. Development costs with formal specification Specification Specification Design and implementation Design and implementation Validation Validation Cost
  • 14. Specification techniques  Algebraic specification • The system is specified in terms of its operations and their relationships.  Model-based specification • The system is specified in terms of a state model that is constructed using mathematical constructs such as sets and sequences. Operations are defined by modifications to the system’s state.
  • 16. Interface specification  Large systems are decomposed into subsystems with well-defined interfaces between these subsystems.  Specification of subsystem interfaces allows independent development of the different subsystems.  Interfaces may be defined as abstract data types or object classes.  The algebraic approach to formal specification is particularly well-suited to interface specification as it is focused on the defined operations in an object.
  • 18. The structure of an algebraic specification sort < name > imports < LIST OF SPECIFICA TION NAMES > Inf ormal descr iption of the sor t and its oper ations Oper ation signatures setting out the names and the types of the parameters to the operations defined over the sor t Axioms defining the oper ations o ver the sor t < SP ECIFICATION NAM E >
  • 19. Specification components  Introduction • Defines the sort (the type name) and declares other specifications that are used.  Description • Informally describes the operations on the type.  Signature • Defines the syntax of the operations in the interface and their parameters.  Axioms • Defines the operation semantics by defining axioms which characterise behaviour.
  • 20. Systematic algebraic specification  Algebraic specifications of a system may be developed in a systematic way • Specification structuring; • Specification naming; • Operation selection; • Informal operation specification; • Syntax definition; • Axiom definition.
  • 21. Specification operations  Constructor operations. Operations which create entities of the type being specified.  Inspection operations. Operations which evaluate entities of the type being specified.  To specify behaviour, define the inspector operations for each constructor operation.
  • 22. Operations on a list ADT  Constructor operations which evaluate to sort List • Create, Cons and Tail.  Inspection operations which take sort list as a parameter and return some other sort • Head and Length.  Tail can be defined using the simpler constructors Create and Cons. No need to define Head and Length with Tail.
  • 23. List specification Head (Create) = Undefinedexception(empty list) Head (Cons (L, v)) = if L = Create thenv else Head (L) Leng th (Create) = 0 Leng th (Cons (L, v)) = Leng th (L) + 1 Tail (Create ) = Create Tail (Cons (L, v)) = if L = Create thenCreate else Cons (Tail (L), v) sortList imports INTEGER Defines a list where elements are added at the end and remo ved from the front. The oper ations are Create , which br ings an empty list into e xistence , Cons , which creates a ne w list with an added member , Leng th, which e valuates the list siz e, Head, which e valuates the front element of the list, and Tail, which creates a list b y remo ving the head from its input list. Undefined represents an undefined value of type Elem. Create List Cons (List, Elem)  List Head (List)  Elem Leng th (List)  Integer Tail (List)  List LIST ( Elem )
  • 24. Recursion in specifications  Operations are often specified recursively.  Tail (Cons (L, v)) = if L = Create then Create else Cons (Tail (L), v). • Cons ([5, 7], 9) = [5, 7, 9] • Tail ([5, 7, 9]) = Tail (Cons ( [5, 7], 9)) = • Cons (Tail ([5, 7]), 9) = Cons (Tail (Cons ([5], 7)), 9) = • Cons (Cons (Tail ([5]), 7), 9) = • Cons (Cons (Tail (Cons ([], 5)), 7), 9) = • Cons (Cons ([Create], 7), 9) = Cons ([7], 9) = [7, 9]
  • 25. Interface specification in critical systems  Consider an air traffic control system where aircraft fly through managed sectors of airspace.  Each sector may include a number of aircraft but, for safety reasons, these must be separated.  In this example, a simple vertical separation of 300m is proposed.  The system should warn the controller if aircraft are instructed to move so that the separation rule is breached.
  • 26. A sector object  Critical operations on an object representing a controlled sector are • Enter. Add an aircraft to the controlled airspace; • Leave. Remove an aircraft from the controlled airspace; • Move. Move an aircraft from one height to another; • Lookup. Given an aircraft identifier, return its current height;
  • 27. Primitive operations  It is sometimes necessary to introduce additional operations to simplify the specification.  The other operations can then be defined using these more primitive operations.  Primitive operations • Create. Bring an instance of a sector into existence; • Put. Add an aircraft without safety checks; • In-space. Determine if a given aircraft is in the sector; • Occupied. Given a height, determine if there is an aircraft within 300m of that height.
  • 28. Sector specification (1) Enter (S, CS, H) = if In-space (S, CS ) then S exception (Aircraft already in sector) elsif Occupied (S, H) then S exception (Height conflict) else Put (S, CS, H) sortSector imports INTEGER, BOOLEAN Enter - adds an aircraft to the sector if safety conditions are satisfed Leave - removes an aircraft from the sector Move - moves an aircraft from one height to another if safe to do so Lookup - Finds the height of an aircraft in the sector Create - creates an empty sector Put - adds an aircraft to a sector with no constraint checks In-space - checks if an aircraft is already in a sector Occupied - checks if a specified height is available Enter (Sector, Call-sign, Height)  Sector Leave (Sector, Call-sign)  Sector Move (Sector, Call-sign, Height)  Sector Lookup (Sector, Call-sign)  Height Create  Sector Put (Sector, Call-sign, Height)  Sector In-space (Sector , Call-sign)  Boolean Occupied (Sector , Height)  Boolean SECTOR