Necessity of the work
Faults in software systems continue to be a major problems. A software bug is an error, failure, flaw, fault or mistake in a computer program that resist it from behaving as intended, like generating an incorrect result. A software fault is a defect that causes software failure in an executable product. Knowing the causes of possible defects as well as identifying general software process areas that may need attention from the initialization of a project could save money, time and work. The possibility of prior estimating the potential faultiness of software could help on planning, controlling and executing software development activities.
Software without an error is very difficult to develop, mostly there are some unknown bugs or unforeseen deficiencies even in software projects where the principles of the software development methodologies were applied cautiously. Because of few software modules that are defective the maintenance phase of software projects could become really painful for the users and costly for the organisations. For this reason, it is very crucial to predict the defective modules or files in a software system earlier to project deployment, because due to this prediction of error we can decrease cost of project, so the overall success rate of software is increased. Defect prediction will give one more chance to the development team to test again the modules or files for which the defect probability is low.
5.2 Development carried out
Here applicability and intelligence of ANFIS techniques for Software error prediction has been investigated. For this NASA’s Metrics Data Program (MDP) containing software metric data and error data at the function/method level has been used to validate the algorithm. This one includes a numeric attribute (NUMDEFECTS) to indicate defectiveness.
5.2.1 Modelling steps
A step-by-step approach for the successful development and implementation of ANFIS approach for software defect prediction model has been carried out. In the present work the software metrics and dataset used are mission critical NASA software projects, which are all high assurance and complex real-time system. They are taken from PROMISE Software Engineering Repository data set made publicly available in order to encourage repeatable, verifiable, refutable, and/or improvable predictive models of software engineering. They are Class-level data for KC1. This one includes a numeric attribute (NUMDEFECTS) to indicate defectiveness. The various approaches include:
• Proper selection of input parameters having a close relationship with the software error prediction development model.
• Using permutation and combination to divide the datasets into training and testing subsets, such that it results in the development of an appropriate prediction model. These training and testing data are to be used during the MATLAB code generation. Further it is to be ascertained that the training data has all the characteristics of the problem in order to get highly effective model development:
1. In case of ANFIS model development,
• For limited database, in order to reduce large computation time and decrease the bulk of rules, selection of appropriate rule extraction method viz. subtractive clustering is bring out for an effective partitioning of the input space. In case of subtractive clustering, proper selection of cluster radius through trial and error is done.
• Proper selection of parameterised functions, known as membership functions, is an crucial step in the development of an optimum model. Here default Gaussian membership function has been selected for prediction model development.
• Appropriate selection of training algorithm, initial step size and training epoch number;
• Validation and analysis of ANFIS models.
2. An analytical study of the method followed by conclusions drawn regarding the model developed based on performance criteria.
The aim of development of models for software error prediction is to use measures that may be obtained relatively prior in the software development life cycle to provide reasonable initial estimates of quality of an evolving software system. Artificial intelligence technique is used for this, viz. ANFIS for the development of software defect prediction model is a very appropriate technique because predicting the defective modules in a software system prior to project deployment is a very important, because to a decrease in the total cost of the project and an increase in overall project success rate. Defect prediction will give one more chance to the development team to test again the modules or files for which the defectiveness probability is high.
Here it was demonstrated that models developed using ANFIS technique could be used for solving this critical issue. It is clearly demonstrated that ANFIS can be trained to accurately predict software defect using variable process parameters. The interpretation results in chapter 4 demonstrate one of the real strengths of ANFIS is that they perform well even when the training data contains noise and measurement errors. That is, during learning, ANFIS are able to filter out noise and measurement error and effectively generalise the system behaviour.
From the analysis of the results, given under heading “Results and Discussions”, Chapter-4, it is seen that the software defect prediction model developed using ANFIS technique has been able to perform well. The overall RMSE value obtained from ANFIS model is 8.164 for radius of influence r=0.75, which is almost half of that for r=0.50 and 1.0. Further from Fig. 3 & 4 and Table 6 it is seen that ANFIS model line almost closely follows the observed line. This again depicts the predictive superiority of ANFIS technique.
Further it was seen that ANFIS presents a much more specific mathematical structure which enables it as a good universal adaptive approximator. The most significant advantages of ANFIS are :
...(download the rest of the essay above)