SlideShare a Scribd company logo
Formal Methods in Software
Engineering
Formal methods for the problems
What is formal methods?
Formal methods = Formal Specification
+
Refinement
+
Formal Verification
2
Set theory, logics, algebra, etc.
What are Formal Methods?
• Definition
Mathematically based techniques for the specification,
development and verification of software and hardware
systems.
Can determine if:
– Specifications are satisfied.
– Implementation of a system is correct.
– Proving properties of a system.
Formal Methods in Software
Engineering
3
What are Formal Methods?
• Formal Language Specification
• Formal Methods are centred around a notation known as a
formal specification language.
Formal Semantics
– Mathematical base allows precise notions.
– Unambiguous.
– Allows consistency, correctness, specification and implementation to
be expressed.
Increase Human Understanding of Specified System.
&
Allow the possibility of formal reasoning and development.
Formal Methods in Software
Engineering
4
Three Levels of Formal Methods
Formal Methods in Software
Engineering
5
1. Requirements Only
2. No Analysis/Proof
3. Cost effective
1. Produce a
program in a more
formal manner
2. Use proofs of properties or
refinements from formal
specification
3. Costly
1. Use theorem prover
2. Fully formal machine-
checked proofs.
3. Expensive, hard and
often costly
4. Formally prove the entire
system.
LEVEL 0
Formal Specification
LEVEL 1
Formal Verification
LEVEL 2
Theorem Provers
Software Engineering and Formal
Methods
• Every Software engineering methodology is
based on a recommended development
process proceeding through several phases:
• Formal methods can:
• » Be a foundation for describing complex
systems
• » Be a foundation for reasoning about systems
• » Provide support for program development
What are Formal Methods?
• Techniques and tools based on mathematics and
formal logic
• application of discrete mathematics to software
engineering
• involves modeling and analysis
• with an underlying mathematically-precise notation
• Can assume various forms and levels of rigor
• least rigorous = Occasional mathematical notation embedded in English
specifications
• most rigorous = Fully formal specification languages with a precise semantics
Why Consider Formal Methods?
• Systems are increasingly
dependent on software
components
• Complexity of systems with
embedded software has
increased rapidly
• Maintaining reliability in
software-intensive systems is
very difficult
Why should we care?
• NIST (National Institute of Standards and
Technology) report
– software bugs cost $60 billion annually
• High profile incidents of systems failure
– Therac-25 radiation overdoses, 1985-87
– Northeast blackout, 2003
– Air traffic control, LA airport, 2004
Intellectual challenge
• Civil engineering
– Bridges don’t fail
Reliable Engineering
Intellectual challenge
• Civil engineering
– Bridges don’t fail
• Mechanical engineering
– Cars are reliable
Intellectual challenge
• Civil engineering
– Bridges don’t fail
• Mechanical engineering
– Cars are reliable
• Software engineering
Dijkstra Says
 You can only prove the presence of
a bug by Testing
 BUT!!!!
You can not prove the absence of a
Bug by Testing
Why is software hard?
• The human element
– Getting a consistent and complete set of
requirements is difficult
– Requirements often change
– Human beings use software in ways never
imagined by the designers
Why is software hard?
• The mathematical element
– Huge set of behaviors
– Nondeterminism
• External due to inputs
• Internal due to concurrency
– Even if the requirements are unchanging,
complete and formally specified, it is infeasible to
check all the behaviors
What to formalize?
• Models of requirements knowledge (so we
can reason about them)
• Specifications of requirements (so we can
document them precisely)
• Specifications of program design (so we can
verify correctness)
Formal Methods???
Using Formal Methods
• Selective use of Formal Methods
• Amount of formality can vary
• Need not build complete formal models
• Apply to the most critical pieces
Using Formal Methods
• Apply where existing analysis techniques are
weak Need not formally analyze every system
property E.g. check safety properties only
• Need not apply FM in every phase of
development E.g. use for modeling
requirements, but don’t formalize the system
design
• Can choose what level of abstraction (amount
of detail) to model

More Related Content

What's hot

Learn Bug Reporting Techniques
Learn Bug Reporting TechniquesLearn Bug Reporting Techniques
Learn Bug Reporting Techniques
QA InfoTech
 
Formal Methods
Formal MethodsFormal Methods
Formal Methods
HendMuhammad
 
