Keywords

1 Introduction

The estimation of required resources and schedule can be done through accurate cost estimation. Moreover, cost estimation can also relate as well as organize advancement of tasks apportion what an assets to perform the undertaking and by what technique these assets will be utilized. Talking about the parameters, the exactness of the product advancement and the precision of the administration choices both are interrelated. The exactness of the previous is dependent on the precision of the last mentioned in terms of relying; that is, the former will rely on the latter. There are number of parameters, for example, improvement time, group and effort estimation, and for the calculation of each one of the models is required. COCOMO model is said to be the most popular models for the estimation of software cost effort estimation technique. What is unique about COCOMO model is that it makes use of mathematical formula to analyze project cost effort estimation. The paper based on COCOMO model is making use of multilayer neural network technique using perception algorithm.

2 COCOMO

The Constructive Cost Model or better known as the COCOMO model, first presented by Dr. Barry Boehm in 1981, surpassed all the software development practices that took place in those days. Software development techniques have been undergoing many changes and evolving since those days. The COCOMO model can be subdivided in the following models based on the type of application [1].

2.1 Basic COCOMO

Project quality details are not needed to implement parameterized equation of basic COCOMO model.

$$ {\text{Person}}\,{\text{Month}} = {\text{a}}\left( {\text{KLOC}} \right)^{\text{b}} $$
(1)
$$ {\text{Development}}\,{\text{Time}} = 2.5*{\text{PM}}^{\text{c}} $$
(2)

Three modes of progress of projects are there, on which all the three parameters depend, namely a, b, and c.

2.2 Intermediate COCOMO

According to basic COCOMO model, there is no provision to do software development. To add the accuracy in basic COCOMO model, there are 15 cost drivers provided by Boehm. Cost driver can be classified into

  1. 1.

    Product attributes

    • Required software reliability or better known as RELY

    • Database size or better known as DATA

    • Product complexity or better known as CPLX

  1. 2

    Computer attributes

    • Execution time constraint or better known as TIME

    • Main storage constraint or better known as STOR

    • Virtual machine volatility or better known as VIRT

    • Computer turnaround time or better known as TURN

  1. 3

    Personnel attributes

    • Analyst capability or better known as ACAP

    • Application experience or better known as AEXP

    • Programmer capability or better known as PCAP

    • Virtual machine experience or better known as VEXP

    • Programming language experience or better known as LEXP

  1. 4.

    Project attributes

    • Modern programming practices or better known as MODP

    • Use of software tools or better known as TOOLS

    • Required development schedule or better known as SCED [1].

3 Artificial Neural Network

Neurons or the interconnected basic processing devices are used to build artificial neural network (ANN). Much like the human brain, an ANN is stimulated by the way biological nervous systems are. What plays a key role in this paradigm is the novel structure of the input data processing system. It is constructed from number of highly interconnected processing elements (neurons) working in unification to resolve specific tribulations [2].

A simple artificial neural network is shown in Fig. 1 with two inputs neurons (I1, I2) and one output neuron (O). The inter connected weights are given by w1 and w2. Represented by the mathematical symbol I(n), various inputs to the network are shown in Fig. 1. Each of these inputs is multiplied by a connection weight. These weights are represented by w(n). In the simplest case, these products are simply summed, fed through a convey function to generate a result, and then delivered as output. This process lends itself to physical achievement on a large scale in a small package. This electronic implementation is still possible with other network structures, which utilize different calculation functions as wells as different transfer functions [2].

Fig. 1
figure 1

A simple artificial neural net

4 Related Work

Researchers in effort estimation models have developed multiple software. Artificial neural network is capable of generating good information and modeling complex nonlinear relationships. For the calculation of software effort estimation, researchers all across the world have used the artificial neural network approach. Moreover, Boehm’s COCOMO dataset is also used. Tadayon [3] reports the use of neural network with a backpropagation. Kaushik [1] also research on multilayer neural network using perceptron learning algorithm. COCOMO [4] is the most effective and widely used software for effort estimation model, which arranges beneficial expert knowledge. For getting appropriate calculations, COCOMO model is one of the most imperative tools that produce capacity for developing effort estimation models with better analytical accuracy. In this paper, multilayer feedforward neural network using perceptron learning algorithm and COCOMO dataset has been used. Using this approach, an effort estimation model for software cost evaluation has been proposed.

