Functional Link Artificial Neural Networks for Software Cost Estimation

Functional Link Artificial Neural Networks for Software Cost Estimation

B. Tirimula Rao (Anil Neeruknoda Institute of Technology and Sciences, India), Satchidananda Dehuri (Fakir Mohan University, India) and Rajib Mall (Indian Institute of Technology Kharagpur, India)
Copyright: © 2012 |Pages: 21
DOI: 10.4018/jaec.2012040104
OnDemand PDF Download:
List Price: $37.50


Software cost estimation is the process of predicting the effort required to develop a software system. Software development projects often overrun their planned effort as defined at preliminary design review. Software cost estimation is important for budgeting, risk analysis, project planning, and software improvement analysis. In this paper, the authors propose a faster functional link artificial neural network (FLANN) based software cost estimation. By means of preprocessing, i.e., optimal reduced datasets (ORD), the authors make the functional link artificial neural network faster. Optimal reduced datasets, which reduce the whole project base into small subsets that consist of only representative projects. The representative projects are given as input to FLANN and tested on eight state-of-the-art polynomial expansions. The proposed methods are validated on five real time datasets. This approach yields accurate results vis-à-vis conventional FLANN, support vector machine regression (SVR), radial basis function (RBF), classification, and regression trees (CART).
Article Preview

1. Introduction

Software engineering measurement and analysis specifically, cost estimation initiatives have been in the center of attraction for many firms. The concept of software cost estimation has been growing rapidly due to practicality and demand for it. Software cost estimation involves the process to foresee the total costs spent during the development of a software product based on several factors, called ‘cost drivers’, and mostly relate with the product to be developed, the engineering process followed and the people engaged in the process. During, last few decades the main cost driver attracting the research interest is development effort (typically measured in person-months). Software cost estimation techniques fall into following six categories: parametric models including COCOMO (Constructive Cost Model) (Boehm, 1981; Huang et al., 2007), SLIM (Software Life cycle Management) (Putnam & Myers, 1992), and SEER-SEM (Software Evaluation and Estimation of Resources–Software Estimating Model) (Jensen, 1983); expert judgment including Delphi technique (Helmer, 1966) and work breakdown structure based methods (Tausworthe, 1980; Jørgensen, 2004); learning oriented techniques including machine learning methods (Heiat, 2002; Shin & Goel, 2000; Oliveira, 2006) and analogy based estimation (Shepperd & Schofield, 1997; Auer et al., 2006; Huang & Chiu, 2006); regression based methods including ordinary least square regression (Mendes et al., 2005; Costagliola et al., 2005) and robust regression (Miyazaki et al., 1994); dynamics based models (Madachy, 1994); composite methods (Chulani et al., 1999; MacDonell & Shepperd, 2003).

Functional Link Artificial Neural Network (FLANN) based software cost estimation (FBE), which is essentially a machine learning technique, was introduced by Rao et al. (2009). Due to its conceptual simplicity and empirical competitiveness, FLANN has been extensively studied and applied (Jodpimai et al., 2010; Papatheocharous et al., 2010; Abhishek et al., 2010; Khatibi et al., 2011). FLANN is basically a flat net and the need of the hidden layer is removed and hence, the BP learning algorithm used in this network becomes very simple, originally proposed by Pao et al. (1992).The functional expansion effectively increases the dimensionality of the input vector and hence the hyper planes generated by the FLANN provide greater discrimination capability in the input pattern space. FLANN architecture for predicting software development effort is a single-layer feed forward neural network consisting of an input and output layer. FLANN generates output (effort) by expanding the initial inputs (cost drivers) and then processing to the final output layer. Each input neuron corresponds to a component of an input vector. The output layer consists of one output neuron that computes the software development effort as a linear weighted sum of the outputs of the input layer (Rao et al., 2009).

Complete Article List

Search this Journal:
Open Access Articles: Forthcoming
Volume 8: 4 Issues (2017): 3 Released, 1 Forthcoming
Volume 7: 4 Issues (2016)
Volume 6: 4 Issues (2015)
Volume 5: 4 Issues (2014)
Volume 4: 4 Issues (2013)
Volume 3: 4 Issues (2012)
Volume 2: 4 Issues (2011)
Volume 1: 4 Issues (2010)
View Complete Journal Contents Listing