Sei sulla pagina 1di 5

SOFTWARE EFFORT ESTIMATION USING FEED

FORWARD BACKPROPAGATION NEURAL NETWORK


1
MR. ROHEET BHATNAGAR 2DR. VANDANA BHATTACHARJEE 3DR. M K GHOSE
1
READER DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING,
SIKKIM MANIPAL INSTITUTE OF TECHNOLOGY, MAJITAR, RANGPO,
EAST SIKKIM, SIKKIM 737136, INDIA
2
ASSOCIATE PROFESSOR DEPARTMENT OF COMPUTER SCIENCE &
ENGINEERING, BIRLA INSTITUTE OF TECHNOLOGY, BITEC LALPUR, MESRA,
RANCHI, JHARKHAND 835215, INDIA
3
PROFESSOR & HEAD DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING,
SIKKIM MANIPAL INSTITUTE OF TECHNOLOGY, MAJITAR,
RANGPO, EAST SIKKIM, SIKKIM 737136, INDIA
1
roheetbhatnagar@yahoo.com 2vbhattacharya@bitmesra.ac.in 3mkghose2000@yahoo.com
ABSTRACT
The computer software industry is one of the fastest growing industries in the world and with
the increasing cost of software development it is apparent that effective techniques for
estimating software costs are essential in order to control the costs and make softwares more
competitive. In order to manage software projects efficiently, it is important to have accurate
estimates of cost and effort involved. A number of algorithmic techniques and many non-
algorithmic techniques have been developed and used for software cost estimation. However,
calculations from several of such techniques indicate that estimates of development effort and
cost differ considerably and hence may pose problems to software managers in committing
resources and controlling costs. In this research, an artificial neural network approach is
used to model the software cost estimation by taking the standard NASA project dataset. The
results are compared with the actual development effort.
KEYWORDS: Software cost estimation, Algorithmic techniques, Development effort, neural
network, and Fuzzy logic
1. INTRODUCTION
Software development involves a number of interrelated factors which affect development
effort and productivity. Since many of these relationships are not well understood, accurate
estimation of software development time and effort is a difficult problem. Nonetheless,
accurate estimation of software development effort in reality has major implications for the
management of software development. If a manager's estimate is too low, then the software
development team will be under considerable pressure to finish the product quickly. On the
other hand, if a manager's estimate is too high, then too many resources will be committed to
the project. Estimating software development effort remains a complex problem attracting
considerable research attention. As a result, many models for estimating software
development effort have been proposed and still it is a major area of research. The need for
efficient cost estimation method is all that necessary due to the change in development
technology and increase in the competition among the rivals. In this paper we have estimated
the development effort by means of a Feed Forward Backpropagation Neural Network Model.
Standard NASA project dataset has been used to train the network and also to simulate the
network. Normally, estimation is performed using only human expertise [1], [2], but recently
attention has turned to a variety of computer-based learning techniques. In 1995, Standish
Group served over 8, 000 software projects for the purpose of budget analysis. It was found
that 90% of these projects exceeded its initially computed budget. Moreover, 50% of the
completed projects lake the original requirements [3]. From these statistics, it can be seen
how prevalent the estimation problem is. Evaluation of many software models were
presented in [4], [5], [6].
1.1 SOFTWARE PROJECT ESTIMATION PROCEDURE
Effort and schedules estimates normally are computed using parametric models according to
the size of the software project, where size is measured by LOC, function points and so
forth. There are four basic steps in software project effort and schedule estimation. They can
be summarized as follows:
1. Estimate the size of the software project via the Lines of Code (LOC) or Function
Points (FP) [7].
2. Estimate the effort in man-months or man-hours.
3. Estimate the schedule in calendar months (days).
4. Estimate the project cost from project effort and schedule.
The basic software project effort and schedule estimation procedure was presented in [8] and
shown in Fig I below.

2. METHODS OF COST ESTIMATION


Many methods and models for estimating the cost of software project development over the
years. They can be broadly classified into algorithmic models – which are based on some
mathematical formulation & equation and non-algorithmic models. Still there is no single
software effort estimation model which can estimate the cost and effort of development with
100% accuracy. Basically effort estimation is more or less an efficient guestimation only.
Changes in development methodologies and techniques lead to the newer approaches in
making effort estimation. Neural Network is one such approach and in this paper use of
Neural Network based model is discussed and the results obtained are then compared with the
estimated effort from some of the other methods as per various evaluation criteria. Some of
the standard methods which were considered are as given below.
Halstead Model - E= 5.2(KLOC)1.50
Walston-Felix Model - E= 0.7(KLOC)0.91
Doty (for KLOC>9) Model - E= 5.288(KLOC)1.047
Above methods give different results for different situations.
2.1 ARCHITECTURE OF NEURAL NETWORK

3. RESEARCH METHODOLOGY
3.1. Formulation of the Problem
Experiments have been conducted on the the dataset of NASA Projects [9] to develop an
effort estimation model. In this dataset, there is empirical data in terms of KLOC,
Methodology and Measured Effort values of 18 projects as shown in Table I.

