EEL5881 Software Engineering

Slides:



Advertisements
Similar presentations
Lesson Overview 1.1 What Is Science?.
Advertisements

The Scientific Method: DR HERC
Chapter 4 Quality Assurance in Context
A Metric for Evaluating Static Analysis Tools Katrina Tsipenyuk, Fortify Software Brian Chess, Fortify Software.
Lesson Overview 1.1 What Is Science?.
Conclusion There is sufficient evidence from this study to conclude that video modeling, when used alone or in conjunction with a script, does appear to.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Evaluating Hypotheses Chapter 9. Descriptive vs. Inferential Statistics n Descriptive l quantitative descriptions of characteristics.
Evaluating Hypotheses Chapter 9 Homework: 1-9. Descriptive vs. Inferential Statistics n Descriptive l quantitative descriptions of characteristics ~
Analysis of Study Time By:Kristin Taylor. Introduction: Problem Analysis:  Determine how much time is spent studying on a daily and weekly basis.  Time.
OBJECT ORIENTED PROGRAMMING IN C++ LECTURE
1 Software Inspections and Walkthroughs Author: A. Frank Ackerman Presented by Cynthia Johnson EEL6883.
How do Sociologists Study Problems?
Automated Fault Prediction The Ins, The Outs, The Ups, The Downs Elaine Weyuker June 11, 2015.
INTRODUCTION TO SCIENCE & THE
Elaine Weyuker August  To determine which files of a large software system with multiple releases are likely to contain the largest numbers of.
Introduction to Java August 14, 2008 Mrs. C. Furman.
Chapter 22 Developer testing Peter J. Lane. Testing can be difficult for developers to follow  Testing’s goal runs counter to the goals of the other.
Lesson Overview Lesson Overview What Is Science? Lesson Overview 1.1 What Is Science?
Utilizing Databases to Manage Precision Ag Data Candice Johnson BAE 4213 Spring 2004.
“How to Measure the Impact of Specific Development Practices on Fielded Defect Density” by Ann Marie Neufelder Presented by: Feride Padgett.
Lesson Overview Lesson Overview What Is Science? Lesson Overview 1.1 What Is Science?
SOFTWARE METRICS Software Metrics :Roadmap Norman E Fenton and Martin Neil Presented by Santhosh Kumar Grandai.
Experimentation in Computer Science (Part 2). Experimentation in Software Engineering --- Outline  Empirical Strategies  Measurement  Experiment Process.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
1 The Distribution of Faults in a Large Industrial Software System Thomas Ostrand Elaine Weyuker AT&T Labs -- Research Florham Park, NJ.
Chapter 10 Information Systems Development. Learning Objectives Upon successful completion of this chapter, you will be able to: Explain the overall process.
What is Research?. Intro.  Research- “Any honest attempt to study a problem systematically or to add to man’s knowledge of a problem may be regarded.
Unit 1 The Science of Biology Part 1- What is Science?
Effects of Word Concreteness and Spacing on EFL Vocabulary Acquisition 吴翼飞 (南京工业大学,外国语言文学学院,江苏 南京211816) Introduction Vocabulary acquisition is of great.
Nature of Science Vocabulary Words.
Acknowledgement: Khem Gyawali
Tom Ostrand Elaine Weyuker Bob Bell AT&T Labs – Research
CS 389 – Software Engineering
Data, conclusions and generalizations
Lesson Overview 1.1 What Is Science?.
Chapter 2 – Software Processes
Experimental Design Using the scientific method
I Know Where You're Hiding
The Scientific Method C1L1CP1 How do scientists work?
Lesson Overview 1.1 What Is Science?.
Software Engineering Lecture #14.
The Scientific Method.
Data Information Knowledge and Processing
The Scientific Method Ms MacCormack Fall 2018.
Chapter 1: Introduction to Research on Physical Activity
What processes do scientists use when they perform scientific investigations? Chapter Introduction.
Warm-Up.
Summary.
Lesson Overview 1.1 What Is Science?.
Lesson Overview 1.1 What Is Science?.
Lesson Overview 1.1 What Is Science?.
A Metric for Evaluating Static Analysis Tools
Lesson Overview 1.1 What Is Science?.
Experimental Software Engineering (ESE)
Lesson Overview 1.1 What Is Science?.
Introduction to Science and the Scientific Method
Lesson Overview 1.1 What Is Science?.
The Scientific Method and Experimental Design
Lesson Overview 1.1 What Is Science?.
Scientific Inquiry.
Summarizing Journal Articles & Online Tools for Researchers
Chapter 1 The Science of Biology
Scientific Method How Scientists Work.
Lesson Overview 1.1 What Is Science?.
Introduction to the Scientific Method
Presentation transcript:

