A Survey on Software Cost Estimation Techniques <s> Artificial Neural Networks <s> This paper summarizes several classes of software cost estimation models and techniques: parametric models, expertisedbased techniques, learningdoriented techniques, dynamicsdbased models, regressiondbased models, and compositedBayesian techniques for integrating expertisedbased and regressiondbased models. Experience to date indicates that neuraldnet and dynamicsdbased techniques are less mature than the other classes of techniques, but that all classes of techniques are challenged by the rapid pace of change in software technology. The primary conclusion is that no single technique is best for all situations, and that a careful comparison of the results of several approaches is most likely to produce realistic estimates. <s> BIB001 </s> A Survey on Software Cost Estimation Techniques <s> Artificial Neural Networks <s> Software development effort estimation with the aid of neural networks has generally been viewed with skepticism by a majority of the software cost estimation community. Although, neural networks have shown their strengths in solving complex problems, their shortcoming of being 'black boxes' models has prevented them from being accepted as a common practice for cost estimation. In this paper, we study the interpretation of cost estimation models based on a backpropagation three layer perceptron network. Our proposed idea comprises mainly of the use of a method that maps this neural network to a fuzzy rule based system. Consequently, if the obtained fuzzy rules are easily interpreted, the neural network will also be easy to interpret. Our case study is based on the COCOMO'81 dataset. <s> BIB002 </s> A Survey on Software Cost Estimation Techniques <s> Artificial Neural Networks <s> The value of Artificial Neural Networks (ANNs) methods in performing complicated pattern recognition and nonlinear estimation tasks has been demonstrated across an impressive spectrum of applications. ANNs methods are also used in software development process, since it is a complex environment with many interrelated factors affecting development effort and productivity. Accurate forecasting has proved difficult since many of these interrelationships are not fully understood. This paper provides an overview on the use Artificial Neural Networks methods to estimate the development effort for software development projects. In this survey an explanation, on why those methods are used and how accurate they are. <s> BIB003 </s> A Survey on Software Cost Estimation Techniques <s> Artificial Neural Networks <s> Abstract Software Effort Estimation models are hot topic of study over 3 decades. Several models have been developed in these decades. Providing accurate estimations of software is still very challenging. The major reason for such disappointments in projects are because of inaccurate software development norms; effort estimation is one such practice. Dynamically fluctuating environment of technology in software development industry make effort estimation further perplexing. One of the most commonly used algorithmic model for estimating effort in industry is COCOMO. Capability of machine learning particularly Artificial Neural Networks is to adjust a complex set of bond among the various independent and dependent variables. The paper proposes usage of ANN (Artificial Neural Network) based model technologically advanced using Multi Layered Feed Forward Neural Network which is given training with Back Propagation training method. COCOMO data-set is accustomed to test and train the network. Mean-Square-Error (MSE) and Mean Magnitude of Relative-Error (MMRE) are used as performance measurement indices. The experiment outputs suggest that the suggested model can provide better results and accurately forecast the software development effort. <s> BIB004
ANN is one of the major approaches that are exploited in the sector of machine learning models. As the name suggests, it is usually inspired by the neural part of the brain system with an intention of imitating an intelligent living organism BIB004 . It is composed of two layers, that is the input and output layers, within the layers there is a hidden layer which constitutes of units whose main purpose is to assign weights to the data that is fed from the input. These weights are assigned randomly to the data BIB002 . They are among the exploited tools in cost estimation due to their excellent performance  . Neural networks have existed for long as they can be traced back to the year 1940 although the best way to exploit them was the missing link which has been currently accomplished. There are different types of neural networks that exist with each of them having a defined level of complexity coupled with use. The most common and general type of neural network (NN) is the feed forward neural network as the name suggests data travels in only one direction which is from input to output BIB004 . Other types include Recurrent Neural Network (RN), Convolution Neural Networks (CNN), LTSM Recurrent Neural Networks, etc. The ANN approach is used in cost estimation where the pattern of certain data requires to be understood prior to estimating the project cost. In the cost estimating field, it is used to classify data into predefined classes, clustering, and prediction BIB002 . For instance, in projects such as the stock exchange market, it is used to make predictions in the market through the exploitation of the previous data. (Figure 3 ). It has also some limitations whereby sometimes they tend to over-fit the data in the software cost estimation process  . Additionally, the model also requires Hamza et al. BIB003 concluded that choosing the right artificial neural network model is essential to get the accurate estimations. In their study BIB003 they have also concluded that feed-forward neural network works better than other models in ANN's but, the technique needs data filtering to prevent noise. In the case of noisy data, the radial basis function is more suitable. Figure 3 . A neural network estimation model BIB001 . Journal of Software Engineering and Applications