Measured
Project ID KLOC Methodology Effort
1 90.2000 30.0000 115.8000
2 46.2000 20.0000 96.0000
3 46.5000 19.0000 79.0000
4 54.5000 20.0000 90.8000
5 31.1000 35.0000 39.6000
6 67.5000 29.0000 98.4000
7 12.8000 26.0000 18.9000
8 10.5000 34.0000 10.3000
9 21.5000 31.0000 28.5000
10 3.1000 26.0000 7.0000
11 4.2000 19.0000 9.0000
12 7.8000 31.0000 7.3000
13 2.1000 28.0000 5.0000
14 5.0000 29.0000 8.4000
15 78.6000 35.0000 98.7000
16 9.7000 27.0000 15.6000
17 12.5000 27.0000 23.9000
100.800
18 0 34.0000 138.3000

Table I – NASA dataset[9] for Effort Estimation and Validation

The data of first 13 projects is used as training data for the Neural Network and data of last 5
projects is used as testing data of the trained Neural Network. The neural network used is
Feed Forward Backpropagation based Neural Network that consists of two neurons in input
layer, two neurons in the hidden layer and one neuron in the output layer. In the testing
phase the calculated efforts and errors using different models is shown in Table II and
Table III respectively. The dataset consist of two variables namely KLOC and Methodology
respectively and third field is the Measured Effort for each project.
3.2 Evaluation Criterion
i) MRE, the Magnitude of Relative Error is defined as:
MRE = |(Effortactual – Effortestimated ) / Effortactual |

By averaging MREi over multiple projects n, Mean Magnitude of Relative Error (MMRE) is
obtained:

As MMRE is sensitive to individual predictions with excessively large MREs and a higher
score means worse prediction accuracy.

ii) In addition we used the measure prediction level Pred. This measure is often used in
literature. It is defined by:

Pred(p) = k/N;

Where, k is the number of observations with an MRE less than or equal to p and N is the total
number of observations. A common value of p is 0.25.
5. EXPERIMENTAL RESULTS
This section presents the results obtained when applying the FFBNN to the NASA
Projects dataset as given in the Table I. The experiment used the NASA Project dataset for
training and testing the neural network. Using MATLAB Neural Network Toolbox the
neural network model is created, trained with first 13 project data from Table I and remaining
5 project data were used to simulate and test the trained network. The reults obtained are
shown in the Table II.

Project ID Estimated Effort using FFBPNN Actual Effort


14 5.0084 8.4000
15 115.7999 98.7000
16 5.6368 15.6000
17 8.6387 23.9000
18 115.7998 138.3000

Table II Estimated effort using the Neural Network Model

EVALUATIO FFBPN Halstead Walston- Doty


N N Felix
CRITERIA

MMRE 0.4034 1.7292 1.5556 3.0250

Pred(0.25) 0.4000 0.2000 0.0000 0.0000

Table III MMRE


values for different methods calculated for last 5 projects as per NASA dataset

3. CONCLUSION
This paper has presented an overview of a variety of software estimation techniques. It can be
concluded that today, almost no model can estimate the cost of software with a high degree of
accuracy due to the following reasons:
(1) A large number of interrelated factors influence the software
development process of a given development team and a large number of project
attributes, such as number of user screens, volatility of system requirements and the use
of reusable software components.
(2) Development environment is evolving continuously.
(3) Lack of measurement truly reflects the complexity of a software system.
To produce a better estimate, we must improve our understanding of these project attributes
and their causal relationships, model the impact of evolving environment, and develop
effective ways of measuring software complexity. Experience to date indicates that neural-net
and dynamics-based 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. No one method or model should be preferred over all others. The key to arriving
at sound estimates is to a combination of different methods for accurately estimating software
costs and development time. A careful comparison of the results of several approaches helps
us in choosing the best one and produce realistic estimates.
4. REFERENCES
[1] J. W. Park R, W. Goethert, “Software cost and schedule esti-mating: A process
improvement initiative,” tech. rep., 1994.
[2] M. Shepper and C. Schofield, “Estimating software project effort using analogies,” IEEE
Tran. Software Engineering, vol. 23,pp. 736–743, 1997.
[3] T. S. Group, CHAOS Chronicles. PhD thesis, Standish Group Internet Report, 1995.
[4] M. Boraso, C. Montangero, and H. Sedehi, “Software cost estimation: An experimental
study of model performances,” tech. rep., 1996.
[5] O. Benediktsson, D. Dalcher, K. Reed, and M. Woodman, “COCOMO based effort
estimation for iterative and incremental software development,” Software Quality Journal,
vol. 11, pp. 265–281, 2003.
[6] T. Menzies, D. Port, Z. Chen, J. Hihn, and S. Stukes, “Validation methods for
calibrating software effort models,” in ICSE’05: Proceedings of the 27th international
conference on Software engineering, (New York, NY, USA), pp. 587–595, ACM Press,
2005.
[7] K. Pillai and S. Nair, “A model for software development effort and cost estimation,”
IEEE Trans. on Software Engineering, vol. 23, p. 485497, 1997.
[8] K. Peters, “Software project estimation,” Methods and Tools, vol. 8, no. 2, 2000.
[9] J. W. Bailey and V. R. Basili, “A meta model for software development resource
expenditure,” in Proceedings of the International Conference on Software Engineering, pp.
107–115, 1981.
[10] M. Shin and A. L. Goel, “Emprirical data modeling in software engineering using radial
basis functions,” IEEE Trans. on Software Engineering, pp. 567–576, 2000.

Potrebbero piacerti anche