Type: Process Essays
Sample donated: Alma Schwartz
Last updated: September 25, 2019
AbstractSoftware Reliability is defined as theprobability with which the software will operate without any failure for aspecific period of time in a specific environment.
It is one the essentialsoftware quality features. Software reliability estimated in early phases ofsoftware development life cycle saves a lot of time and money as it preventsspending huge amount of money on fixation of defects in the software after ithas been deployed. Software reliability estimation has thus become an importantresearch area as every organization aims to produce defect free software. There are many software reliability growthmodels that are used to assess the reliability of the software.
These models help in developingrobust and fault tolerant systems. This paper presents a review of optimizationtechniques used by many researchers on the software reliability growth modelsin order to estimate the software reliability effectively.Keywords: Reliability,software reliability growth models, parameter estimation, optimization. 1. Introduction With increasing complexity, changingrequirements and distributive nature of the software system it has becomedifficult to develop reliable software where reliability is the probability ofsoftware failure occurrence.
The failure of the software is attributed to errors, faultyfunctionality, ambiguities, improper requirement analysis, inefficientcode, inadequate testing, timing, sequencing,data, and exception handling. Software reliability is an importantfeature of software quality along with other features like: usability,performance, functionality, maintainability, instability, serviceability,documentation, etc 1.Software failure can be classified into variouscategories like 2:a) Transient failure whichoccurs for specific inputs,b) Permanent failures whichoccur for all inputs,c) Recoverable failure wherethe system can recover with or without any operator intervention, d) Unrecoverable failure wherethe system needs to be restarted, e) Cosmetic Failures whichcause minor irritations.Since there is no software system that is failure-free, everysoftware development contract includes the specification of reliabilityrequirements. Software reliability models are statistical models which are usedto make predictions about a software system’s failure rate on the basis of thefailure history of the system. These models make assumptions related to faultdiscovery and removal process thereby determining the form of the model and themeaning of the model’s parameters.
Once the parameter is known and the current numbersof defects are discovered, the remaining defects are estimated (Fig.1). Theseresidual defects help to decide whether the code is ready to ship or not and givesan estimate of the number of failures that the customers will encounter whileusing the software which further helps in estimating the appropriate levels ofsupport and the cost of support that will be required for defect correction oncethe software has been delivered. Software reliability modeling techniques can be broadlyclassified into two subcategories 3:a) Prediction models: These models use historical data to predictreliability.
This is usually done before development or testing phase. Thesemodels support planning and sensitivity analysis. Example: shortcut model, fullscale model, Rayleigh model, Neufelder assessment model, etc 4.b) Estimation model:These models use data from current software development effort. Reliabilityis estimated during system level testing or operation phase. They help inforecasting the failure rate or Mean time Between Failure (MTBF). Example:Goel-Okumoto model, Weibull model, s- shaped model, etc.It is essential to accurately determinethe parameters of software reliability.
Themore accurate the measurement of the parameters, the more accurate the SoftwareReliability Growth Model (SRGM) will be. So there is a requirement of a processwhich helps in optimally estimating the parameters of software reliability. Optimization is a technique to achieve highestperformance by maximizing the desired features and minimizing the undesiredones. This paper reviews various optimization techniques that have beenused by many researchers to optimize the parameters of estimation in softwarereliability growth models to estimate accurately the reliability of thesoftware.
2.Software Reliability Growth Models A reliability growth model is used intesting phase to determine how the system reliability changes over time. Software Reliability Growth Model (SRGM) are statisticalmodels used to detect defects using mathematical functions which help inpredicting failure rate or residual defects 5. Reliability growthmodels are divided into two types: concave and s-shaped.