scholarly journals Software Project Estimation with Machine Learning

Author(s):  
Noor Azura Zakaria ◽  
Amelia Ritahani Ismail ◽  
Afrujaan Yakath Ali ◽  
Nur Hidayah Mohd Khalid ◽  
Nadzurah Zainal Abidin
Electronics ◽  
2021 ◽  
Vol 10 (10) ◽  
pp. 1195
Author(s):  
Priya Varshini A G ◽  
Anitha Kumari K ◽  
Vijayakumar Varadarajan

Software Project Estimation is a challenging and important activity in developing software projects. Software Project Estimation includes Software Time Estimation, Software Resource Estimation, Software Cost Estimation, and Software Effort Estimation. Software Effort Estimation focuses on predicting the number of hours of work (effort in terms of person-hours or person-months) required to develop or maintain a software application. It is difficult to forecast effort during the initial stages of software development. Various machine learning and deep learning models have been developed to predict the effort estimation. In this paper, single model approaches and ensemble approaches were considered for estimation. Ensemble techniques are the combination of several single models. Ensemble techniques considered for estimation were averaging, weighted averaging, bagging, boosting, and stacking. Various stacking models considered and evaluated were stacking using a generalized linear model, stacking using decision tree, stacking using a support vector machine, and stacking using random forest. Datasets considered for estimation were Albrecht, China, Desharnais, Kemerer, Kitchenham, Maxwell, and Cocomo81. Evaluation measures used were mean absolute error, root mean squared error, and R-squared. The results proved that the proposed stacking using random forest provides the best results compared with single model approaches using the machine or deep learning algorithms and other ensemble techniques.


Author(s):  
Ramakanta Mohanty ◽  
Vadlamani Ravi

The past 10 years have seen the prediction of software defects proposed by many researchers using various metrics based on measurable aspects of source code entities (e.g. methods, classes, files or modules) and the social structure of software project in an effort to predict the software defects. However, these metrics could not predict very high accuracies in terms of sensitivity, specificity and accuracy. In this chapter, we propose the use of machine learning techniques to predict software defects. The effectiveness of all these techniques is demonstrated on ten datasets taken from literature. Based on an experiment, it is observed that PNN outperformed all other techniques in terms of accuracy and sensitivity in all the software defects datasets followed by CART and Group Method of data handling. We also performed feature selection by t-statistics based approach for selecting feature subsets across different folds for a given technique and followed by the feature subset selection. By taking the most important variables, we invoked the classifiers again and observed that PNN outperformed other classifiers in terms of sensitivity and accuracy. Moreover, the set of ‘if- then rules yielded by J48 and CART can be used as an expert system for prediction of software defects.


2018 ◽  
Vol 7 (3) ◽  
pp. 1812
Author(s):  
Archana Srivastava ◽  
Dr. K. Singh ◽  
Dr Syed Qamar Abbas

Use Case Point Method (UCP) is used to estimate software development effort. UCP uses a project’s use cases to produce a reasonable estimate of a project’s complexity and required man hours. Advance Use Case Point Method (AUCP) is an extension of UCP. AUCP extends UCP by adding the additional effort required in incorporating end user development (EUD) features in the software for overall project effort estimation. Today user needs are diverse, complex, and frequently changing hence need of EUD is also increasing. EUD features if incorporated in the software increases end user satisfaction exponentially but incorporating EUD features increases design time complexity and increases the effort significantly based on the end users requirements. This paper provides a case study to demonstrate the comparative analysis of UCP and AUCP using paired t-test. It also observes that there can be on an average 20% increase in overall effort of development on adding EUD features.  


Author(s):  
Gary D. Boetticher

Given a choice, software project managers frequently prefer traditional methods of making decisions rather than relying on empirical software engineering (empirical/machine learning- based models). One reason for this choice is the perceived lack of credibility associated with these models. To promote better empirical software engineering, a series of experiments are conducted on various NASA datasets to demonstrate the importance of assessing the ease/difficulty of a modeling situation. Each dataset is divided into three groups, a training set, and “nice/nasty” neighbor test sets. Using a nearest neighbor approach, “nice neighbors” align closest to same class training instances. “Nasty neighbors” align to the opposite class training instances. The “nice”, “nasty” experiments average 94% and 20%accuracy, respectively. Another set of experiments show how a ten-fold cross-validation is not sufficient in characterizing a dataset. Finally, a set of metric equations is proposed for improving the credibility assessment of empirical/machine learning models.


Author(s):  
Jitesh Dundas

This chapter proposes the application of periodic wave concepts in management of software Parallel processing projects or processes. This chapter lays special emphasis on Runaway project, which create a lot of problems in Project Management for the stakeholders. This chapter proposes a new and dynamic way to control the software project estimation activity of Runaway project/processes, thereby reducing their future occurrences. This chapter also explains how the equations of unidirectional periodic Waves can be applied in software Parallel processing to measure quality and project execution in a dynamic way at any point in time. The concepts proposed here are dynamic unlike PERT/CPM and other metrics, which fail in worst-case scenarios. The Propagation Speed ‘C’ at any point in time of a stage or part of a software system executing in Parallel can be given by: C = H/ k (1). Where, H = length of the Wave (i.e. highest point), k = time taken in completing the stage.


Sign in / Sign up

Export Citation Format

Share Document