+ All Categories
Home > Documents > Software Reliability

Software Reliability

Date post: 15-Mar-2016
Category:
Upload: keegan-moody
View: 74 times
Download: 2 times
Share this document with a friend
Description:
Software Reliability. Aaron Hoff. Overview. Compare and hardware and software reliability Discuss why software should be reliable? Describe MLE (Maximum Likelihood Estimation) Show two specific reliability models Mill’s Error Seeding Model Jelinski-Moranda Model - PowerPoint PPT Presentation
Popular Tags:
28
Software Reliability Aaron Hoff
Transcript
Page 1: Software Reliability

Software Reliability

Aaron Hoff

Page 2: Software Reliability

OverviewCompare and hardware and software

reliabilityDiscuss why software should be reliable?Describe MLE (Maximum Likelihood

Estimation)Show two specific reliability models

Mill’s Error Seeding ModelJelinski-Moranda Model

Software Reliability ToolsTrainingConclusion

Page 3: Software Reliability

ReliabilityWebster’s Dictionary defines reliability as:

1. The quality or state of being suitable or fit to be relied on, dependable2. The extent to which an experiment, test, or measuring procedure yields the same result on repeated trials.

Page 4: Software Reliability

Hardware Reliability

Page 5: Software Reliability

Hardware Reliability(cont.)Failure rate is very high during the burn in

period.Many faults are found on all components.Thorough testing of all components cuts

down on the number of faults.Enters the useful life with small amount of

faults.After time, wears down and quickly increases

in failure rate.

Page 6: Software Reliability

Software Reliability

Page 7: Software Reliability

Software Reliability(cont.)Starts with many faults in system when first

createdAfter much testing/debugging enters useful

life cycleUseful life includes upgrades made to system

which bring about new faults.System needs to then be tested to reduce

faults.Eventually evens out into the Obsolescence

cycle where software is usually quite reliable.

Page 8: Software Reliability

Compare/Contrast HW & SWBoth start out with large number of faultsBoth need to be tested completely

Hardware faults are physical, software faults are not

Hardware stays at steady reliability level in useful life, software needs constant testing after upgrades.

Hardware wears out over time, software does not.

Hardware failure is random, software failure is systematic.

Page 9: Software Reliability

Why should software be reliable?Examples of software failure

Therac 25 (1985 – 1986)Ariane 5 (1996)Mars Lander (1999)

Lives can be put in dangerMoney and time can be lostLost trust of customers.

Page 10: Software Reliability

Software Reliability ModelsWhy do we need them?

Predict probability of failure of a component or system

Estimate the mean time to the next failure Predict number of (remaining) failures

Page 11: Software Reliability

Software Reliability ModelsMany models have come out to help increase

reliabilityAll models can be grouped into these

categories: Error seeding, Failure rate, Curve fitting, Reliability growth, Program structure, Input domain, Execution path, Nonhomogenous Poisson process, Bayesian and unified, and Markov.

MLE(Maximum likelihood estimation) is method used for fitting statistical model to data

Page 12: Software Reliability

MLEPrinciple is to estimate parameter values of

models which make observed data most likely to occur

Probability itself cannot be used for estimation of parameters

MLE uses likelihood instead to estimate parameter values

Uses sample data set to estimate different parameter values.

Page 13: Software Reliability

Coin Flip ExampleProbability of flipping heads over 100 flips is

0.5Say sample set is: Heads was flipped 56 times

Plug variety of probability values into this model to obtain data that can be graphed.

Page 14: Software Reliability

Graph for MLE of Coin Flip example

Page 15: Software Reliability

Error SeedingEstimates total number of errors by

introducing known errors into software.Terminology

Inherent error – one found in software that causes failure regardless of what user does.

Induced(seeded) error – one intentionally inserted into piece of software to estimate total number of errors

Page 16: Software Reliability

Mill’s error seeding modelProposed in 1970 by MillUsed during testing phaseDevelopers/Testers insert errors in places

they think errors would occur (error prone locations)

Test whole systemGather data on all errors found during testing

processTotal number of errors can then be estimated

Page 17: Software Reliability

Mill’s Error Seeding Model(cont.)Hypergeometric distribution to find probability of k induced

errors

where N = total number of inherent errorsn1 = total number of induced errorsr = total number of errors removed during debuggingk = total number of induced errors in r removed errorsr – k = total number of inherent errors in r removed errors

Page 18: Software Reliability

