SlideShare a Scribd company logo
A
SEMINAR
ON
SOFTWARE RELIABILITY MODELING
By:
Poonam Panwar
Regd. No. 951011002
Under The Supervision of:
Dr. Arvind Kumar Lal
Associate Professor
School of Mathematics & Computer Applications
Thapar University, Patiala-147004 (Punjab)
TOPICS COVERED
 What is Software Reliability?
 Software Failure Mechanisms
 Hardware vs Software
 Measuring Software Reliability
 Software Reliability Models
 Statistical Testing
 Conclusion
2
WHAT IS SOFTWARE RELİABİLİTY?
 Precisely it may be defined as a product’s
trustworthiness or dependability.
 The probability of failure-free software operation for a
specified period of time in a specified environment.
 Probability of the product working “correctly” over a
given period of time in a specified environment.
3
AREAS OF S/W RELIABILITY
 Software Reliability Modeling
 Prediction Analysis
 Reliability Measurement
 Defect Classification
 Trend Analysis
 Field Data Analysis
 Software Metrics
 Software Testing and Reliability
 Fault-Tolerance
 Fault Trees
 Software Reliability Simulation
 Software Reliability Tools
4
SOFTWARE CHARACTERISTICS
 Failure cause: Software defects are mainly design defects.
 Wear-out: Software does not have wear-out phase.
 Repairable system concept: Periodic restarts can help fix
software problems.
 Time dependency and life cycle: Software reliability is not a
function of operational time.
 Environmental factors: Do not affect Software reliability, except
it might affect program inputs.
 Reliability prediction: Software reliability can not be predicted
from any physical basis, since it depends completely on human
factors in design.
 Redundancy: Can not improve Software reliability if identical
software components are used.
 Interfaces: Software interfaces are purely conceptual rather
visual.
 Built with standard components: Well-understood and
extensively-tested standard parts will help improve
maintainability and reliability. But in software industry, this trend
is not observed. Code reuse has been around for some time, but to a
very limited extent. Strictly speaking there are no standard parts
for software, except some standardized logic structures.
5
SOFTWARE FAİLURE MECHANİSMS
 Design Faults: Software faults are mainly design faults
which are harder to visualize, classify, detect, and correct.
 Interfaces: Software can fail if interfaces are not correct.
(Interfaces are conceptual rather than visual in case of
software.)
 Errors, Ambiguities, Oversights or Misinterpretation
in the software requirement specification.
 Carelessness or Incompetence in writing code.
 Inadequate testing.
 Incorrect or Unexpected usage of the software.
 Other unforeseen problems.
6
HARDWARE RELIABILITY CURVE
7
SOFTWARE RELIABILITY CURVE
8
MEASURİNG SOFTWARE
RELİABİLİTY
 Current approaches for measuring software reliability are
basically parallel to those used for hardware reliability
assessment with appropriate modifications in account for
the inherent differences between software and hardware.
 A number of Software reliability models have been
proposed to address the problem of software reliability
measurement. These approaches are based mainly on the
failure history of software and can be classified according to
the nature of the failure process.
 Assessed value of the software reliability measure is always
relative to a given use environment. Two users exercising
two different sets of paths in the same software are likely to
have different values of software reliability.
 Measuring software reliability remains a difficult problem
because we don't have a good understanding of the nature
of software. 9
o Transient: Transient failures occur only for
certain inputs.
o Permanent: Permanent failures occur for all
input values.
o Recoverable: When recoverable failures occur
the system recovers with or without operator
intervention.
o Unrecoverable: the system may have to be
restarted.
o Cosmetic: May cause minor irritations. Do not
lead to incorrect results. Eg. mouse button has to
be clicked twice instead of once to invoke a GUI
function.
FAİLURE CLASSES
10
SOFTWARE RELİABİLİTY
MODELING TECHNIQUES
 Software reliability modeling techniques
can be divided into two subcategories:
Prediction Modeling
Estimation Modeling.
 Both kinds of modeling techniques are