Software Testing Training : Tonex Training
Software Testing Training : Tonex TrainingSoftware Testing Training : Tonex Training
Software Testing Training : Tonex Training
Bryan Len
 
Introduction to Non Functional Requirement (NFR)
Introduction to Non Functional Requirement (NFR)Introduction to Non Functional Requirement (NFR)
Introduction to Non Functional Requirement (NFR)
Sanjay Kumar
 
Manual testing - Introduction to Manual Software testing
Manual testing - Introduction to Manual Software testingManual testing - Introduction to Manual Software testing
Manual testing - Introduction to Manual Software testing
Vibrant Technologies & Computers
 
Black box testing
Black box testingBlack box testing
Black box testing
Abdul Rahman
 
Basic Guide to Manual Testing
Basic Guide to Manual TestingBasic Guide to Manual Testing
Basic Guide to Manual Testing
Hiral Gosani
 
Software testing expert evangelization
Software testing expert evangelizationSoftware testing expert evangelization
Software testing expert evangelizationTestCampRO
 
Types of program testings and errors
Types of program testings and errorsTypes of program testings and errors
Types of program testings and errorsAmiirah Camall Saib
 
Unit 5 testing -software quality assurance
Unit 5  testing -software quality assuranceUnit 5  testing -software quality assurance
Unit 5 testing -software quality assurancegopal10scs185
 
Fundamentals of software part 1
Fundamentals of software part 1Fundamentals of software part 1
Fundamentals of software part 1
Siddharth Sharma
 
SOFTWARE TESTING: ISSUES AND CHALLENGES OF ARTIFICIAL INTELLIGENCE & MACHINE ...
SOFTWARE TESTING: ISSUES AND CHALLENGES OF ARTIFICIAL INTELLIGENCE & MACHINE ...SOFTWARE TESTING: ISSUES AND CHALLENGES OF ARTIFICIAL INTELLIGENCE & MACHINE ...
SOFTWARE TESTING: ISSUES AND CHALLENGES OF ARTIFICIAL INTELLIGENCE & MACHINE ...
ijaia
 
Software engineering 23 software reliability
Software engineering 23 software reliabilitySoftware engineering 23 software reliability
Software engineering 23 software reliability
Vaibhav Khanna
 
Software Testing
Software TestingSoftware Testing
Software Testing
Abdul Basit
 
ST-All about Test Case-p3
ST-All about Test Case-p3ST-All about Test Case-p3
ST-All about Test Case-p3
Prachi Sasankar
 
Software Testing
Software TestingSoftware Testing
Software Testing
SKumar11384
 
Software Testing - Software Quality
Software Testing - Software QualitySoftware Testing - Software Quality
Software Testing - Software Quality
Ajeng Savitri
 
The Next Static Code Analysis Tool - Today and Tomorrow
The Next Static Code Analysis Tool - Today and TomorrowThe Next Static Code Analysis Tool - Today and Tomorrow
The Next Static Code Analysis Tool - Today and Tomorrow
M Firdaus Harun
 
4. The Software Development Process - Testing
4. The Software Development Process - Testing4. The Software Development Process - Testing
4. The Software Development Process - TestingForrester High School
 
How to perform software testing
How to perform software testing How to perform software testing
How to perform software testing
Minh Anh Nguyen
 

What's hot (20)

Learn Bug Reporting Techniques
Learn Bug Reporting TechniquesLearn Bug Reporting Techniques
Learn Bug Reporting Techniques
 
Formal Methods
Formal MethodsFormal Methods
Formal Methods
 
Software Testing Training : Tonex Training
Software Testing Training : Tonex TrainingSoftware Testing Training : Tonex Training
Software Testing Training : Tonex Training
 
Introduction to Non Functional Requirement (NFR)
Introduction to Non Functional Requirement (NFR)Introduction to Non Functional Requirement (NFR)
Introduction to Non Functional Requirement (NFR)
 
Manual testing - Introduction to Manual Software testing
Manual testing - Introduction to Manual Software testingManual testing - Introduction to Manual Software testing
Manual testing - Introduction to Manual Software testing
 
Black box testing
Black box testingBlack box testing
Black box testing
 
Basic Guide to Manual Testing
Basic Guide to Manual TestingBasic Guide to Manual Testing
Basic Guide to Manual Testing
 