Mill’s Error Seeding Model(cont.)The hypergeometric distribution can be

simplified greatly to achieve an equation for total # of inherent errors

The lower the total number of errors estimated, the higher the reliability.

Page 19: Software Reliability

Advantages/DisadvantagesA - The fault representation is easy to apply

with fault-seeding tool.A - Can be used to predict the fault

distribution of particular software.

D - This model is very time consumingD - Can not be applicable in large programsD - Always chance of human error when

deciding where to put all induced error.

Page 20: Software Reliability

Failure Rate(Terminology)Failure Rate – the frequency with which an

engineered system or component fails.Failure – Occurs when the user perceives that

the program ceases to deliver the expected service

Fault – The cause of the failure or internal error of software

Basic premise of failure rate is that successive failure rates will get longer as faults are removed from the software system.

Page 21: Software Reliability

Jelinski-Moranda ModelOne of the earliest models(1972) proposed when looking

into software reliability.Six assumptions:

Program contains N initial faults which is unknown but a fixed constant

Each fault is independent and equally likely to cause failure

Time intervals between failures are independentWhen failure occurs, corresponding fault is removedFault is assumed to be instantaneously removed, no new

faults are inserted during removalSoftware failure rate is constant and proportional to

number of faults remaining in software

Page 22: Software Reliability

Jelinski-Moranda ModelThe six assumptions set ground rules for

model.Intensity fail rate function:

where φ = a proportional constant, the contribution

any one fault makes to the overall program;N = the number of initial faults in the

program;ti = the time between the (i-1)th and the ith

failures.

Page 23: Software Reliability

Jelinski-Moranda ModelThe intensity function is used to obtain magnitude

of the failure rate at a certain failure interval.Infer: After first failure rate where fault is removed

with certainty, intensity shall be lowered in proportion to number of faults remaining.

Jelinski-Moranda used this information to obtain a reliability function.

MLE is used to estimate values such as the number of initial faults(N) or proportional constant(φ)

Page 24: Software Reliability

Software Reliability ToolsSMERFS(Statistical Modeling and Estimation

of Reliability Functions for Software) - allows user to perform complete software reliability analysis

SARA(Software Assurance Reliability Automation) - incorporates both reliability growth modeling and design code metrics for analyzing software time between failure data

Page 25: Software Reliability

TrainingTraining organizations

RACReliaSoftSoftRel - www.softrel.com/prod03.htmSoHaR

Page 26: Software Reliability

ConclusionSW reliability is similar to HW reliability but

must be treated differentlyReliability of software is something to strive

forCan prevent major faults that have possibility

of taking human life, money, time, and customers

Useful to have model or something to measure

Many models have been proposedTraining is available to those who want to

learn more about reliability engineering

Page 27: Software Reliability

References[1] Ensuring Software Reliability. Neufelder, Ann Marie. New York: Marcel

Dekker, Inc., 1992. 1-242.

 [2] Goddard Space Flight Center. Overview of Software Reliability. February 16,

2005. <http://sw-assurance.gsfc.nasa.gov/disciplines/reliability/index.php> [3] Handbook of Software Reliability Engineering. Ed. Michael R. Lyu.

New York: McGraw-Hill Companies, Inc., 1996. 3-779. [4] Lloyd, Robin. Metric mishap caused loss of NASA orbiter. September

30,1999. <http://cnn.com/TECH/space/9909/30/mars.metric.02/>

 [5] Pan, Jiantao. Software Reliability. Spring 1999.

<http://www.ece.cmu.edu/~koopman/des_s99/sw_reliability/#metrics>

Page 28: Software Reliability

References(cont.)[6] Purcell, S. Maximum Likelihood Estimation. May 20, 2007.

<http://statgen.iop.kcl.ac.uk/bgim/mle/sslike_1.html> [7] Software Reliability. Pham, Hoang. Singapore: Springer-Verlag Singapore

Pte. Ltd., 2000. 1-219. [8] Software Reliability and Testing. Pham, Hoang. Piscataway: The Institute of

Electrical and Electronics engineers, Inc., 1995. 1-133. [9] Software Reliability Models. Malaiya, Yashwant K., and Pradip K. Srimani.

New York: Institute of Electrical and Electronics Engineers, Inc., 1990. 1-121.

 [10] Software Safety and Reliability. Herrmann, Debra S. Piscataway: The

Institute of Electrical and Electronics engineers, Inc., 1999. 5-466.


Recommended