Copyright 1995-2007, Dennis J. Frailey CSE8314 - Software Measurement and Quality Engineering CSE8314 M00 - Version 7.09 SMU CSE 8314 Software Measurement.

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

Software Quality Assurance Plan
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Chapter 4 Quality Assurance in Context
Copyright , Dennis J. Frailey CSE7315 – Software Project Management CSE7315 M30 - Version 9.01 SMU CSE 7315 Planning and Managing a Software Project.
Computer Engineering 203 R Smith Project Tracking 12/ Project Tracking Why do we want to track a project? What is the projects MOV? – Why is tracking.
1 Exponential Distribution and Reliability Growth Models Kan Ch 8 Steve Chenoweth, RHIT Right: Wait – I always thought “exponential growth” was like this!
Software Development Process Models. The Waterfall Development Model.
Software Quality Engineering Roadmap
Overview Lesson 10,11 - Software Quality Assurance
Swami NatarajanJune 17, 2015 RIT Software Engineering Reliability Engineering.
RIT Software Engineering
SE 450 Software Processes & Product Metrics 1 Defect Removal.
Software Defect Modeling at JPL John N. Spagnuolo Jr. and John D. Powell 19th International Forum on COCOMO and Software Cost Modeling 10/27/2004.
EXAMPLES OF METRICS PROGRAMS
Software Process and Product Metrics
12 Steps to Useful Software Metrics
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
Capability Maturity Model
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
Software Project Management
Pop Quiz How does fix response time and fix quality impact Customer Satisfaction? What is a Risk Exposure calculation? What’s a Scatter Diagram and why.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 24 Slide 1 Critical Systems Validation 1.
S T A M © 2000, KPA Ltd. Software Trouble Assessment Matrix Software Trouble Assessment Matrix *This presentation is extracted from SOFTWARE PROCESS QUALITY:
 Copyright © 2010 Pearson Education, Inc. Publishing as Prentice Hall Chapter 7 Quality and Innovation in Product and Process Design.