based on observing and accumulating
failure data and analyzing with statistical
inference.
11
COMPARISON OF SOFTWARE
RELİABİLİTY MODELING TECHNIQUES
ISSUES PREDICTION MODELS ESTIMATION MODELS
DATA REFERENCE Uses historical data Uses data from the
current software
development effort
WHEN USED IN
DEVELOPMENT
CYCLE
Usually made prior to
development or test
phases; is available as
early as concept phase
Usually made later in life
cycle(after some data
have been collected);
cannot be used in
concept or development
phases
TIME FRAME Predict reliability for
future time.
Estimate reliability at
either present or future
time
SOFTWARE RELİABİLİTY MODELS
 A software reliability model specifies the form of a
random process that describes the behavior of
software failures with respect to time.
 Software reliability models have emerged as
people try to understand the characteristics of how
and why software fails, and try to quantify
software reliability.
 Over 200 models have been developed since the
early 1970s, but how to quantify software
reliability still remains largely unresolved.
 There is no single model that can be used in all
situations. No model is complete or even
representative.
13
CATEGORIES OF SOFTWARE
RELIABILITY MODELS WITH KEY
ASSUMPTIONS
 Times Between Failures (TBF) Models
* Independent times between failures.
* Equal probability of the exposure of each fault.
* Embedded faults are independent of each other.
* Faults are removed after each occurrence.
* No new faults introduced during correction, i.e., perfect fault removal.
 Fault Count (FC) Models
* Testing intervals are independent of each other.
* Testing during intervals is reasonably homogeneous.
* Numbers of faults detected during non overlapping intervals are
independent of each other.
 Fault Seeding (FS) Models
* Seeded faults are randomly distributed in the program.
* Indigenous and seeded faults have equal probabilities of being detected.
 Input Domain Based (IDB) Models
* Input profile distribution is known.
* Random testing is used.
* Input domain can be partitioned into equivalent classes. 14
SOFTWARE RELIABILITY MODELS
15
16
17
COMPONENTS OF A SOFTWARE
RELİABİLİTY MODEL
 Most software models contain  the
following parts:
Assumptions,
Factors,
A mathematical function which relates
the reliability with the factors, which is
usually a higher order exponential or
logarithmic function.
18
SOME WELL KNOWN SOFTWARE
RELIABILITY MODELS
 Jelinsky and Moranda Model
 Basic Execution Time Model
 Logarithmic Poisson Time Model
 The Bug Seeding Model
 Shooman Model
 Littlewood-Verrall Model
 Goel-Okumoto Model
 Musa-Okumoto Model
19
This model is the earliest and probably the best known
reliability model. It proposed a failure intensity function
in the form:
λ(t)=φ(N-i+1)
Where
φ= constant of proportionality
N= total number of errors present
i= number of errors found by time interval ti
In this model each time an error is repaired reliability
does not increase by a constant amount.
Reliability improvement due to fixing of an error is
assumed to be proportional to the number of errors
present in the system at that time.
JELINSKI AND MORANDA MODEL
20
BASIC EXECUTION TIME MODEL
 This model was developed by J.D. Musa in 1979 and is
based on execution time.
 In this model, the decrease in failure intensity, as a
function of the number of failures observed, is
constant and is given as:
 Where λo: Initial Failure Intensity
 Vo: Number of failures experienced, if a program is
executed for infinite time period.
 µ: Average or expected number of failures experienced
at a given period of time.
 τ: execution time.
21
LOGARITHMIC POISSON TIME
MODEL
 This model is also developed by Musa et. al.
[MUSA79].
 The failure intensity function is different here as
compared to basic model. In this case the failure
intensity function decreases exponentially whereas it is
constant for basic model.
λ(µ)= λo exp(-θ µ)
Where
θ: called the failure intensity decay parameter. (represents the
relative change of failure intensity per failure experienced)
 The expected number of failures for this model is
