Software reliability is the primary concern of software development organizations, and the exponentially increasing demand for reliable software requires modeling techniques to be developed in the present era. Small unnoticeable drifts in the software can culminate into a disaster. Early removal of these errors helps the organization improve and enhance the software’s reliability and save money, time, and effort. Many soft computing techniques are available to get solutions for critical problems but selecting the appropriate technique is a big challenge. This paper proposed an efficient algorithm that can be used for the prediction of software reliability. The proposed algorithm is implemented using a hybrid approach named Neuro-Fuzzy Inference System and has also been applied to test data. In this work, a comparison among different techniques of soft computing has been performed. After testing and training the real time data with the reliability prediction in terms of mean relative error and mean absolute relative error as 0.0060 and 0.0121, respectively, the claim has been verified. The results claim that the proposed algorithm predicts attractive outcomes in terms of mean absolute relative error plus mean relative error compared to the other existing models that justify the reliability prediction of the proposed model. Thus, this novel technique intends to make this model as simple as possible to improve the software reliability.

Reliability is a vital factor of software quality and is an active research area for over a decade. The reliability of software can be interpreted as the probability of performing the failure-free operation in the context of a specified time in a defined environment [

Various researchers have proposed different software reliability models [

The main objective of any organization is to develop the software with less error rate that can only be achieved if the errors can be detected at the very initial stage of developing the software and the cost of achieving the lower error rate will also be minimized if the same can be done at the initial phase of developing the software. Techniques like fuzzy logic, neural network, and neuro-fuzzy show tremendous work in evaluating the software’s reliability [

The work is categorized as follows: the second section contains an overview of soft computing techniques. We discuss the proposed algorithm and its framework to evaluate the reliability of the software in the third section. Section four includes results and discussion. It also consists of the comparison among different soft computing techniques. Finally, the paper ends with concluding remarks in section five.

The research of this paper is motivated by real applications as reliability is one of the vital factors in the development of software. The main purpose of this research is to develop a model that can be used to deal with the data to predict the reliability of the software at an early stage. The faith of the proposed model is due to its hybrid approach; it can predict reliability with more accuracy and efficiency.

The following steps are incorporated for this research:

Three metrics were identified related to reliability taken as input to design membership function to the proposed fuzzy inference system.

Fuzzy rules were identified for the three-input membership functions using the Mamdami model

Use the output of the proposed fuzzy inference system as an input to the proposed Neuro-Fuzzy approach.

The Proposed model was trained and tested using selected training, and testing data set values and was evaluated on two parameters Mean Relative Error (MRE) and Mean Absolute Relative Error (MARE).

Analyze the accuracy of the proposed model based on performance parameters MARE and MRE for predicting reliability.

Soft computing comprises various computational methods that comprise Fuzzy logic, Neural Network, Neuro-Fuzzy, probabilistic, and evolutionary computing [

Succi et al. [

Sharma et al. [

Singh et al. [

Neural Network is a model of a neuron system. Neural Network is a distributed processing system [

The Neuro-Fuzzy approach is the combination of concepts based on fuzzy logic and a neural network. The integration of these two paradigms overcomes the limitations of each technique’s isolated concept [

Various authors proposed methods for the prediction of software reliability like bio-inspired hybrid soft computing techniques. In their paper, Sahu et al. [

Sahu et al. [

ANFIS for the time series data was also proposed by Tarno et al. in 2019 [

Bharathi used the hidden Markov Model approach; the aim was to improve the software quality at the design level to ensure the reliability of a critical system in a cost-effective manner [

Different error measurements have been used by various metrics researchers in this study to measure the effectiveness of the proposed model in accessing the software reliability. Two criteria have been considered. MARE is the preferred measure of software reliability and can be calculated given in

S.No. | Parameter | Interpretation |
---|---|---|

1 | MARE | The smaller the value, the better the model |

2 | MRE | The smaller the value, the better the model |

Combining two concepts of Fuzzy Inference System and Neuro-Fuzzy Inference System to make a hybrid approach is the beauty of the proposed architecture. In the first phase, the metrics mentioned above are used as an input parameter to the Fuzzy Inference System and predict the reliability as an output. Membership functions of all these input and output parameters are designed using MATLAB fuzzy toolbox using Mamdami model after choosing their parameter values. Fuzzy rules are then identified for decision-making and get the correct output. In the second phase, the output of the Fuzzy Inference System is treated as an input to the neuro-fuzzy inference system. The model trained and tested with the help of real time data set. After multiple iterations of training and testing of the data, we get the more accurate value of reliability compared to the other existing models of soft computing.

Software metrics play a vital role in defining the property and characteristics of any software. In this section, identification of reliability-relevant metrics was made. As failure data is not available at the early phase to predict reliability, identified metrics named Complexity, Changeability, and Portability are used to develop a model for the early detection of software reliability [

Complexity is one of the most contributing factors to deciding the level of difficulty in software development. It determines how easy it is to understand the software and is directly related to comprehension. Early prediction of difficulty in terms of complexity is important for smooth software planning and controlling, and clear ones’ knowledge nature of software and finally predicts the product’s reliability.

Changeability refers to the degree of usability and generality; it can be considered one of the characteristics of maintainability, one of the most expensive software development activities. It indicates the effort required to make changes in the software component to adapt to the new platform. It mainly refers to making changes in the program’s data to make it compatible in a new environment. The focus is on the software’s integrity and reliability to perform accurately with different data sets [

The most desirable software attribute is to measure Portability, indicating how easily a product will run on a different configuration than the existing one. Standard libraries, functions, and subroutines that play a crucial role in portability should be used to make software portable. The use of these standards increases the chance of operating the system in a different environment with an increased rate of success which eventually improves the reliability of the software and makes the system cost-effective to make the system more acceptable in terms of portability; a certain level of abstraction is required from the actual hardware.

A membership function is defined as a function that creates a curve to indicate how different points in the input mapped to a value lying between 0 and 1. For a finite set X = {x1, x2, x3,…, xn}, the fuzzy set (X, μ) is denoted by {μ(x1)/x1, μ(x2)/x2, μ(x3)/x3,…,μ(xn)/xn}; where μ: X → [0, 1] is the membership function of x ∈ X. Whereas the membership of elements in a classical set is determined in binary terms either 0 or 1, i.e., either belongs or does not belong to that set. Thus, the fuzzy logic realizes the concept of partial truth value considering linguistic variable. Fuzzy logic constructs ‘if–then’ rule base to formulate the conditional statements. The general form of a simple ‘if-then’ rule is ‘if X is A, then Y is B’, where A and B are the linguistic states of X and Y, respectively. Here, ‘if’ part of the rule is antecedent and ‘then’ part is consequent. In general, the output of each fuzzy rule is a fuzzy set. Here we define the membership function of all three metrics as well as the output parameter. We have used three input and one output parameter, namely Complexity, Changeability, Portability and Reliability, and created the membership functions of all these parameters using the Triangular function given in

A fuzzy rule is an expression of “if-then” statements, which indicates the dependencies between the given variables [

The proposed model is divided into two sections; in the first phase, we proposed a Fuzzy Inference System which was designed using identified metrics as input parameters, namely complexity, changeability and portability. The output of the proposed FIS is in terms of one more parameter name reliability is then given as an input to the proposed model in the second phase. The proposed model also designed with the same identified metrics and trained using selected training data set values and was evaluated on two parameters Mean Relative Error (MRE) and Mean Absolute Relative Error (MARE). After proper training and testing of the proposed architecture, the results show that the proposed hybrid. Neuro-Fuzzy strategy is prepared well and predicts attractive outcomes in terms of MARE and MRE to estimate software reliability.

After implementing the proposed model, we compared the output of the software’s reliability parameter for different input sets of the proposed model with the existing models to check the accuracy and efficiency of the proposed hybrid approach. The comparison shown in

Complexity | Changeability | Portability | FIS |
---|---|---|---|

0.9292 | 0.9292 | 0.9292 | 0.5215 |

0.899 | 0.899 | 0.899 | 0.4652 |

0.8788 | 0.8788 | 0.8788 | 0.4461 |

0.8283 | 0.8283 | 0.8283 | 0.4142 |

0.8081 | 0.8081 | 0.8081 | 0.4651 |

0.7374 | 0.7374 | 0.7374 | 0.21 |

0.7172 | 0.7172 | 0.7172 | 2121 |

0.6869 | 0.6869 | 0.6869 | 0.1712 |

0.6768 | 0.6768 | 0.6768 | 0.1744 |

0.5758 | 0.5758 | 0.5758 | 0.1542 |

The proposed Fuzzy Inference System results with three input parameters, complexity, changeability and portability and output, are obtained in terms of reliability as shown in

Designing membership functions of all these input parameters and the output have already been explained in the next section. These membership functions are then further evaluated based on fuzzy rules designed for checking the performance of FIS.

The same data set is then applied on the Neural Network technique of soft computing with the same input parameters to get the output in terms of reliability to check the performance of the proposed model.

Complexity | Changeability | Portability | NN |
---|---|---|---|

0.9292 | 0.9292 | 0.9292 | 0.356274 |

0.899 | 0.899 | 0.899 | 0.370071 |

0.8788 | 0.8788 | 0.8788 | 0.500023 |

0.8283 | 0.8283 | 0.8283 | 0.536421 |

0.8081 | 0.8081 | 0.8081 | 0.543919 |

0.7374 | 0.7374 | 0.7374 | 0.377368 |

0.7172 | 0.7172 | 0.7172 | 0.380438 |

0.6869 | 0.6869 | 0.6869 | 0.388793 |

0.6768 | 0.6768 | 0.6768 | 0.399926 |

0.5758 | 0.5758 | 0.5758 | 0.390056 |

ANFIS with the same input parameters is also trained and tested with the real data set applied on previous approaches to predict the reliability of the software. The results of ANFIS architecture in terms of performance analysis is shown in

Complexity | Changeability | Portability | ANFIS |
---|---|---|---|

0.9292 | 0.9292 | 0.9292 | 0.1523 |

0.899 | 0.899 | 0.899 | 0.1734 |

0.8788 | 0.8788 | 0.8788 | 0.1903 |

0.8283 | 0.8283 | 0.8283 | 0.2202 |

0.8081 | 0.8081 | 0.8081 | 0.2304 |

0.7374 | 0.7374 | 0.7374 | 0.4084 |

0.7172 | 0.7172 | 0.7172 | 0.403 |

0.6869 | 0.6869 | 0.6869 | 0.4801 |

0.6768 | 0.6768 | 0.6768 | 0.4802 |

0.5758 | 0.5758 | 0.5758 | 0.5301 |

In the proposed system, all the four parameters, complexity, changeability and portability, along with the reliability factor obtained from the proposed fuzzy system, are taken as input; based on these parameters, the system trained and tested with real-time data set and predicted value of reliability is obtained for further decision making in the development of software.

Complexity | Changeability | Portability | FIS | Proposed model |
---|---|---|---|---|

0.9292 | 0.9292 | 0.9292 | 0.5215 | 0.0533 |

0.899 | 0.899 | 0.899 | 0.4652 | 0.1644 |

0.8788 | 0.8788 | 0.8788 | 0.4461 | 0.1513 |

0.8283 | 0.8283 | 0.8283 | 0.4142 | 0.0122 |

0.8081 | 0.8081 | 0.8081 | 0.4651 | 0.0014 |

0.7374 | 0.7374 | 0.7374 | 0.21 | 0.1284 |

0.7172 | 0.7172 | 0.7172 | 2121 | 0.213 |

0.6869 | 0.6869 | 0.6869 | 0.1712 | 0.1001 |

0.6768 | 0.6768 | 0.6768 | 0.1744 | 0.2012 |

0.5758 | 0.5758 | 0.5758 | 0.1542 | 0.0031 |

The training statistic set of data is shown in the editor window of the Neuro-Fuzzy toolbox, which clearly shows the evaluation of training and testing data along with the parameters like error tolerance and echoes. The statistics are given in

Performance analysis of all the existing models and the proposed model is evaluated in MRE and MARE [

Performance measures | Mean absolute relative error | Mean relative error |
---|---|---|

FIS | 0.1077 | 0.1000 |

NN | 0.1311 | 0.127 |

ANFIS | 0.0092 | 0.0130 |

Proposed model | 0.0060 | 0.0121 |

Reliability is one of the important factors that affect the selection of software systems. It will improve efficiency and lower the efforts and cost for the development of any software. Our effort discussed soft computing-based techniques, i.e., Fuzzy Inference System, Neural Network and Neuro-Fuzzy Inference System, to estimate the software’s reliability. When discussing developing software, the Neuro-Fuzzy Inference System Technique is steadier and more supportive than the fuzzy model and Neural Network. Software Reliability is an eminent field of research in which remarkable growth can be seen in the future. In this study, we proposed a neuro-fuzzy inference system. The proposed model uses the three important factors related to reliability and uses them as an input to propose a Fuzzy Inference System. The Output of the Fuzzy Inference System then uses input to the proposed Neuro-Fuzzy model to predict the reliability. The model was implemented using the Neuro-Fuzzy tool in Matlab, and results are validated by comparing with the other state-of-art soft computing techniques. The measurement is done based on two performance parameters MRE and MARE. The values of these parameters show that the proposed model’s accuracy is high compared to the other soft computing techniques. The use of a hybrid approach made the model more efficient and accurate. The efforts made will help both the developers and researcher select the best software in terms of Reliability, which ultimately helps to enhance the performance level and amount the efficiency of the overall software system and reflect interesting future research directions.