SlideShare una empresa de Scribd logo
1 de 114
Descargar para leer sin conexión
FETCHING MOTHS
FROM THE WORKS
CORRECTNESS METHODS IN SOFTWARE
- or -
An Investigation into the
Nature of Software with
a Particular Concern
toward its Effective
Construction
- or -
Why do Computers
Fail and What can
be Done About It?
Why do Computers Stop
and What Can be Done
About It?
Jim Gray - 1986
@bltroutwine Moonconf, 2016
“The resulting systems
have hardware MTBF
measured in decades or
centuries. ”
@bltroutwine Moonconf, 2016
“Unfortunately, it says
nothing about tolerating
the major sources of
failure. . .”
@bltroutwine Moonconf, 2016
“Software”
@bltroutwine Moonconf, 2016
design failures,
open doors --
@bltroutwine Moonconf, 2016
The Case of the Three
Engineers vs. BART
Gordon Friedlander - 1974
@bltroutwine Moonconf, 2016
agile iteration
takes to the sky --
@bltroutwine Moonconf, 2016
SIGSOFTVol. 6 No. 2:
Frontmatter
*gSoft Editor - 1981
@bltroutwine Moonconf, 2016
a bug affects the
staging prototype --
@bltroutwine Moonconf, 2016
The BUG Heard 'Round
the World
Discussion of The Software Problem Which Delayed the
First Shuttle Orbital Flight
John Garman - 1981
@bltroutwine Moonconf, 2016
“Maintaining software
systems in the field, absorbing
large changes or additions in
the middle of development
cycles. . .
@bltroutwine Moonconf, 2016
. . . reconfiguring software
systems to ‘fit’ never-quite-
identical vehicles or missions
are our real problems today.”
@bltroutwine Moonconf, 2016
That was the late
1970s, have we made
progress?
@bltroutwine Moonconf, 2016
Yes!
@bltroutwine Moonconf, 2016
Sorta!
@bltroutwine Moonconf, 2016
‘Correct’ is not a
state, it’s a goal.
@bltroutwine Moonconf, 2016
What’s needed is an
understanding of how
we fail to achieve it.
@bltroutwine Moonconf, 2016
Analyzing Software
Requirements Errors in
Safety-Critical, Embedded
Systems
Robin R. Lutz - 1993
@bltroutwine Moonconf, 2016
“Few internal faults
were uncovered
during integration and
system testing.”
@bltroutwine Moonconf, 2016
“Functional faults are
the most common kind
of software error.”
@bltroutwine Moonconf, 2016
What kind of software
faults are there?
@bltroutwine Moonconf, 2016
Program Faults
• Internal mistakes
• Interface violations
• Functional violations
@bltroutwine Moonconf, 2016
Program Faults
• Internal
• Interface
• Functional
Bugs
@bltroutwine Moonconf, 2016
Human Error
• Intra-team comms.
• Extra-team comms.
• Misunderstanding spec.
• Mishandling spec.
@bltroutwine Moonconf, 2016
Human Error
• Intra-team comms.
• Extra-team comms.
• Misunderstanding spec.
• Mishandling spec.
Comm.
Problems@bltroutwine Moonconf, 2016
Process Error
• Inadequate testing
• Inadequate specs.
• Unknown requirements
• Incorrect requirements
@bltroutwine Moonconf, 2016
Process Error
• Inadequate testing
• Inadequate specs.
• Unknown requirements
• Incorrect requirements
Org.
Goofs@bltroutwine Moonconf, 2016
‘Correct’ breaks down
into two sub-goals.
@bltroutwine Moonconf, 2016
- Validation -
@bltroutwine Moonconf, 2016
- Verification -
@bltroutwine Moonconf, 2016
What steps can we
take today?
@bltroutwine Moonconf, 2016
Step 0.
@bltroutwine Moonconf, 2016
Convince your
organization to
invest.
@bltroutwine Moonconf, 2016
Eliminating Embedded
Software Defects Prior to
Integration Test
Ted Bennett, Paul Wennberg - 2005
@bltroutwine Moonconf, 2016
“The more faults that pass
undetected into integration test
and beyond, the more the
project will cost and the longer
it will take to complete.”
@bltroutwine Moonconf, 2016
Step 1.
@bltroutwine Moonconf, 2016
Aim to make
systems both safe
and reliable.
@bltroutwine Moonconf, 2016
Engineering a Safer World
Systems Thinking Applied to Safety
Nancy Leveson - 2011
@bltroutwine Moonconf, 2016
Step 2.
@bltroutwine Moonconf, 2016
Be clear on what
your system must
and mustn’t do.
@bltroutwine Moonconf, 2016
The Role of Software in
Spacecraft Accidents
Nancy Leveson - 2004
@bltroutwine Moonconf, 2016
“. . .software specifications often
describe nominal behavior well
but are very incomplete with
respect to required software
behavior under off-nominal
conditions . . .
@bltroutwine Moonconf, 2016
“Most safety-related
requirements. . .are best
described using. . .design
constraints.”
@bltroutwine Moonconf, 2016
Step 3.
@bltroutwine Moonconf, 2016
"We don't want
nobody that nobody
sent."
@bltroutwine Moonconf, 2016
The Role of Software in
Spacecraft Accidents
Nancy Leveson - 2004
@bltroutwine Moonconf, 2016
“It is widely believed that because
software has executed safely in
other applications, it will be safe
in the new one. . .
@bltroutwine Moonconf, 2016
(M)ost accidents involve software
that is doing exactly what it was
designed to do (but) it reliably
performs the wrong function.”
@bltroutwine Moonconf, 2016
Step 4.
@bltroutwine Moonconf, 2016
Audit and review
all code. Aid with
automated tests.
@bltroutwine Moonconf, 2016
The OpenBSD Culture
David Gwynne - 2006
@bltroutwine Moonconf, 2016
Going Fast Slowly
Poul-Henning Kamp, 2016
@bltroutwine Moonconf, 2016
How SQLite is Tested
Dwayne Hipp - 2009
@bltroutwine Moonconf, 2016
Step 5.
@bltroutwine Moonconf, 2016
Use randomized testing
and track coverage.
@bltroutwine Moonconf, 2016
An Evaluation of Randomized
Testing
Joe Duran, *meon Ntafos - 1984
@bltroutwine Moonconf, 2016
“Our experiments have
shown that random testing
can discover some relatively
subtle errors without a great
deal of effort.”
@bltroutwine Moonconf, 2016
QuickCheck
A Lightweight Tool for Random Testing of Haskell Programs
Coen Claessen, John Hughes - 2000
@bltroutwine Moonconf, 2016
Step 6.
@bltroutwine Moonconf, 2016
Be willing to
change your
approach.
@bltroutwine Moonconf, 2016
An Experimental Evaluation
of the Assumption of
Independence in Multiversion
Programming
Nancy Leveson, John Knight - 1986
@bltroutwine Moonconf, 2016
Step 7.
@bltroutwine Moonconf, 2016
Use tools amenable to
formal methods.
@bltroutwine Moonconf, 2016
Rigorous Software
Development
An Introduction to ProgramVerification
Jose Almedia et al., 2011
@bltroutwine Moonconf, 2016
Building High Integrity
Applications with SPARK
John McCormick, Peter Chapin - 2015
@bltroutwine Moonconf, 2016
Step 9.
@bltroutwine Moonconf, 2016
Use formal methods.
@bltroutwine Moonconf, 2016
Formal Specification and
Documentation with Z
A Case Study Approach
Jonathan Bowen, 2003
@bltroutwine Moonconf, 2016
Moving Fast with Software
Verification
Cristiano Calcagno et al., 2015
@bltroutwine Moonconf, 2016
Step 9.
@bltroutwine Moonconf, 2016
Build simple.
@bltroutwine Moonconf, 2016
Out of the Tar Pit
Ben Moseley, Peter Marks - 2006
@bltroutwine Moonconf, 2016
Normal Accidents
Living with High-Risk Technologies
Charles Perrow - 1986
@bltroutwine Moonconf, 2016
Step 10.
@bltroutwine Moonconf, 2016
Build for failure.
@bltroutwine Moonconf, 2016
Crash-Only Software
George Candea, Armando Fox - 2003
@bltroutwine Moonconf, 2016
Making Reliable Distributed
Systems in the Presence of
Software Errors
Joe Armstrong - 2003
@bltroutwine Moonconf, 2016
“We assume that such
programs do contain errors,
and investigate methods for
building reliable systems
despite such errors.”
@bltroutwine Moonconf, 2016
What must we invent?
@bltroutwine Moonconf, 2016
Formal specification
tools a project
manager can love.
@bltroutwine Moonconf, 2016
Effective system
modeling tools.
@bltroutwine Moonconf, 2016
Methods for the
effective analysis of
running systems.
@bltroutwine Moonconf, 2016
A techno-political
culture of excellence.
@bltroutwine Moonconf, 2016
What can we study?
@bltroutwine Moonconf, 2016
Lots!
@bltroutwine Moonconf, 2016
The End!

