Software Quality Prediction Using Machine Learning

Software Quality Prediction Using Machine Learning

Bhoushika Desai, Roopesh Kevin Sungkur
Copyright: © 2022 |Pages: 35
DOI: 10.4018/IJSI.297997
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

With the emergence of Machine Learning, many companies are increasingly embracing this revolutionary approach, both in terms of growth and maintenance, to reduce software costs. This research aimed at building two models which is Software Defect Prediction Model (SDPM) which will be used to predict defects in software and Software Maintainability Prediction Model (SMPM) which will be used for Software Maintainability. Different classifiers, namely Random Forest, Decision Tree, Naïve Bayes and Artificial Neural Networks have been considered and then evaluated using different metrics such as Accuracy, Precision, Recall and Area Under the Curve (AUC). The two models have successfully been evaluated and Decision Tree has been chosen as compared to other classifiers which tends to perform much better. Finally a framework based on a set of guidelines that can be used to improve software quality has been devised.
Article Preview
Top

1. Introduction

In software companies, system quality of the product is becoming a real concern. There are several variables that contribute to bad software products. Since the early 1970s, the software issue has arisen, with software engineers were unable deliver high-quality software at times and on budget (Jayawarna et al., 2011). Eventually, in their efforts to produce high-quality software and gain customer loyalty, software companies encounter numerous challenges. Inefficient management, administration, developer ego, strict schedules and strain, additional costs (e.g. buying new tools), contradictory views and values, lack of training on standards, inadequate resources to simplify the application development, lack of organizational quality management structure, poor knowledge of the process, Disapproval of senior management and the updated version of the system, poor communication, difficulty of coding and programming errors are ways of reducing software quality planning.

There is a shortage of skilled workers in the technology sector that results in low performance. These could arise when programming and reviewing are done by the same individual or even when they're not comfortable with a computer language and are required to code. Such individuals are not skilled in this sector, leading to poor software quality. As this is a constantly evolving environment, the software business must provide its staff with frequent training to keep them aware with new technologies and resources. At the beginning of a project, it is advised to add developers not at the end or somewhere in between, that end up in a poor-quality product.

Another factor that causes applications to not achieve success is software testing. Software is not tested properly. In addition, each part or module should be tested during the manufacture of a product known as the system test. Testing is a procedure that guarantees that the system satisfies the client's criteria and specifications. Checking code is a way for software bugs to be detected and can also prevent program failure. Errors must be detected and corrected before the software is delivered to the customer, which contributes to a reliable product, maintains reliability, and decreases costs. Errors should usually be found early in the test phase. In addition, regression testing must be done to ensure the testing of the updated component of the program

As reported by (Khan et al., 2015), it was observed that since the tester do not have enough software data to evaluate the system, and the most common quality issues emerged. He also suggested that monitoring was rigorous and that there was no written guideline for fair quality assurance of software.

Modifications in requirements are most popular whilst designing complex systems. For instance, if the requirements are changing continuously in the early phases, and if the Software Development Life Cycle is defined, the new specification modification may still be managed. Additionally, company consumers start to understand what they can do to reduce their everyday activities as the work proceeds and keep changing their minds by requesting more improved functionality. This problem affects the output of software products.

As a result, it is essential to pay attention to the following warning signs namely:

  • Requirements which were agreed recently during brainstorming meeting are now different or removed entirely.

  • Significant amount of time is being spent by chasing people for agreement instead of being productive.

  • The project is running late as the existing amount of work loads should be re-scheduled accordingly to adjust with the requirements change.

  • The end of the project seems to be far ahead, that is, the light at the end of the tunnel cannot be seen for the time being.

Therefore, if requirements keep changing, it is key to establish the current status of the project and proactively adapt to changes as per recommendations defined below from:

  • An agreed set of defined requirements.

Complete Article List

Search this Journal:
Reset
Volume 12: 1 Issue (2024)
Volume 11: 1 Issue (2023)
Volume 10: 4 Issues (2022): 2 Released, 2 Forthcoming
Volume 9: 4 Issues (2021)
Volume 8: 4 Issues (2020)
Volume 7: 4 Issues (2019)
Volume 6: 4 Issues (2018)
Volume 5: 4 Issues (2017)
Volume 4: 4 Issues (2016)
Volume 3: 4 Issues (2015)
Volume 2: 4 Issues (2014)
Volume 1: 4 Issues (2013)
View Complete Journal Contents Listing