always infinite at infinite time.
 At larger value of execution time, the logarithmic
poison time model will have larger value of failure
intensity than the basic model.
22
There is no universally applicable software
reliability model. So the given process is followed
to deploy a model.
SELECTION OF MODEL
After fitting a model
describing the failure
process, the total
number of faults in the
code, future failure
intensity and additional
time required to achieve
a failure intensity
objective can be
estimated.
23
UNCERTAINTIES IN SOFTWARE
RELİABİLİTY MODELING
TECHNIQUES
 There are two main types of uncertainties
which render any reliability measurement
inaccurate:
 Type 1 Uncertainty:
 our lack of knowledge about how the system will be
used, i.e. its operational profile
 Type 2 Uncertainty:
 reflects our lack of knowledge about the effect of
fault removal.
 When we fix a fault we are not sure if the corrections are
complete and successful and no other faults are
introduced
 Even if the faults are fixed properly we do not know how
much will be the improvement to inter-failure time. 24
STATİSTİCAL TESTİNG
 Statistical testing is a technique in which a
model of the statistical distribution of the input
is used to construct representative test cases.
 The objective of statistical testing is to determine
reliability rather than discover errors.
 It is different from defect testing.
 Different users have different operational profile
i.e. they use the system in different ways
(formally, operational profile).
 In statistical testing the input data is divided
into a number of input classes e.g. create, edit,
print, file operations, etc.
25
PERFORMING A STATISTICAL TEST
 Determine the operational profile of the software:
This can be determined by analyzing the usage
pattern.
 Manually select or automatically generate a set
of test data:
corresponding to the operational profile.
 Apply test cases to the program:
record execution time between each failure
it may not be appropriate to use raw execution
time
 After a statistically significant number of failures
have been observed:
reliability can be computed. 26
CONCLUSİONS
 Software reliability is a key part in
software quality.
 Software reliability improvement is hard.
 There are no generic models.
 Measurement is very important for
finding the correct model.
 Statistical testing should be used but it is
not easy.
 Software Reliability Modelling is not
simple.
27
1. Jintao Zeng, Jinzhong Li, Xiaohui Zeng, Wenlang Luo “A Prototype System of
Software Reliability Prediction and estimation” ,third International
symposium on Intelligent Information Technology and Security Informatics by
IEEE Computer Society, 2010.
2. Michael R. Lyu “Software Reliability Engineering: A Roadmap”, Future of
Software Engineering(FOSE’07) by IEEE, 2007.
3. Bing Chao, XiaoDong Zhu, Qiang Li, AnCe Huang “ Reliability Management
in Software Requirement Analysis”, IEEE International Conference on
Management of Innovation and Technology, 2006.
4. Rajesh Kumar Bawa, Arvind Kumar Lal and Navdeep Singh Jaggi “A Model
for Analysis of Software Reliability and Availability”, Proceedings of RPN
March 2004.
5. K K Aggarwal & Yogesh Singh “Software Engineering” 3rd
Edition, New Age
International Publishers, 2008.
6. Michael R. Lyu “Handbook of Software Reliability Engineering”, Computer
Society Press, 2006.
7. J.D. Musa “Software Reliability Engineering: More Reliable Software Faster
and Cheaper” 2nd Edition, AuthorHouse, 2004 .
8. K. S. Trivedi “Probability and Statistics with Reliability, Queuing and
Computer Science Applications” 2nd Edition, John Wiley and Sons, 2002.
References:
28

More Related Content

PPT
Software reliability
PPTX
Software Reliability
PPTX
Software engineering 23 software reliability
PPTX
Software quality assurance
PPT
1.1 The nature of software.ppt
PPTX
Integration testing
PPT
Taxonomy for bugs
PPT
Chapter 13 software testing strategies
Software reliability
Software Reliability
Software engineering 23 software reliability
Software quality assurance
1.1 The nature of software.ppt
Integration testing
Taxonomy for bugs
Chapter 13 software testing strategies