Más contenido relacionado

Similar a (Moonconf 2016) Fetching Moths from the Works: Correctness Methods in Software

BOB EVANS FARMS INC. PROJECT MANAGEMENT PLAN .docx
BOB EVANS FARMS INC. PROJECT MANAGEMENT PLAN                   .docxBOB EVANS FARMS INC. PROJECT MANAGEMENT PLAN                   .docx
BOB EVANS FARMS INC. PROJECT MANAGEMENT PLAN .docx
AASTHA76
 
Couchville: The Rise and Fall of a TV listings website
Couchville: The Rise and Fall of a TV listings websiteCouchville: The Rise and Fall of a TV listings website
Couchville: The Rise and Fall of a TV listings website
guest614f3f
 
Couchville: The Rise and Fall of a TV listings website
Couchville: The Rise and Fall of a TV listings websiteCouchville: The Rise and Fall of a TV listings website
Couchville: The Rise and Fall of a TV listings website
rakeshagrawal
 
Guide Tiles - Intern Project
Guide Tiles - Intern ProjectGuide Tiles - Intern Project
Guide Tiles - Intern Project
Joe Bieselin
 

Similar a (Moonconf 2016) Fetching Moths from the Works: Correctness Methods in Software (20)

Building Buy-In: Internally Positioning UX for Executive Impact
Building Buy-In: Internally Positioning UX for Executive ImpactBuilding Buy-In: Internally Positioning UX for Executive Impact
Building Buy-In: Internally Positioning UX for Executive Impact
 