Software testing expert evangelization
Software testing expert evangelizationSoftware testing expert evangelization
Software testing expert evangelization
 
Types of program testings and errors
Types of program testings and errorsTypes of program testings and errors
Types of program testings and errors
 
Unit 5 testing -software quality assurance
Unit 5  testing -software quality assuranceUnit 5  testing -software quality assurance
Unit 5 testing -software quality assurance
 
Fundamentals of software part 1
Fundamentals of software part 1Fundamentals of software part 1
Fundamentals of software part 1
 
SOFTWARE TESTING: ISSUES AND CHALLENGES OF ARTIFICIAL INTELLIGENCE & MACHINE ...
SOFTWARE TESTING: ISSUES AND CHALLENGES OF ARTIFICIAL INTELLIGENCE & MACHINE ...SOFTWARE TESTING: ISSUES AND CHALLENGES OF ARTIFICIAL INTELLIGENCE & MACHINE ...
SOFTWARE TESTING: ISSUES AND CHALLENGES OF ARTIFICIAL INTELLIGENCE & MACHINE ...
 
Software engineering 23 software reliability
Software engineering 23 software reliabilitySoftware engineering 23 software reliability
Software engineering 23 software reliability
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
ST-All about Test Case-p3
ST-All about Test Case-p3ST-All about Test Case-p3
ST-All about Test Case-p3
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Software Testing - Software Quality
Software Testing - Software QualitySoftware Testing - Software Quality
Software Testing - Software Quality
 
The Next Static Code Analysis Tool - Today and Tomorrow
The Next Static Code Analysis Tool - Today and TomorrowThe Next Static Code Analysis Tool - Today and Tomorrow
The Next Static Code Analysis Tool - Today and Tomorrow
 
4. The Software Development Process - Testing
4. The Software Development Process - Testing4. The Software Development Process - Testing
4. The Software Development Process - Testing
 
How to perform software testing
How to perform software testing How to perform software testing
How to perform software testing
 

Similar to Lecture 1

Coding - SDLC Model
Coding - SDLC ModelCoding - SDLC Model
Software engineering
Software engineeringSoftware engineering
Software engineering
suganyasanjai
 
What_is_Software_Testing.pdf
What_is_Software_Testing.pdfWhat_is_Software_Testing.pdf
What_is_Software_Testing.pdf
VuongPhm
 
Introduction Software engineering
Introduction   Software engineeringIntroduction   Software engineering
Introduction Software engineering
Jennifer O. Contreras Coloma
 
Unit 8 software quality and matrices
Unit 8 software quality and matricesUnit 8 software quality and matrices
Unit 8 software quality and matrices
Preeti Mishra
 
Questions for successful test automation projects
Questions for successful test automation projectsQuestions for successful test automation projects
Questions for successful test automation projects
Daniel Ionita
 
UNIT 1.pptx
UNIT 1.pptxUNIT 1.pptx
UNIT 1.pptx
GNANAJESLINJ
 
IEEE 1633 Recommended Practices for Reliable Software
IEEE 1633 Recommended Practices for Reliable SoftwareIEEE 1633 Recommended Practices for Reliable Software
IEEE 1633 Recommended Practices for Reliable Software
Ann Marie Neufelder
 
SOFTWARE ENGINEERING
SOFTWARE ENGINEERINGSOFTWARE ENGINEERING
SOFTWARE ENGINEERING
Mahalakshmi Seenaswamy
 
lect1.pdf
lect1.pdflect1.pdf
Software testing part
Software testing partSoftware testing part
Software testing part
Preeti Mishra
 
Joseph G Scott
Joseph G  ScottJoseph G  Scott
Joseph G ScottJoe Scott
 
Continuous testing for continuous delivery
Continuous testing for continuous deliveryContinuous testing for continuous delivery
Continuous testing for continuous delivery
David Hart
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tactics
Preeti Mishra
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
Poonkodi Jayakumar
 
How to Actually DO High-volume Automated Testing
How to Actually DO High-volume Automated TestingHow to Actually DO High-volume Automated Testing
How to Actually DO High-volume Automated Testing
TechWell
 
Software testing-and-analysis
Software testing-and-analysisSoftware testing-and-analysis
Software testing-and-analysis
WBUTTUTORIALS
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
SHREEHARI WADAWADAGI
 