5 Proposed Neural Network Model

Figure 1 shows the simple artificial neural network [5]. Many of the network architectures have been developed for different applications and performance. Neural network configuration depends on its design and their performance constraint settings.

In neural network, several parameters are used such as:

  • Number of nodes in input layer and hidden layer,

  • Training algorithm parameters,

  • Weights–Neurons are connected to each other by directed communication links, which are associated with weights.

In proposed model, 20 inputs are taken in which 15 are effort multipliers and 5 scale factors. We have initialized bias as 1.00, weight w = 1.08, and learning rate = 0.1 in our proposed network and used identity activation function to calculate the desired output of the network.

This describes about experimenting networks and calculating new set of weight. The proposed algorithm is as follow:

  • Step1. Initialize the bias (b = 1), weights (Wi = 1 for i = 1 to 15), set learning rate (lrnrate = 0.1) and Threshold theta (Ɵ) value = 4. Set Learning Rate (0 < N <= 1).

  • Step 2. Execute steps 3-8 until condition is false.

  • Step 3. Execute step 5-7 for each training pair.

  • Step 4. The input layer gets information flag and transmit it to concealed layer by executing identity activation function on the inputs from x = 1 to 20.

  • Step 5. Calculate the response of each response per unit is as follow:

    1. 5.1

      Calculate effort multiplier hidden layer Using Hiddenem = b + input * weightem for input(x) = 1 to 15.

    2. 5.2

      Calculate scale factor hidden layer using Hiddensf = b + input*(weightsf + size) for input (x) = 16 to 20.

  • Step 6. Calculate estimated output i.e. effort using Estimated Output = Hiddenem *Weightem + Hiddensf*Weightsf. where Weightem = effort multiplier weight and Weightsf = scale factor weight.

  • Step 7. Weights are not updated. Go to step 10.

  • Step 8. If the difference is acceptable limit the output is considered else weights are modified using weight (new) = weight (old) +learning rate*input(x).

  • Step 9. Repeat step 5 to 6.

  • Step 10. Calculate Magnitude Relative Error (MRE) MRE = ((Oact-Oest)/Oact)*100

  • Step 11. Stop.

6 Evaluation Criteria and Results

In this area, we depict the procedure utilized for figuring endeavors and the outcomes get when actualizing proposed neural system model to the COCOMO information set [6]. COCOMO information set is open-source cost evaluating apparatus which comprises of 63 undertakings. The tool does the logical appraisal among the exactness of the assessed exertion with the genuine exertion. For examining programming exertion estimation, we have calculated error using Magnitude of Relative Error (MRE) which is characterized as follows:

$$ {\text{MRE}} = \left( {{\text{actual}}\,{\text{effort}} - {\text{estimated}}\,{\text{effort}}/{\text{actual}}\,{\text{effort}}} \right)*100 $$
(3)

14 experimental values are shown in Table 1 which were tested. Actual effort of the model has been compared with these values. The comparison reflects us about the efficiency of our network. Table 2 contains the estimated effort, actual effort, and Mean Magnitude of Relative Error (MRE) values for 14 experimented projects (Table 3).

Table 1 Cost drivers
Table 2 Assessment of calculated effort
Table 3 Assessment of MRE (magnitude relative error)

Tables 1, 2 and Fig. 2 show that the described neural network model gives the most proficient effort estimation results as compared to other models.

Fig. 2
figure 2

Graphical representation of calculated effort

7 Conclusion

Having a dependable and precise estimate of software development has never been an easy task, and this is where has always lied the problem for many scholarly and industrial conglomerates since ages. Talking about anticipating the future programming improvement exertion, there are a number of product exertion estimating models that can be used for the purpose. This paper shows how a cost estimation model is built based on artificial neural network. The neural network that is used to estimate the software improvement effort is multilayer feedforward neural network with identity activation function. Accurate value is attained through neural network. In future, for software cost estimation, we will put our focus on neurofuzzy approach.