What's hot (20)

PDF
Unit 5- Architectural Design in software engineering
PPTX
Data Designs (Software Engg.)
PPT
Software Quality Metrics
PPT
Software design
PPT
Software process and project metrics
PPTX
SQE Lecture 1.pptx
PPTX
Interface specification
PPTX
RMMM Plan
PPT
Chapter 15 software product metrics
PDF
Chapter 6 software metrics
PDF
INTEGRATION TESTING
PPTX
Architectural styles and patterns
PPT
Chapter 5 Software Quality Assurance-Finalised_BW.ppt
PPTX
software quality
PPT
Risk management(software engineering)
PPT
Software Quality Management
PPTX
Software Process Models
PPTX
PPTX
Software reliability growth model
PPT
Lecture 9 understanding requirements
Unit 5- Architectural Design in software engineering
Data Designs (Software Engg.)
Software Quality Metrics
Software design
Software process and project metrics
SQE Lecture 1.pptx
Interface specification
RMMM Plan
Chapter 15 software product metrics
Chapter 6 software metrics
INTEGRATION TESTING
Architectural styles and patterns
Chapter 5 Software Quality Assurance-Finalised_BW.ppt
software quality
Risk management(software engineering)
Software Quality Management
Software Process Models
Software reliability growth model
Lecture 9 understanding requirements
Ad

Viewers also liked (20)

PDF
Chapter 7 software reliability
PDF
Software reliability engineering
PPTX
Quality & Reliability in Software Engineering
PDF
Reliability growth models
PDF
Reliability growth models for quality management
PPT
Software and Hardware Reliability
PDF
Software Reliability Engineering
PPTX
Software reliability & quality
PDF
TESEM: A Tool for Verifying Security Design Pattern Applications
PDF
Successive Software Reliability Growth Model: A Modular Approach
PDF
Information20121017
PPTX
Fault avoidance and fault tolerance
PDF
ラーニング・バイ・コンテスト (Learning by Contest) ~ プログラミング学習のシフト ~
PPTX
Software reliability engineering process
PDF
Rayleigh model
PPTX
A Bug Tracking System Is A Software Application
PPTX
ATAGTR2017 Differentiation using Testing Tools and Automation in the BFS COTS...
PPTX
ATAGTR2017 Keeping pace with Product Evolution: UI Automation Framework Guide...
PPTX
ATAGTR2017 Cost-effective Security Testing Approaches for Web, Mobile & Enter...
PPTX
Testing Frameworks And Methodologies
Chapter 7 software reliability
Software reliability engineering
Quality & Reliability in Software Engineering
Reliability growth models
Reliability growth models for quality management
Software and Hardware Reliability
Software Reliability Engineering
Software reliability & quality
TESEM: A Tool for Verifying Security Design Pattern Applications
Successive Software Reliability Growth Model: A Modular Approach
Information20121017
Fault avoidance and fault tolerance
ラーニング・バイ・コンテスト (Learning by Contest) ~ プログラミング学習のシフト ~
Software reliability engineering process
Rayleigh model
A Bug Tracking System Is A Software Application
ATAGTR2017 Differentiation using Testing Tools and Automation in the BFS COTS...
ATAGTR2017 Keeping pace with Product Evolution: UI Automation Framework Guide...
ATAGTR2017 Cost-effective Security Testing Approaches for Web, Mobile & Enter...
Testing Frameworks And Methodologies
Ad

Similar to Software Reliability (20)