Formal Specification Ian Sommerville 9th Edition
Formal Specification Ian Sommerville 9th EditionFormal Specification Ian Sommerville 9th Edition
Formal Specification Ian Sommerville 9th Edition
RupeshShrestha28
 

Similar to Lecture 1 (20)

Coding - SDLC Model
Coding - SDLC ModelCoding - SDLC Model
Coding - SDLC Model
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
What_is_Software_Testing.pdf
What_is_Software_Testing.pdfWhat_is_Software_Testing.pdf
What_is_Software_Testing.pdf
 
Introduction Software engineering
Introduction   Software engineeringIntroduction   Software engineering
Introduction Software engineering
 
Unit 8 software quality and matrices
Unit 8 software quality and matricesUnit 8 software quality and matrices
Unit 8 software quality and matrices
 
Questions for successful test automation projects
Questions for successful test automation projectsQuestions for successful test automation projects
Questions for successful test automation projects
 
UNIT 1.pptx
UNIT 1.pptxUNIT 1.pptx
UNIT 1.pptx
 
IEEE 1633 Recommended Practices for Reliable Software
IEEE 1633 Recommended Practices for Reliable SoftwareIEEE 1633 Recommended Practices for Reliable Software
IEEE 1633 Recommended Practices for Reliable Software
 
SOFTWARE ENGINEERING
SOFTWARE ENGINEERINGSOFTWARE ENGINEERING
SOFTWARE ENGINEERING
 
lect1.pdf
lect1.pdflect1.pdf
lect1.pdf
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 
Software testing part
Software testing partSoftware testing part
Software testing part
 
Joseph G Scott
Joseph G  ScottJoseph G  Scott
Joseph G Scott
 
Continuous testing for continuous delivery
Continuous testing for continuous deliveryContinuous testing for continuous delivery
Continuous testing for continuous delivery
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tactics
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
How to Actually DO High-volume Automated Testing
How to Actually DO High-volume Automated TestingHow to Actually DO High-volume Automated Testing
How to Actually DO High-volume Automated Testing
 
Software testing-and-analysis
Software testing-and-analysisSoftware testing-and-analysis
Software testing-and-analysis
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
Formal Specification Ian Sommerville 9th Edition
Formal Specification Ian Sommerville 9th EditionFormal Specification Ian Sommerville 9th Edition
Formal Specification Ian Sommerville 9th Edition
 

Recently uploaded

一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
asuzyq
 
一比一原版(Bolton毕业证书)博尔顿大学毕业证成绩单如何办理
一比一原版(Bolton毕业证书)博尔顿大学毕业证成绩单如何办理一比一原版(Bolton毕业证书)博尔顿大学毕业证成绩单如何办理
一比一原版(Bolton毕业证书)博尔顿大学毕业证成绩单如何办理
h7j5io0
 
一比一原版(UAL毕业证书)伦敦艺术大学毕业证成绩单如何办理
一比一原版(UAL毕业证书)伦敦艺术大学毕业证成绩单如何办理一比一原版(UAL毕业证书)伦敦艺术大学毕业证成绩单如何办理
一比一原版(UAL毕业证书)伦敦艺术大学毕业证成绩单如何办理
708pb191
 
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
h7j5io0
 
一比一原版(UNUK毕业证书)诺丁汉大学毕业证如何办理
一比一原版(UNUK毕业证书)诺丁汉大学毕业证如何办理一比一原版(UNUK毕业证书)诺丁汉大学毕业证如何办理
一比一原版(UNUK毕业证书)诺丁汉大学毕业证如何办理
7sd8fier
 
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
n0tivyq
 
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
jyz59f4j
 
Book Formatting: Quality Control Checks for Designers
Book Formatting: Quality Control Checks for DesignersBook Formatting: Quality Control Checks for Designers
Book Formatting: Quality Control Checks for Designers
Confidence Ago
 
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
kecekev
 
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptxUNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
GOWSIKRAJA PALANISAMY
 
Design-Thinking-eBook for Public Service Delivery
Design-Thinking-eBook for Public Service DeliveryDesign-Thinking-eBook for Public Service Delivery
Design-Thinking-eBook for Public Service Delivery
farhanaslam79
 