EEL5881 Software Engineering Kenneth McCoig

The Distribution of Faults in a Large Industrial Software System Thomas J. Ostrand ostrand@research.att.com AT&T Labs – Research 180 Park Avenue Florham Park, NJ 07932 Elaine J. Weyuker weyuker@research.att.com AT&T Labs – Research 180 Park Avenue Florham Park, NJ 07932

Abstract Four questions addressed in study: Ultimate Goal How are faults distributed over different files? How does the size of a module affect fault density? How does faultiness persist from release to release? Are newly written files more fault-prone than ones written for earlier releases? Ultimate Goal The ultimate goal of the authors work is to help determine a way to identify particularly fault-prone files.

Introduction Few studies into dependability of large industrial software systems because: Difficult to locate and gain access to large systems Time consuming/expensive to collect/analyze data Difficult to find personnel with skills to perform empirical studies More case studies needed in this paradigm There have been relatively few studies that investigate dependability of software in large industrial systems. 1. It is difficult to locate and gain access to large systems 2. It is very time consuming and expensive to collect and analyze data 3. It is difficult to find personnel with skills to perform empirical studies. Authors are quick to point out that many more case studys will be needed to prove their ultimate goal (as stated in abstract)

Related Work Fenton and Ohlsson Adams Basili and Perricone, Hatton, Moller and Paulish Fenton and Ohlsson studied two releases of a large commercial system. The General belief is that modules that were found to have a higher concentration of faults during pre-release would have a higher concentration in post-release. They found evidence that this was not the case. Adams also did a study at IBM and determined only 10% of faults that were found in post release are even worth fixing because of field downtime being to costly. The last set of guys point out that some argue the smaller the module size the easier it is to comprehend therefore the less errors can be entered into the system. They actually all found that generally as the size of a module increases the number of faults per unit size decreases.

System Description Inventory tracking system Total of 13 Releases Current version (R13): 500,000 LOC / 1600 files Mostly Java, a few other file types Life cycles phases: Its important to point out this particular systems life cycle phases, because faults when detected were recorded in each phases detected. Requirements Design Development Unit Testing Integration Testing System Testing Beta Release Controlled Release General Release

System Description (cont.) Beta and controlled release phases combined.

System Description (cont.) Inventory tracking system Fault recording/tracking system 4,743 faults over all 13 Releases Fault severity levels 97% of faults detected prior to beta-release Authors include information about a fault recording system already in place at AT&T. Something to note is the 97% fault detection rate before beta-release

Question 1: Fault Distribution Pareto-like distribution of faults? Findings prove similar results of Fenton and Ohlsson This question aims to determine if there is a distribution of faults

Overall Pareto Distribution By Release This table shows a very uneven distribution of faults among files from release 1 to 13.

Fault Distribution for Releases 1, 6, 8, 10, 12

Question 2: Effects of Module Size on Fault-Proneness Results prove the opposite of common belief However all other studies prove inconclusive data This question aims to answer whether file size has anything to do with fault proneness It has been argued that large files are more fault prone than small ones …. Blah blah They believe that this question can only be answered if other variable are known, such as experience of programmer, programming languages, development environments, and applications developed.

Fault Density vs. File Size

Question 3: Persistence of Faults Test results: not enough data However small amount of data shows support for question to be true Data also agrees with Fenton and Ohlsson study This question aims to determine if files with high concentration of faults detected during pre-release also tend to have high concentrations of faults detected during post-release. Also whether faultiness persists between releases.

Distribution of Post-Release Faults

Question 4: Old Files vs. New Results only confirm intuition Nothing new can be derived from this This question aims to determine if newly written files are more fault-prone than ones written for earlier releases.

Conclusions Question 1 hypothesis proven true, opposite of intuition Question 2 hypothesis proven true, however other studies data inconclusive Question 3 hypothesis nothing proven, data insufficient, however little data seems to support true Question 4 hypothesis proven true to intuition Personal thoughts How are faults distributed over different files? How does the size of a module affect fault density? How does faultiness persist from release to release? Are newly written files more fault-prone than ones written for earlier releases? Personal thoughts – this study only provides a small basis of ultimate goal.. There needs to be several more case studies done to determine any form of an alogorithm to determine fault prone files

Questions?