Applications of Machine Learning for Software Management

Applications of Machine Learning for Software Management

Vibha Verma (University of Delhi, India), Neha Neha (University of Delhi, India) and Anu G. Aggarwal (University of Delhi, India)
DOI: 10.4018/978-1-5225-9643-1.ch007

Abstract

Software firms plan all development and management activities strategically to provide the best products and solutions to their user. IT professionals are involved in the process of studying the bugs reported and assign severity to make decisions regarding their resolution. To make the task fast and accurate, developers use automatic methods. Herein, the authors have used feature selection-based classification technique to decide about the severity of reported bugs. TF-IDF feature selection method is used to select the informative terms, determining the severity. Based on selected terms the support vector machine and artificial neural network classifiers are used for classification. A number of performance measures have been used to test the performance of classification. The bug reports of Eclipse project for JDT and platform products were collected from Bugzilla. The results show that classifying bugs on the basis of severity can be effectively improved by feature selection-based strategy.
Chapter Preview
Top

Introduction

Technological advancements and ease of performing day-to-day chores with lesser time consumption had geared up demand for software products. The wide acceptance of software products is dependent on their quality. Software Industries work systematically to provide the best IT solutions in all domains so that the software faces minimal bugs during its execution period (Humphrey, 1995). Software applications have captured almost all the areas like Banking, Service sector, Health sector, Education, Retail, Manufacturing and Trade, etc. To ensure the effectiveness of the products, firms adopt tactical management activities. Software Management comprises of Development and Maintenance processes (Weinberg, 1993). Development of qualitative Software Systems has become a daunting task for developers because of continuous advances in technology and consumer demands whereas maintenance activities are also very important to maintain the quality of the software system. Maintenance activities are carried out to deal with the bugs faced during the working of the software after its release in the market (Charette, 1989; Humphrey, 1989).

Proper management is possible by adopting the best methods for developing and maintaining the software. Machine Learning (ML) has turned out to be relevant for Software Management (Alzubi, Nayyar, & Kumar, 2018; Michie, Spiegelhalter, & Taylor, 1994). It is the most emerging and acknowledged method used by developers for automatically accomplishing various tasks of estimation, prediction or classification, etc. ML helps to improve task performance based on the training of machines through past data (Alpaydin, 2009; Murphy, 2012). The various domains of Software Management where ML techniques have been employed extensively include:

  • 1.

    Prediction and Estimation (Wen, Li, Lin, Hu, & Huang, 2012): Various ML Algorithms are applied for predicting and estimating;

    • i.

      The quality and reliability of a software system

    • ii.

      The appropriate testing time period and hence release time

    • iii.

      The reusability and testability of components/ Modules of a software system

    • iv.

      The development cost and effort and also the maintenance effort required after releasing the software into the market.

    • v.

      The defects in the software

    • vi.

      The severity of a bug in the software

  • 2.

    Analyzing the requirements for carrying out a task (Perini, Susi, & Avesani, 2013).

  • 3.

    ML methods can also be applied to obtain useful information related to entities of software and analyze their vulnerabilities. The model for predicting the same has also been developed (Ghaffarian & Shahriari, 2017).

This chapter deals with the subject of bug severity classification by applying automated ML algorithms and text analytics to process the textual bug reports(Pandey, Sanyal, Hudait, & Sen, 2017). To start with, it is important to first understand bugs and importance of its classification on the basis of severity. A Bug can be interpreted as a flaw or shortcoming in the written program that leads to undesirable consequences, as a result,the software does not perform as intended (Herzig, Just, & Zeller, 2013). These bugs lead to failures (noncompliance with the requirements during execution). A bug may be a result of inadequate testing, inaccurate resource management, unexpected modifications in the code, untrained manpower, dearth of adequate technology, etc. In practice, bugs affect the dependability, availability, reliability and hence the quality of the software system. To track the bug of their projects, stakeholders maintain a database of bugs through Bug Tracking Systems (BTS).

Complete Chapter List

Search this Book:
Reset