Testing in the Dark
Testing in the DarkTesting in the Dark
Testing in the Dark
 
BOB EVANS FARMS INC. PROJECT MANAGEMENT PLAN .docx
BOB EVANS FARMS INC. PROJECT MANAGEMENT PLAN                   .docxBOB EVANS FARMS INC. PROJECT MANAGEMENT PLAN                   .docx
BOB EVANS FARMS INC. PROJECT MANAGEMENT PLAN .docx
 
The One-Shot Product by Microsoft Product Leader
The One-Shot Product by Microsoft Product LeaderThe One-Shot Product by Microsoft Product Leader
The One-Shot Product by Microsoft Product Leader
 
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
Your Testing Is Flawed: Introducing A New Open Source Tool For Accurate Kuber...
 
Making The Source for Macmillan Cancer Support: Rob Pearson's talk at Product...
Making The Source for Macmillan Cancer Support: Rob Pearson's talk at Product...Making The Source for Macmillan Cancer Support: Rob Pearson's talk at Product...
Making The Source for Macmillan Cancer Support: Rob Pearson's talk at Product...
 
Cwin16 tls-s2-implementing a dev ops pipeline
Cwin16 tls-s2-implementing a dev ops pipelineCwin16 tls-s2-implementing a dev ops pipeline
Cwin16 tls-s2-implementing a dev ops pipeline
 
Unlocking Software Testing Circa 2016
Unlocking Software Testing Circa 2016Unlocking Software Testing Circa 2016
Unlocking Software Testing Circa 2016
 
Cybercrime and the developer 2021 style
Cybercrime and the developer 2021 styleCybercrime and the developer 2021 style
Cybercrime and the developer 2021 style
 
Couchville: The Rise and Fall of a TV listings website
Couchville: The Rise and Fall of a TV listings websiteCouchville: The Rise and Fall of a TV listings website
Couchville: The Rise and Fall of a TV listings website
 
Couchville: The Rise and Fall of a TV listings website
Couchville: The Rise and Fall of a TV listings websiteCouchville: The Rise and Fall of a TV listings website
Couchville: The Rise and Fall of a TV listings website
 
PNSQC 2021 January 28 Culture Jam
PNSQC 2021 January 28 Culture JamPNSQC 2021 January 28 Culture Jam
PNSQC 2021 January 28 Culture Jam
 
Weapons of Math Instruction: Evolving from Data0-Driven to Science-Driven
Weapons of Math Instruction: Evolving from Data0-Driven to Science-DrivenWeapons of Math Instruction: Evolving from Data0-Driven to Science-Driven
Weapons of Math Instruction: Evolving from Data0-Driven to Science-Driven
 
