Predicting Software Quality Parameters using Artificial Intelligence Techniques and Source Code Metrics
Improving quality of the desired software is an important topic under software engineering domain that has attracted several researchers' attention. Prediction and early identification of fault prone components help the maintenance team, as they can optimize and focus on their testing resources on the modules. Software quality prediction models are generally developed using a structural measurement of software (source code metrics (SCMs) i.e. size, cohesion, coupling, complexity, and inheritance. The objective of this work is to use such measurement effectively and derive the relation between these internal structural properties with relevant external system qualities such as reliability, change proneness, maintainability, etc. SCMs are often used to measure the internal structure of software systems such as complexity, coupling, cohesion, inheritance, and size. The research work carried out in this study presents the use of various artificial intelligence (AI) techniques and feature selection (FS) methods for software quality prediction such as fault prediction, change proneness of object oriented software, maintainability prediction of object oriented software, change proneness of web service, quality of service prediction of web service using SCMs. The AI techniques, FS methods and set of SCMs are implemented taking into consideration of related dataset. Software fault prediction models are employed by researchers to optimize the testing process by identifying fault prone classes before testing phases start. The performance of a model to assess fault proneness depends on the SCMs, which are considered as the input for the model. In this work, a framework has been proposed to validate the source code metrics and identify a suitable set of source code metrics with the aim to reduce irrelevant features and improve the performance of the fault prediction model. The obtained set of SCMs is validated using eighteen different classifiers and three different ensemble methods. The effectiveness of the developed fault prediction models are evaluated using a proposed cost evaluation framework. The experimental results reveal that the model developed by considering the selected set of SCMs using the suggested SCMs validation framework as the input achieves comparatively better results compared to all considering metrics. The experimental results also demonstrate that the fault prediction model is best suitable for projects with faulty classes less than the threshold value depending on fault identification efficiency. Change prone classes or modules are defined as software components in the source code, which are likely to change in future. The use of SCMs can best assess the quality of change proneness prediction model that is considered as input to design the prediction model. So in this work, eleven different FS methods including proposed SCMs validation framework have been considered to remove irrelevant features and select best set of features. The effectiveness of these sets of SCMs are evaluated using twenty one classification techniques. Experimental results demonstrate that the least square support vector machine with RBF kernel (LSSVM RBF) yields better result as compared to other classification techniques. Further, it is observed that there exists a small subset of source code software metrics, which are able to predict change proneness with higher accuracy as compared to all metrics. Software maintenance plays an important role in software development life cycle (SDLC) hence prior estimation of effort for maintainability plays a vital role in achieving considerable success in any software system. Existing approaches for maintainability estimation are mostly based on regression analysis and simple neural network approaches. In this work, maintainability prediction models are developed using three different types of neural networks and ensemble methods by considering object oriented metrics as input. A hybrid algorithm based on genetic algorithm (GA) with gradient descent (GD) algorithm has been proposed to train the neural network. This study also focuses on five different types of FS methods which can predict maintainability of software with higher accuracy. The results show that model developed using a proposed hybrid algorithm based on GA with GD algorithm yields promising results when compared with the earlier works as carried out by different authors indicated in literature. The results also show that the FS method obtains better results for predicting maintainability as compared to all metrics. Change proneness prediction of object oriented software using SCMs is an area that has attracted several researchers' attention. However, change proneness prediction of web services in terms of changes in the WSDL (Web Service Description Language) interface using SCMs implementing the services is a relatively an unexplored area. In this work, one experiment is conducted on a case study consisting of several versions of eBay web services. SCMs serving as predictors and twenty one classifiers are applied to develop a change proneness estimator. From experimental results, it may be concluded that it is possible to predict change proneness of WSDL documents and services using SCMs. The predictive model developed using LSSVM RBF yields better results compared to other classifiers. The results also show that the performance of the selected set of SCMs varies with the different classification methods. Applications and business solutions using web services (which integrate and combine several services) expect high Quality of Service (QoS) such as performance, scalability and reliability as their application is dependent on the service. Failed and slow online application depending on web services can cost a lot to organizations in terms of customer dissatisfaction. Estimation and improvement of the quality of service (QoS) parameters of web service serve as the primary objective of service providers. It is observed that analyzing the source code behind the web services helps in computing the QoS parameters. In this work, thirty seven different SCMs have been analyzed to measure the internal structure of software system. In order to develop a model, these SCMs are treated as input for predicting QoS parameters using eighteen different prediction techniques. In this work, four distinct feature reduction techniques are also considered to select the best set of metrics. The results show that the neural network with a hybrid approach of adaptive GA and GD produces better results as compared to an individual. Further, it is also observed that the selected set of metrics achieve better results as compared to all the metrics.