Empirical Results Copyright © Software Carpentry 2011 This work is licensed under the Creative Commons Attribution License See

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Configuration management
Introduction Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See
Introduction Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See
Black Box Software Testing Copyright © Cem Kaner & James Bach 1 Black Box Software Testing Spring 2005 Part 4 -- QUALITY COST ANALYSIS by Cem Kaner,
Floating Point Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Why Use Test Driven Development (TDD)?.  Why the need to change to TDD.  Talk about what TDD is.  Talk about the expectations of TDD.
Software Engineering Session 14 INFM 603. Software Software represents an aspect of reality –Input and output represent the state of the world –Software.
© Microsoft Corporation Analyze This! 145 Questions for Data Scientists in Software Engineering Andrew Begel, Thomas Zimmermann Microsoft Research, USA.
Nine Steps to Delivering Defect-Free Software By: Terence M. Colligan Presented by: Isaac Bailey.
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
WHAT DO WE KNOW? Chris Cannam, SoundSoftware Greg Wilson, Software Carpentry Steve Crouch, Software Sustainability Institute.
What causes bugs? Joshua Sunshine. Bug taxonomy Bug components: – Fault/Defect – Error – Failure Bug categories – Post/pre release – Process stage – Hazard.
We Know Less Than You Think (But We Do Know Something) Copyright © 2009 Gregory V. Wilson. This presentation may be freely used and distributed with attribution.
Swami NatarajanJune 17, 2015 RIT Software Engineering Reliability Engineering.
SE 450 Software Processes & Product Metrics Reliability Engineering.
RIT Software Engineering
SE 450 Software Processes & Product Metrics 1 Defect Removal.
(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Software Test and Analysis in a Nutshell.
CSC 395 – Software Engineering Lecture 9: Testing -or- How I Stopped Worrying and Learned to Love the Bug.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
L ECTURE 2 S OFTWARE P ROCESSES 1. O BJECTIVES To describe outline process models for requirements engineering, software development, testing and evolution.
CODING Research Data Management. Research Data Management Coding When writing software or analytical code it is important that others and your future.
CSCI 5801: Software Engineering
Steve Crouch, Greg Wilson Software Carpentry Why should scientists understand how to write better software? This work is licensed under the Creative Commons.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
Validation Metrics. Metrics are Needed to Answer the Following Questions How much time is required to find bugs, fix them, and verify that they are fixed?
1 POP Quiz T/F Defect Removal Effectiveness and Defect Removal Models are not true Predictive Models Define DRE What is a Checklist? What is it for? What.
Copyright © Software Carpentry 2012 This work is licensed under the Creative Commons Attribution License See
What We Think We Know About Software Development - and Why We Believe it’s True Steve Crouch, SSI with thanks to Greg Wilson Software.
By Touseef Tahir Software Testing Basics. Today's Agenda Software Quality assurance Software Testing Software Test cases Software Test Plans Software.
Configuration Management (CM)
Facts and Fallacies of Software Engineering (Rob Glass) CSE301 University of Sunderland Discussed by Harry R. Erwin, PhD.
ARE PHARMACEUTICAL CORPORATIONS HEROES OR VILLIANS? 2 Lessons
Testing Vs. Inspection Research Paper Diala T. Gammoh, Ph.D. Student Dr. Damla Turgut, Ph.D. University of Central Florida, Orlando Florida
1 Computer Systems & Architecture Lesson Building Systems from Off-the-Shelf Components.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
Debug Concern Navigator Masaru Shiozuka(Kyushu Institute of Technology, Japan) Naoyasu Ubayashi(Kyushu University, Japan) Yasutaka Kamei(Kyushu University,
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Design - programming Cmpe 450 Fall Dynamic Analysis Software quality Design carefully from the start Simple and clean Fewer errors Finding errors.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
1 Software Quality Engineering. 2 Quality Management Models –Tools for helping to monitor and manage the quality of software when it is under development.
The History of Programming Languages The ENIAC (Electronic Numerical Integrator and Calculator) completed in 1945, was one of the first computers that.
Software Engineering Lecture 8: Quality Assurance.
Introduction Requirements and the Software Lifecycle (3)
Copyright © 2003, N. Ahbel Residuals. Copyright © 2003, N. Ahbel Predicted Actual Actual – Predicted = Error Source:
Learning Curves McGraw-Hill/Irwin Copyright © 2012 by The McGraw-Hill Companies, Inc. All rights reserved.
Learning Curves Copyright © 2015 McGraw-Hill Education. All rights reserved. No reproduction or distribution without the prior written consent of McGraw-Hill.
Patterns Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See
Research Software Group To save time, do this now… Go to: In the Etherpad, follow instructions under ‘When you arrive…’
6/22/2016 Tom Gilchrist Cost and Impact of Errors/Defects Errors are introduced in all activities. The longer errors go undetected and.
Myths and truths of software development Chris Cannam, Queen Mary University of London Greg Wilson, Software Carpentry Steve Crouch, Software Sustainability.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
What is a Functional Spec?  Defines what the functionality will be NOT how it will be implemented  Describes features of the software product product's.
Software Development.
Program Design Invasion Percolation: Aliasing
John D. McGregor Session 9 Testing Vocabulary
Software Economics Phase Yield
Software Engineering Empirical Results
Some Important Techniques For Regression Testing That You Must Know.
Critical Systems Validation
Version Control Basic Operation Copyright © Software Carpentry 2010
MATLAB Programming Indexing Copyright © Software Carpentry 2011
Version Control Introduction Copyright © Software Carpentry 2010
Program Design Invasion Percolation: The Grid
Presentation transcript:

Empirical Results Copyright © Software Carpentry 2011 This work is licensed under the Creative Commons Attribution License See for more information. Software Engineering

Empirical Results Seven Years War

Software EngineeringEmpirical Results Seven Years War Actually nine years long ( )

Software EngineeringEmpirical Results Seven Years War Actually nine years long ( ) Britain lost 1,512 sailors to enemy action

Software EngineeringEmpirical Results Seven Years War Actually nine years long ( ) Britain lost 1,512 sailors to enemy action And almost 100,000 to scurvy

Software EngineeringEmpirical Results Seven Years War Actually nine years long ( ) Britain lost 1,512 sailors to enemy action And almost 100,000 to scurvy Unnecessarily

Software EngineeringEmpirical Results James Lind ( ) 1747: first controlled medical experiment in history

Software EngineeringEmpirical Results James Lind ( ) 1747: first controlled medical experiment in history cider sea water vitriol oranges vinegar barley water

Software EngineeringEmpirical Results James Lind ( ) 1747: first controlled medical experiment in history cider sea water vitriol oranges vinegar barley water

Software EngineeringEmpirical Results James Lind ( ) 1747: first controlled medical experiment in history cider sea water vitriol oranges vinegar barley water Allowed British ships to be effective on long patrols during the Napoleonic Wars

Software EngineeringEmpirical Results 1950: Hill & Doll study comparing smokers and non-smokers

Software EngineeringEmpirical Results 1950: Hill & Doll study comparing smokers and non-smokers 1.Smoking causes lung cancer

Software EngineeringEmpirical Results 1950: Hill & Doll study comparing smokers and non-smokers 1.Smoking causes lung cancer 2. Many people would rather fail than change

Software EngineeringEmpirical Results 1950: Hill & Doll study comparing smokers and non-smokers 1.Smoking causes lung cancer 2. Many people would rather fail than change +

Software EngineeringEmpirical Results 1950: Hill & Doll study comparing smokers and non-smokers 1.Smoking causes lung cancer 2. Many people would rather fail than change +

Software EngineeringEmpirical Results A rarity in software engineering until the mid 1990s

Software EngineeringEmpirical Results But today, papers describing new tools or working practices routinely include results from empirical studies A rarity in software engineering until the mid 1990s

Software EngineeringEmpirical Results But today, papers describing new tools or working practices routinely include results from empirical studies Particularly ones by young researchers A rarity in software engineering until the mid 1990s

Software EngineeringEmpirical Results But today, papers describing new tools or working practices routinely include results from empirical studies Particularly ones by young researchers A rarity in software engineering until the mid 1990s Many are flawed or incomplete, but standards are constantly improving

Software EngineeringEmpirical Results

Software EngineeringEmpirical Results

Software EngineeringEmpirical Results

Software EngineeringEmpirical Results

Software EngineeringEmpirical Results

Software EngineeringEmpirical Results

Software EngineeringEmpirical Results Unsurprising in retrospect

Software EngineeringEmpirical Results Unsurprising in retrospect Actionable

Software EngineeringEmpirical Results What goes wrong in developers' first job?

Software EngineeringEmpirical Results What goes wrong in developers' first job?

Software EngineeringEmpirical Results What goes wrong in developers' first job?

Software EngineeringEmpirical Results Also unsurprising in retrospect, and actionable What goes wrong in developers' first job?

Software EngineeringEmpirical Results Statistics is just one path

Software EngineeringEmpirical Results Statistics is just one path

Software EngineeringEmpirical Results Statistics is just one path

Software EngineeringEmpirical Results Statistics is just one path Controlled experiments are expensive…

Software EngineeringEmpirical Results Statistics is just one path Controlled experiments are expensive… …and often eliminate exactly what we want to study

Software EngineeringEmpirical Results Statistics is just one path Controlled experiments are expensive… …and often eliminate exactly what we want to study Biggest hurdle is re-education

Software EngineeringEmpirical Results Test-Driven Development

Software EngineeringEmpirical Results Test-Driven Development An article of faith among many programmers

Software EngineeringEmpirical Results Test-Driven Development An article of faith among many programmers Meta-analysis of over 30 studies No consistent effect

Software EngineeringEmpirical Results Test-Driven Development An article of faith among many programmers Meta-analysis of over 30 studies No consistent effect Some positive

Software EngineeringEmpirical Results Test-Driven Development An article of faith among many programmers Meta-analysis of over 30 studies No consistent effect Some positive Some negative

Software EngineeringEmpirical Results Test-Driven Development An article of faith among many programmers Meta-analysis of over 30 studies No consistent effect Some positive Some negative Some inconclusive

Software EngineeringEmpirical Results Test-Driven Development An article of faith among many programmers Meta-analysis of over 30 studies No consistent effect Some positive Some negative Some inconclusive The better the study, the weaker the signal

Software EngineeringEmpirical Results Boehm et al (1975): "Some Experience with Automated Aids to the Design of Large-Scale Reliable Software"

Software EngineeringEmpirical Results Boehm et al (1975): "Some Experience with Automated Aids to the Design of Large-Scale Reliable Software" …and many more since

Software EngineeringEmpirical Results Boehm et al (1975): "Some Experience with Automated Aids to the Design of Large-Scale Reliable Software" …and many more since time number / cost Most errors introduced during requirements analysis and design

Software EngineeringEmpirical Results Boehm et al (1975): "Some Experience with Automated Aids to the Design of Large-Scale Reliable Software" …and many more since time number / cost Most errors introduced during requirements analysis and design The later they are removed, the more expensive they are

Software EngineeringEmpirical Results Pessimists Optimists

Software EngineeringEmpirical Results If we tackle the hump in the error injection curve, fewer bugs will get to the expensive part of the fixing curve. Pessimists Optimists

Software EngineeringEmpirical Results If we tackle the hump in the error injection curve, fewer bugs will get to the expensive part of the fixing curve. If we do shorter iterations, the total cost of fixing bugs will go down. Pessimists Optimists

Software EngineeringEmpirical Results If we tackle the hump in the error injection curve, fewer bugs will get to the expensive part of the fixing curve. If we do shorter iterations, the total cost of fixing bugs will go down. Pessimists Optimists

Software EngineeringEmpirical Results Fagan 1975: "Design and Code Inspections to Reduce Errors in Program Development"

Software EngineeringEmpirical Results Fagan 1975: "Design and Code Inspections to Reduce Errors in Program Development" Reading code carefully is the most cost effective way to find bugs

Software EngineeringEmpirical Results Fagan 1975: "Design and Code Inspections to Reduce Errors in Program Development" Reading code carefully is the most cost effective way to find bugs Cohen 2006: most of the value comes from the first hour and the first pair of eyes

Software EngineeringEmpirical Results Fagan 1975: "Design and Code Inspections to Reduce Errors in Program Development" Reading code carefully is the most cost effective way to find bugs Cohen 2006: most of the value comes from the first hour and the first pair of eyes Code review now normal in open source

Software EngineeringEmpirical Results

Software EngineeringEmpirical Results Do programming languages affect productivity?

Software EngineeringEmpirical Results Do programming languages affect productivity? Does using design patterns make for better code?

Software EngineeringEmpirical Results Do programming languages affect productivity? Does using design patterns make for better code? Can we predict software faults statistically?

Software EngineeringEmpirical Results Is up-front design cost-effective? Do programming languages affect productivity? Does using design patterns make for better code? Can we predict software faults statistically?

Software EngineeringEmpirical Results Is up-front design cost-effective? Why is it hard to learn how to program? Do programming languages affect productivity? Does using design patterns make for better code? Can we predict software faults statistically?

Software EngineeringEmpirical Results Is up-front architecture cost-effective? Why is it hard to learn how to program? Is open source software actually better? Do programming languages affect productivity? Does using design patterns make for better code? Can we predict software faults statistically?

Software EngineeringEmpirical Results Is up-front architecture cost-effective? Why is it hard to learn how to program? Is open source software actually better? Are some programmers 10X better? Do programming languages affect productivity? Does using design patterns make for better code? Can we predict software faults statistically?

February 2011 Copyright © Software Carpentry 2011 This work is licensed under the Creative Commons Attribution License See for more information. narrated by Greg Wilson