Portfolio.pdf
Portfolio.pdfPortfolio.pdf
Portfolio.pdf
garcese
 
PDF SubmissionDigital Marketing Institute in Noida
PDF SubmissionDigital Marketing Institute in NoidaPDF SubmissionDigital Marketing Institute in Noida
PDF SubmissionDigital Marketing Institute in Noida
PoojaSaini954651
 
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANEEASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
Febless Hernane
 
Technoblade The Legacy of a Minecraft Legend.
Technoblade The Legacy of a Minecraft Legend.Technoblade The Legacy of a Minecraft Legend.
Technoblade The Legacy of a Minecraft Legend.
Techno Merch
 
原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
gpffo76j
 
Storytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design ProcessStorytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design Process
Chiara Aliotta
 
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdfSECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
eloprejohn333
 
Transforming Brand Perception and Boosting Profitability
Transforming Brand Perception and Boosting ProfitabilityTransforming Brand Perception and Boosting Profitability
Transforming Brand Perception and Boosting Profitability
aaryangarg12
 
Top Israeli Products and Brands - Plan it israel.pdf
Top Israeli Products and Brands - Plan it israel.pdfTop Israeli Products and Brands - Plan it israel.pdf
Top Israeli Products and Brands - Plan it israel.pdf
PlanitIsrael
 

Recently uploaded (20)

一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
一比一原版(Columbia毕业证)哥伦比亚大学毕业证如何办理
 
一比一原版(Bolton毕业证书)博尔顿大学毕业证成绩单如何办理
一比一原版(Bolton毕业证书)博尔顿大学毕业证成绩单如何办理一比一原版(Bolton毕业证书)博尔顿大学毕业证成绩单如何办理
一比一原版(Bolton毕业证书)博尔顿大学毕业证成绩单如何办理
 
一比一原版(UAL毕业证书)伦敦艺术大学毕业证成绩单如何办理
一比一原版(UAL毕业证书)伦敦艺术大学毕业证成绩单如何办理一比一原版(UAL毕业证书)伦敦艺术大学毕业证成绩单如何办理
一比一原版(UAL毕业证书)伦敦艺术大学毕业证成绩单如何办理
 
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
一比一原版(BU毕业证书)伯恩茅斯大学毕业证成绩单如何办理
 
一比一原版(UNUK毕业证书)诺丁汉大学毕业证如何办理
一比一原版(UNUK毕业证书)诺丁汉大学毕业证如何办理一比一原版(UNUK毕业证书)诺丁汉大学毕业证如何办理
一比一原版(UNUK毕业证书)诺丁汉大学毕业证如何办理
 
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
一比一原版(Glasgow毕业证书)格拉斯哥大学毕业证成绩单如何办理
 
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
一比一原版(LSE毕业证书)伦敦政治经济学院毕业证成绩单如何办理
 
Book Formatting: Quality Control Checks for Designers
Book Formatting: Quality Control Checks for DesignersBook Formatting: Quality Control Checks for Designers
Book Formatting: Quality Control Checks for Designers
 
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
 
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptxUNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
 
Design-Thinking-eBook for Public Service Delivery
Design-Thinking-eBook for Public Service DeliveryDesign-Thinking-eBook for Public Service Delivery
Design-Thinking-eBook for Public Service Delivery
 
Portfolio.pdf
Portfolio.pdfPortfolio.pdf
Portfolio.pdf
 
PDF SubmissionDigital Marketing Institute in Noida
PDF SubmissionDigital Marketing Institute in NoidaPDF SubmissionDigital Marketing Institute in Noida
PDF SubmissionDigital Marketing Institute in Noida
 
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANEEASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
EASY TUTORIAL OF HOW TO USE CAPCUT BY: FEBLESS HERNANE
 
Technoblade The Legacy of a Minecraft Legend.
Technoblade The Legacy of a Minecraft Legend.Technoblade The Legacy of a Minecraft Legend.
Technoblade The Legacy of a Minecraft Legend.
 
原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
原版定做(penn毕业证书)美国宾夕法尼亚大学毕业证文凭学历证书原版一模一样
 
Storytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design ProcessStorytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design Process
 
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdfSECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
 
Transforming Brand Perception and Boosting Profitability
Transforming Brand Perception and Boosting ProfitabilityTransforming Brand Perception and Boosting Profitability
Transforming Brand Perception and Boosting Profitability
 