Quality Planning & Defect Estimation
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
CLEANROOM SOFTWARE ENGINEERING.
N By: Md Rezaul Huda Reza n
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 10: Testing and Inspecting to Ensure High Quality Part 4:
Unit 8 Syllabus Quality Management : Quality concepts, Software quality assurance, Software Reviews, Formal technical reviews, Statistical Software quality.
By: Md Rezaul Huda Reza 5Ps for SE Process Project Product People Problem.
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
Software Engineering Software Process and Project Metrics.
Quality Control Project Management Unit Credit Value : 4 Essential
Disciplined Software Engineering Lecture #6 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Software Quality Assurance SE Software Quality Assurance What is “quality”?
Software Measurement & Metrics
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Software Project Management Lecture # 11. Outline Quality Management (chapter 26 - Pressman)  What is quality?  Meaning of Quality in Various Context.
CSE SW Metrics and Quality Engineering Copyright © , Dennis J. Frailey, All Rights Reserved CSE8314M10 8/20/2001Slide 1 SMU CSE 8314 /
Chapter 6: THE EIGHT STEP PROCESS FOCUS: This chapter provides a description of the application of customer-driven project management.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Carnegie Mellon Software Engineering Institute © 2006 by Carnegie Mellon University Software Process Performance Measures James Over Software Engineering.
CSE SW Measurement and Quality Engineering Copyright © , Dennis J. Frailey, All Rights Reserved CSE8314M15 version 5.09Slide 1 SMU CSE.
CSE SW Measurement and Quality Engineering Copyright © , Dennis J. Frailey, All Rights Reserved CSE8314M14 version 3.09Slide 1 SMU CSE.
CSE SW Measurement and Quality Engineering Copyright © , Dennis J. Frailey, All Rights Reserved CSE8314M31 version 5.09Slide 1 SMU CSE.
CSE SW Metrics and Quality Engineering Copyright © , Dennis J. Frailey, All Rights Reserved CSE8314M13 8/20/2001Slide 1 SMU CSE 8314 /
CSE SW Metrics and Quality Engineering Copyright © , Dennis J. Frailey, All Rights Reserved CSE8314M37 8/20/2001Slide 1 SMU CSE 8314 /
CSE SW Project Management / Module 30 - Managing with Earned Value / Measurement Issues Copyright © , Dennis J. Frailey, All Rights Reserved.
CSE SW Metrics and Quality Engineering Copyright © , Dennis J. Frailey, All Rights Reserved CSE8314M12 8/20/2001Slide 1 SMU CSE 8314 /
Copyright , Dennis J. Frailey CSE7315 – Software Project Management CSE7315 M15 - Version 9.01 SMU CSE 7315 Planning and Managing a Software Project.
Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M31 - Version 7.09 SMU CSE 8314 Software Measurement.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
CSE SW Metrics and Quality Engineering Copyright © , Dennis J. Frailey, All Rights Reserved CSE8314M11 8/20/2001Slide 1 SMU CSE 8314 /
Chapter 05 Quality Planning SaigonTech – Engineering Division Software Project Management in Practice By Pankaj Jalote © 2003 by Addison Wesley.
1 Software Testing and Quality Assurance Lecture 38 – Software Quality Assurance.
CSE SW Metrics and Quality Engineering Copyright © , Dennis J. Frailey, All Rights Reserved CSE8314M33 8/20/2001Slide 1 SMU CSE 8314 /
Overview Definition Measurements of process capability control
Configuration Management
Chapter 18 Maintaining Information Systems
Configuration Management
12 Steps to Useful Software Metrics
Manfred Huber Based on an earlier presentation by Mike O’Dell, UTA
Software Reliability Models.
Test Planning Mike O’Dell (some edits by Vassilis Athitsos)
Critical Systems Validation
Capability Maturity Model
Capability Maturity Model
Presentation transcript:

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version 7.09 SMU CSE 8314 Software Measurement and Quality Engineering Module 13 Software Reliability Models - Part 1

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Contents  Seeding and Tagging  Weibull Distribution  Rayleigh Distribution  IEEE SW Reliability Standard  Summary

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version 7.09 Seeding and Tagging

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Seeding and Tagging  Introduce a given number of errors into the software -- say E of them  Run standard tests, detecting D of them  Compute D/E = % of errors detected  Suppose D 2 = number of other errors detected  Then you assume the total number of errors in the software is D 2 *E/D

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Example of Seeding and Tagging  200 defects found so far  Inject 20 defects  Find 12 of them  Therefore, assume total defects = 200 * 20 / 12 = 4000 / 12 = 333 => = 133 defects remaining By performing this analysis from time to time, you can estimate your defect density over time.

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version 7.09 Distributions Other than Exponential Weibull Distribution Rayleigh Distribution

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Weibull Distribution  (shape parameter) allows reliability to increase or to decrease makes it equal to the exponential distribution (t)  =   t  -1 This is a useful model for trying to fit lots of different data sets, because it allows both increases and decreases.

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Rayleigh Distribution: Same as Weibull with  = 2 (t)  =  t  -2 Some researchers have found that this distribution fits certain software cases.

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version 7.09 IEEE Reliability Standards

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version The Real Need A way to manage reliability throughout the life cycle of the software  This is the basis for the IEEE software reliability standard: “IEEE STD Software Reliability Metrics” & IEEE Guide (also see: IEEE STD Software Quality Assurance)

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version IEEE Software Reliability Standard 39 Measures applicability (1) Dobbins, James H., “SW Reliability Management,” in Handbook of SW Quality Assurance, Chapter 19.

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version IEEE Standard Reliability Measures  Following are available for each measure –Description of use –Identification & definition of primitives –How it is implemented –How results are to be integrated –Special considerations –Special training or experience required –Specific example –Summary of benefits –Experience history –Published References

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Factors Contributing to Selection of IEEE Measures  Ease of collection of primitive data  Relationship between results & reliability  Ease of interpretation of results  Usefulness of results in management of the aspect being measured  Need for measurements in each aspect of each life cycle phase  Ease of implementation  Cost of implementation

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Three Basic Phases Predict Reliability Estimate Reliability Measure Reliability Start Coding Release Software Requirements Design Code Test Maintain Support

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version 7.09 Some of the IEEE Measures Unless otherwise specified, all of these are measured during development to help you assess, predict, estimate and/or control defect levels in your software.

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Fault Density Total Faults per 1000 Lines of Code Used to –Predict remaining faults –Assess testing sufficiency –Establish historical data You can also track this after releasing the software

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Data Used to Measure Fault Density i = failure number n i = number of faults per failure N T =  n i = total faults found n f = fault density

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Fault Density Formula or n f = N T / KSLOC n f =  n i / KSLOC

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Graph of Fault Density

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Use of Fault Density  You can use fault density to estimate how close you are to finding all of the faults, and thus make decisions about whether to release software to the next development phase (or to the customer)  After software release, you can continue to measure (to see how well you estimated defects remaining)

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Additional Data Used to Categorize Faults d i = date of failure S i = severity of failure CL i = class of failure C i = type of fault These can help you determine which faults to focus on You may measure density separately for different classes or types or severity levels

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Faults Detected (per time period)  This can give you some idea of how well you are finding defects and thus how many defects are left in the software

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Faults Detected Per Week

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Defect Density (pre-release)  This is similar to fault density, but is usually normalized by the size of the software  It tells you how your software compares with other software, so you have an idea of whether yours meets your norms or expectations You can also track this after releasing the software

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Defect Density Definitions (pre-release)  A defect is a problem found during an inspection of the design, requirements, code, etc. i = inspection number D i = total defects found in ith inspection n = number of inspections  Defect density is the total defects, normalized by the size of the software

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Defect Density Equation (pre-release) n DD =  D i / KSLOC i=1

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Using Defect Density  To use defect density, you should track how many you find before you release the product to the next phase  Over time, you can determine typical behaviors and thus meet goals or predict defect levels

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Defect Density Requirements Analysis

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Defect Density Software Design

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Defect Density Code and Unit Test

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Requirements Traceability Goals: –Identify missing requirements –Identify features that are not required  Also known as “gold plating” –Measure progress in design and coding phases

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Requirements Traceability Equation RT = R1 / R2 * 100% Data needed to compute this: R1 = number of requirements traceable to specific design or code elements R2 = total number of requirements

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Requirements Traceability Variants and Usage Additional variants: –Trace to test cases –Trace from code/design/tests to requirements Usage notes: –This type of measure can be hard to keep up with and of limited utility if requirements change frequently. It works best if requirements are stable and defined.

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Defect Index (for each phase) Goal: –Provide an estimate of the relative correctness of the software Primitive Data: i = phase number N i = no of defects found in phase i Further Refinement: S i = # of serious defects found in phase i M i = # of medium defects found in phase i T i = # of trivial defects found in phase i

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Weighting for Defect Importance W S (typically 10) = weighting factor for serious defects W M (typically 3) = weighting factor for medium defects W T (typically 1) = weighting factor for trivial defects

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Phase Defect Index W S * S i W M * M i W T * T i Pi =______ + ______ + ______ N i N i N i

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Use of Phase Defect Index  This indicates the defect level of each phase  It can be used to see if a given phase is generating too many defects and, if so, whether they are important ones

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Overall Defect Index  i * P i DI =______ KSLOC

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Software Maturity Index Goal: –Help determine if we are ready for delivery Primitive Data: M T = # of functions in current release F c = # of functions changed since prior release F a = # of functions added since prior release F d = # of functions deleted from prior release

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Software Maturity Measure No 1: –For the most recently delivered software, count F c –For the next release, count F a, F d, M T M T - (F a + F c + F d ) MI =_______________ M T

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Software Maturity Measure No 2: M T - F c SMI =_______ M T

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Notes on IEEE Measures  These are indicators, not absolute measures  They must be calibrated to your data in order to be of most use  Despite the fact that they are over twenty years old, not very many practicing software organizations have used them –Cost –Not invented here –Fear of measurement

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version Summary  Simple models such as “seed and test” can give some concept of reliability  More complex distribution models may give better results if they match the behavior of the specific type of software  IEEE measures represent one set of possible metrics for estimating and managing reliability

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version References  IEEE STD 982.1, Software Reliability Metrics & IEEE Guide New York, Institute of Electrical and Electronics Engineers, Inc.  Lyu, Michael R., Handbook of Software Reliability Engineering, IEEE, 1996, Catalog # RS ISBN

Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version END OF MODULE 13