Stop manual testing: Take your weekends back!
Stop manual testing: Take your weekends back! Stop manual testing: Take your weekends back!
Stop manual testing: Take your weekends back!
 
Do I Use Planner, Project Online, or Azure DevOps?
Do I Use Planner, Project Online, or Azure DevOps?Do I Use Planner, Project Online, or Azure DevOps?
Do I Use Planner, Project Online, or Azure DevOps?
 
Guide Tiles - Intern Project
Guide Tiles - Intern ProjectGuide Tiles - Intern Project
Guide Tiles - Intern Project
 
Metrics for design decisions_Diana Prokusheva
Metrics for design decisions_Diana ProkushevaMetrics for design decisions_Diana Prokusheva
Metrics for design decisions_Diana Prokusheva
 
Intro to Data Analytics with Oscar's Director of Product
 Intro to Data Analytics with Oscar's Director of Product Intro to Data Analytics with Oscar's Director of Product
Intro to Data Analytics with Oscar's Director of Product
 
Modern Monitoring - devopsdays Cuba
Modern Monitoring - devopsdays CubaModern Monitoring - devopsdays Cuba
Modern Monitoring - devopsdays Cuba
 
AWS re:Invent 2016: How A Federal Agency Transformed Work and Adopted DevOps ...
AWS re:Invent 2016: How A Federal Agency Transformed Work and Adopted DevOps ...AWS re:Invent 2016: How A Federal Agency Transformed Work and Adopted DevOps ...
AWS re:Invent 2016: How A Federal Agency Transformed Work and Adopted DevOps ...
 

Más de Brian Troutwine

Más de Brian Troutwine (9)

Fault-tolerance on the Cheap: Making Systems That (Probably) Won't Fall Over
Fault-tolerance on the Cheap: Making Systems That (Probably) Won't Fall Over Fault-tolerance on the Cheap: Making Systems That (Probably) Won't Fall Over
Fault-tolerance on the Cheap: Making Systems That (Probably) Won't Fall Over
 
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard World
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard WorldMonitoring Complex Systems: Keeping Your Head on Straight in a Hard World
Monitoring Complex Systems: Keeping Your Head on Straight in a Hard World
 
Let it crash! The Erlang Approach to Building Reliable Services
Let it crash! The Erlang Approach to Building Reliable ServicesLet it crash! The Erlang Approach to Building Reliable Services
Let it crash! The Erlang Approach to Building Reliable Services
 
Automation With Humans in Mind: Making Complex Systems Predictable, Reliable ...
Automation With Humans in Mind: Making Complex Systems Predictable, Reliable ...Automation With Humans in Mind: Making Complex Systems Predictable, Reliable ...
Automation With Humans in Mind: Making Complex Systems Predictable, Reliable ...
 
Monitoring Complex Systems - Chicago Erlang, 2014
Monitoring Complex Systems - Chicago Erlang, 2014Monitoring Complex Systems - Chicago Erlang, 2014
Monitoring Complex Systems - Chicago Erlang, 2014
 
Erlang, LFE, Joxa and Elixir: Established and Emerging Languages in the Erlan...
Erlang, LFE, Joxa and Elixir: Established and Emerging Languages in the Erlan...Erlang, LFE, Joxa and Elixir: Established and Emerging Languages in the Erlan...
Erlang, LFE, Joxa and Elixir: Established and Emerging Languages in the Erlan...
 
Instrumentation as a Living Documentation: Teaching Humans About Complex Systems
Instrumentation as a Living Documentation: Teaching Humans About Complex SystemsInstrumentation as a Living Documentation: Teaching Humans About Complex Systems
Instrumentation as a Living Documentation: Teaching Humans About Complex Systems
 
10 Billion a Day, 100 Milliseconds Per: Monitoring Real-Time Bidding at AdRoll
10 Billion a Day, 100 Milliseconds Per: Monitoring Real-Time Bidding at AdRoll10 Billion a Day, 100 Milliseconds Per: Monitoring Real-Time Bidding at AdRoll
10 Billion a Day, 100 Milliseconds Per: Monitoring Real-Time Bidding at AdRoll
 
Monitoring with exometer at AdRoll
Monitoring with exometer at AdRollMonitoring with exometer at AdRoll
Monitoring with exometer at AdRoll
 

Último

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Último (20)

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 

(Moonconf 2016) Fetching Moths from the Works: Correctness Methods in Software