Top Israeli Products and Brands - Plan it israel.pdf
Top Israeli Products and Brands - Plan it israel.pdfTop Israeli Products and Brands - Plan it israel.pdf
Top Israeli Products and Brands - Plan it israel.pdf
 

Lecture 1

  • 1. Formal Methods in Software Engineering
  • 2. Formal methods for the problems What is formal methods? Formal methods = Formal Specification + Refinement + Formal Verification 2 Set theory, logics, algebra, etc.
  • 3. What are Formal Methods? • Definition Mathematically based techniques for the specification, development and verification of software and hardware systems. Can determine if: – Specifications are satisfied. – Implementation of a system is correct. – Proving properties of a system. Formal Methods in Software Engineering 3
  • 4. What are Formal Methods? • Formal Language Specification • Formal Methods are centred around a notation known as a formal specification language. Formal Semantics – Mathematical base allows precise notions. – Unambiguous. – Allows consistency, correctness, specification and implementation to be expressed. Increase Human Understanding of Specified System. & Allow the possibility of formal reasoning and development. Formal Methods in Software Engineering 4
  • 5. Three Levels of Formal Methods Formal Methods in Software Engineering 5 1. Requirements Only 2. No Analysis/Proof 3. Cost effective 1. Produce a program in a more formal manner 2. Use proofs of properties or refinements from formal specification 3. Costly 1. Use theorem prover 2. Fully formal machine- checked proofs. 3. Expensive, hard and often costly 4. Formally prove the entire system. LEVEL 0 Formal Specification LEVEL 1 Formal Verification LEVEL 2 Theorem Provers
  • 6. Software Engineering and Formal Methods • Every Software engineering methodology is based on a recommended development process proceeding through several phases: • Formal methods can: • » Be a foundation for describing complex systems • » Be a foundation for reasoning about systems • » Provide support for program development
  • 7. What are Formal Methods? • Techniques and tools based on mathematics and formal logic • application of discrete mathematics to software engineering • involves modeling and analysis • with an underlying mathematically-precise notation • Can assume various forms and levels of rigor • least rigorous = Occasional mathematical notation embedded in English specifications • most rigorous = Fully formal specification languages with a precise semantics
  • 8. Why Consider Formal Methods? • Systems are increasingly dependent on software components • Complexity of systems with embedded software has increased rapidly • Maintaining reliability in software-intensive systems is very difficult
  • 9. Why should we care? • NIST (National Institute of Standards and Technology) report – software bugs cost $60 billion annually • High profile incidents of systems failure – Therac-25 radiation overdoses, 1985-87 – Northeast blackout, 2003 – Air traffic control, LA airport, 2004
  • 10. Intellectual challenge • Civil engineering – Bridges don’t fail
  • 12. Intellectual challenge • Civil engineering – Bridges don’t fail • Mechanical engineering – Cars are reliable
  • 13.
  • 14. Intellectual challenge • Civil engineering – Bridges don’t fail • Mechanical engineering – Cars are reliable • Software engineering
  • 15.
  • 16. Dijkstra Says  You can only prove the presence of a bug by Testing  BUT!!!! You can not prove the absence of a Bug by Testing
  • 17. Why is software hard? • The human element – Getting a consistent and complete set of requirements is difficult – Requirements often change – Human beings use software in ways never imagined by the designers
  • 18. Why is software hard? • The mathematical element – Huge set of behaviors – Nondeterminism • External due to inputs • Internal due to concurrency – Even if the requirements are unchanging, complete and formally specified, it is infeasible to check all the behaviors
  • 19. What to formalize? • Models of requirements knowledge (so we can reason about them) • Specifications of requirements (so we can document them precisely) • Specifications of program design (so we can verify correctness)
  • 21. Using Formal Methods • Selective use of Formal Methods • Amount of formality can vary • Need not build complete formal models • Apply to the most critical pieces
  • 22. Using Formal Methods • Apply where existing analysis techniques are weak Need not formally analyze every system property E.g. check safety properties only • Need not apply FM in every phase of development E.g. use for modeling requirements, but don’t formalize the system design • Can choose what level of abstraction (amount of detail) to model

Editor's Notes

  1. 1. We typically use natural languages and they are vague