PDF
A Review on Parameter Estimation Techniques of Software Reliability Growth Mo...
PPTX
Spm unit v-software reliability-
PDF
Volume 2-issue-6-1983-1986
PDF
Volume 2-issue-6-1983-1986
PDF
A Survey of Software Reliability factor
PDF
A Combined Approach of Software Metrics and Software Fault Analysis to Estima...
PDF
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
PDF
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
PDF
J034057065
PPT
Software Engineering -Software Reliability.ppt
PDF
A Novel Approach to Derive the Average-Case Behavior of Distributed Embedded ...
PDF
SRGM Analyzers Tool of SDLC for Software Improving Quality
PDF
Developing software analyzers tool using software reliability growth model
PDF
Developing software analyzers tool using software reliability growth model
PPT
Software Fault Tolerance
PDF
Parameter Estimation of GOEL-OKUMOTO Model by Comparing ACO with MLE Method
PDF
Software-Reliability-A-Deep-Dive (1)-1.pdf
PDF
D0423022028
PDF
A survey of predicting software reliability using machine learning methods
PDF
Software testing
A Review on Parameter Estimation Techniques of Software Reliability Growth Mo...
Spm unit v-software reliability-
Volume 2-issue-6-1983-1986
Volume 2-issue-6-1983-1986
A Survey of Software Reliability factor
A Combined Approach of Software Metrics and Software Fault Analysis to Estima...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
J034057065
Software Engineering -Software Reliability.ppt
A Novel Approach to Derive the Average-Case Behavior of Distributed Embedded ...
SRGM Analyzers Tool of SDLC for Software Improving Quality
Developing software analyzers tool using software reliability growth model
Developing software analyzers tool using software reliability growth model
Software Fault Tolerance
Parameter Estimation of GOEL-OKUMOTO Model by Comparing ACO with MLE Method
Software-Reliability-A-Deep-Dive (1)-1.pdf
D0423022028
A survey of predicting software reliability using machine learning methods
Software testing

More from ranapoonam1 (20)

PPTX
INTRODUCTION TO CYBERFORENSICS AND ITS APPLICATION IN CYBERSECURITY
PPTX
USING AUDITING IN CYBERFORENSICS FOR CYBERSECURITY
PPTX
Cyber Security Tools to be used for CS .pptx
PPTX
Cyber Security Principles in Cyber Security.pptx
PPTX
Crackers and Type of Crackers Vs Hackers.pptx
PDF
Introduction_to_CyberSecurity and Applications.pdf
PPTX
Introduction to Various Number System.pptx
PPTX
Basic Git Commands and their usage in Git
PPTX
A Powerpoint Presentation on DevOps and DevOps Tools
PPTX
Jenkins introduction and creating a pipeline in Jenkins
PPTX
An Introduction to Jenkins in Devops Process
PPTX
Software Development Life Cycle Models (SDLC)
PPTX
Introduction to DevOps and its Applications
PPTX
Amazon web services and their applications
PDF
Understanding Cloud Computing by BS Infotech
PPTX
Software Testing strategies, their types and Levels
PDF
INTRODUCTION AND HISTORY OF R PROGRAMMING.pdf
PPTX
2_SDLC.pptx
PPTX
1_Introduction.pptx
PPTX
2_MACHINE LEARNING.pptx
INTRODUCTION TO CYBERFORENSICS AND ITS APPLICATION IN CYBERSECURITY
USING AUDITING IN CYBERFORENSICS FOR CYBERSECURITY
Cyber Security Tools to be used for CS .pptx
Cyber Security Principles in Cyber Security.pptx
Crackers and Type of Crackers Vs Hackers.pptx
Introduction_to_CyberSecurity and Applications.pdf
Introduction to Various Number System.pptx
Basic Git Commands and their usage in Git
A Powerpoint Presentation on DevOps and DevOps Tools
Jenkins introduction and creating a pipeline in Jenkins
An Introduction to Jenkins in Devops Process
Software Development Life Cycle Models (SDLC)
Introduction to DevOps and its Applications
Amazon web services and their applications
Understanding Cloud Computing by BS Infotech
Software Testing strategies, their types and Levels
INTRODUCTION AND HISTORY OF R PROGRAMMING.pdf
2_SDLC.pptx
1_Introduction.pptx
2_MACHINE LEARNING.pptx

Recently uploaded (20)

DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PPTX
Internet of Things (IOT) - A guide to understanding
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPTX
OOP with Java - Java Introduction (Basics)
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PPTX
Lecture Notes Electrical Wiring System Components
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PDF
Structs to JSON How Go Powers REST APIs.pdf
PPTX
Lesson 3_Tessellation.pptx finite Mathematics
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
Construction Project Organization Group 2.pptx
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PDF
PPT on Performance Review to get promotions
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
Internet of Things (IOT) - A guide to understanding
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
OOP with Java - Java Introduction (Basics)
UNIT-1 - COAL BASED THERMAL POWER PLANTS
Lecture Notes Electrical Wiring System Components
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Structs to JSON How Go Powers REST APIs.pdf
Lesson 3_Tessellation.pptx finite Mathematics
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
Model Code of Practice - Construction Work - 21102022 .pdf
Construction Project Organization Group 2.pptx
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
CYBER-CRIMES AND SECURITY A guide to understanding
PPT on Performance Review to get promotions
Operating System & Kernel Study Guide-1 - converted.pdf
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf

Software Reliability

  • 1. A SEMINAR ON SOFTWARE RELIABILITY MODELING By: Poonam Panwar Regd. No. 951011002 Under The Supervision of: Dr. Arvind Kumar Lal Associate Professor School of Mathematics & Computer Applications Thapar University, Patiala-147004 (Punjab)
  • 2. TOPICS COVERED  What is Software Reliability?  Software Failure Mechanisms  Hardware vs Software  Measuring Software Reliability  Software Reliability Models  Statistical Testing  Conclusion 2
  • 3. WHAT IS SOFTWARE RELİABİLİTY?  Precisely it may be defined as a product’s trustworthiness or dependability.  The probability of failure-free software operation for a specified period of time in a specified environment.  Probability of the product working “correctly” over a given period of time in a specified environment. 3
  • 4. AREAS OF S/W RELIABILITY  Software Reliability Modeling  Prediction Analysis  Reliability Measurement  Defect Classification  Trend Analysis  Field Data Analysis  Software Metrics  Software Testing and Reliability  Fault-Tolerance  Fault Trees  Software Reliability Simulation  Software Reliability Tools 4
  • 5. SOFTWARE CHARACTERISTICS  Failure cause: Software defects are mainly design defects.  Wear-out: Software does not have wear-out phase.  Repairable system concept: Periodic restarts can help fix software problems.  Time dependency and life cycle: Software reliability is not a function of operational time.  Environmental factors: Do not affect Software reliability, except it might affect program inputs.  Reliability prediction: Software reliability can not be predicted from any physical basis, since it depends completely on human factors in design.  Redundancy: Can not improve Software reliability if identical software components are used.  Interfaces: Software interfaces are purely conceptual rather visual.  Built with standard components: Well-understood and extensively-tested standard parts will help improve maintainability and reliability. But in software industry, this trend is not observed. Code reuse has been around for some time, but to a very limited extent. Strictly speaking there are no standard parts for software, except some standardized logic structures. 5
  • 6. SOFTWARE FAİLURE MECHANİSMS  Design Faults: Software faults are mainly design faults which are harder to visualize, classify, detect, and correct.  Interfaces: Software can fail if interfaces are not correct. (Interfaces are conceptual rather than visual in case of software.)  Errors, Ambiguities, Oversights or Misinterpretation in the software requirement specification.  Carelessness or Incompetence in writing code.  Inadequate testing.  Incorrect or Unexpected usage of the software.  Other unforeseen problems. 6
  • 9. MEASURİNG SOFTWARE RELİABİLİTY  Current approaches for measuring software reliability are basically parallel to those used for hardware reliability assessment with appropriate modifications in account for the inherent differences between software and hardware.  A number of Software reliability models have been proposed to address the problem of software reliability measurement. These approaches are based mainly on the failure history of software and can be classified according to the nature of the failure process.  Assessed value of the software reliability measure is always relative to a given use environment. Two users exercising two different sets of paths in the same software are likely to have different values of software reliability.  Measuring software reliability remains a difficult problem because we don't have a good understanding of the nature of software. 9
  • 10. o Transient: Transient failures occur only for certain inputs. o Permanent: Permanent failures occur for all input values. o Recoverable: When recoverable failures occur the system recovers with or without operator intervention. o Unrecoverable: the system may have to be restarted. o Cosmetic: May cause minor irritations. Do not lead to incorrect results. Eg. mouse button has to be clicked twice instead of once to invoke a GUI function. FAİLURE CLASSES 10
  • 11. SOFTWARE RELİABİLİTY MODELING TECHNIQUES  Software reliability modeling techniques can be divided into two subcategories: Prediction Modeling Estimation Modeling.  Both kinds of modeling techniques are based on observing and accumulating failure data and analyzing with statistical inference. 11
  • 12. COMPARISON OF SOFTWARE RELİABİLİTY MODELING TECHNIQUES ISSUES PREDICTION MODELS ESTIMATION MODELS DATA REFERENCE Uses historical data Uses data from the current software development effort WHEN USED IN DEVELOPMENT CYCLE Usually made prior to development or test phases; is available as early as concept phase Usually made later in life cycle(after some data have been collected); cannot be used in concept or development phases TIME FRAME Predict reliability for future time. Estimate reliability at either present or future time
  • 13. SOFTWARE RELİABİLİTY MODELS  A software reliability model specifies the form of a random process that describes the behavior of software failures with respect to time.  Software reliability models have emerged as people try to understand the characteristics of how and why software fails, and try to quantify software reliability.  Over 200 models have been developed since the early 1970s, but how to quantify software reliability still remains largely unresolved.  There is no single model that can be used in all situations. No model is complete or even representative. 13
  • 14. CATEGORIES OF SOFTWARE RELIABILITY MODELS WITH KEY ASSUMPTIONS  Times Between Failures (TBF) Models * Independent times between failures. * Equal probability of the exposure of each fault. * Embedded faults are independent of each other. * Faults are removed after each occurrence. * No new faults introduced during correction, i.e., perfect fault removal.  Fault Count (FC) Models * Testing intervals are independent of each other. * Testing during intervals is reasonably homogeneous. * Numbers of faults detected during non overlapping intervals are independent of each other.  Fault Seeding (FS) Models * Seeded faults are randomly distributed in the program. * Indigenous and seeded faults have equal probabilities of being detected.  Input Domain Based (IDB) Models * Input profile distribution is known. * Random testing is used. * Input domain can be partitioned into equivalent classes. 14
  • 16. 16
  • 17. 17
  • 18. COMPONENTS OF A SOFTWARE RELİABİLİTY MODEL  Most software models contain  the following parts: Assumptions, Factors, A mathematical function which relates the reliability with the factors, which is usually a higher order exponential or logarithmic function. 18
  • 19. SOME WELL KNOWN SOFTWARE RELIABILITY MODELS  Jelinsky and Moranda Model  Basic Execution Time Model  Logarithmic Poisson Time Model  The Bug Seeding Model  Shooman Model  Littlewood-Verrall Model  Goel-Okumoto Model  Musa-Okumoto Model 19
  • 20. This model is the earliest and probably the best known reliability model. It proposed a failure intensity function in the form: λ(t)=φ(N-i+1) Where φ= constant of proportionality N= total number of errors present i= number of errors found by time interval ti In this model each time an error is repaired reliability does not increase by a constant amount. Reliability improvement due to fixing of an error is assumed to be proportional to the number of errors present in the system at that time. JELINSKI AND MORANDA MODEL 20
  • 21. BASIC EXECUTION TIME MODEL  This model was developed by J.D. Musa in 1979 and is based on execution time.  In this model, the decrease in failure intensity, as a function of the number of failures observed, is constant and is given as:  Where λo: Initial Failure Intensity  Vo: Number of failures experienced, if a program is executed for infinite time period.  µ: Average or expected number of failures experienced at a given period of time.  τ: execution time. 21
  • 22. LOGARITHMIC POISSON TIME MODEL  This model is also developed by Musa et. al. [MUSA79].  The failure intensity function is different here as compared to basic model. In this case the failure intensity function decreases exponentially whereas it is constant for basic model. λ(µ)= λo exp(-θ µ) Where θ: called the failure intensity decay parameter. (represents the relative change of failure intensity per failure experienced)  The expected number of failures for this model is always infinite at infinite time.  At larger value of execution time, the logarithmic poison time model will have larger value of failure intensity than the basic model. 22
  • 23. There is no universally applicable software reliability model. So the given process is followed to deploy a model. SELECTION OF MODEL After fitting a model describing the failure process, the total number of faults in the code, future failure intensity and additional time required to achieve a failure intensity objective can be estimated. 23
  • 24. UNCERTAINTIES IN SOFTWARE RELİABİLİTY MODELING TECHNIQUES  There are two main types of uncertainties which render any reliability measurement inaccurate:  Type 1 Uncertainty:  our lack of knowledge about how the system will be used, i.e. its operational profile  Type 2 Uncertainty:  reflects our lack of knowledge about the effect of fault removal.  When we fix a fault we are not sure if the corrections are complete and successful and no other faults are introduced  Even if the faults are fixed properly we do not know how much will be the improvement to inter-failure time. 24
  • 25. STATİSTİCAL TESTİNG  Statistical testing is a technique in which a model of the statistical distribution of the input is used to construct representative test cases.  The objective of statistical testing is to determine reliability rather than discover errors.  It is different from defect testing.  Different users have different operational profile i.e. they use the system in different ways (formally, operational profile).  In statistical testing the input data is divided into a number of input classes e.g. create, edit, print, file operations, etc. 25
  • 26. PERFORMING A STATISTICAL TEST  Determine the operational profile of the software: This can be determined by analyzing the usage pattern.  Manually select or automatically generate a set of test data: corresponding to the operational profile.  Apply test cases to the program: record execution time between each failure it may not be appropriate to use raw execution time  After a statistically significant number of failures have been observed: reliability can be computed. 26
  • 27. CONCLUSİONS  Software reliability is a key part in software quality.  Software reliability improvement is hard.  There are no generic models.  Measurement is very important for finding the correct model.  Statistical testing should be used but it is not easy.  Software Reliability Modelling is not simple. 27
  • 28. 1. Jintao Zeng, Jinzhong Li, Xiaohui Zeng, Wenlang Luo “A Prototype System of Software Reliability Prediction and estimation” ,third International symposium on Intelligent Information Technology and Security Informatics by IEEE Computer Society, 2010. 2. Michael R. Lyu “Software Reliability Engineering: A Roadmap”, Future of Software Engineering(FOSE’07) by IEEE, 2007. 3. Bing Chao, XiaoDong Zhu, Qiang Li, AnCe Huang “ Reliability Management in Software Requirement Analysis”, IEEE International Conference on Management of Innovation and Technology, 2006. 4. Rajesh Kumar Bawa, Arvind Kumar Lal and Navdeep Singh Jaggi “A Model for Analysis of Software Reliability and Availability”, Proceedings of RPN March 2004. 5. K K Aggarwal & Yogesh Singh “Software Engineering” 3rd Edition, New Age International Publishers, 2008. 6. Michael R. Lyu “Handbook of Software Reliability Engineering”, Computer Society Press, 2006. 7. J.D. Musa “Software Reliability Engineering: More Reliable Software Faster and Cheaper” 2nd Edition, AuthorHouse, 2004 . 8. K. S. Trivedi “Probability and Statistics with Reliability, Queuing and Computer Science Applications” 2nd Edition, John Wiley and Sons, 2002. References: 28