CONTENTS
CONTENTS
CONTENTS
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
208 C ĂLIN ENĂCHESCU(1) AND DUMITRU R ĂDOIU(2)<br />
the development and can be used for the cost estimation only in the final phases of<br />
development when the entire software project has been finalized [2].<br />
• Functional Points metrics (FP): this software metrics takes into account<br />
the program functionalities (e.g. number of interrogations, reports), program complexity<br />
(e.g. number of logical files) and a large number of ”adjustment” factors (e.g.<br />
does the system require real time processing?) [2].<br />
• Object points metrics (OPM): this hybrid software metrics (borrows concepts<br />
from Functional Points metrics and object-oriented paradigm although the concept<br />
”object” is not used as it is used in object oriented paradigm literature) assesses<br />
the complexity of required ”objects” like: user screens, reports, 3GL components etc.<br />
Each object is estimated, a weight between 1 and 10 being attached to each object,<br />
simple objects like user screens are estimated with weight 1 and complex objects (3GL<br />
component) are weighted with 10. One of the most largely used cost estimation model<br />
is COCOMO II [4] which is prized for its results in making estimations in the initial<br />
stages of the software development project.<br />
4. Cost estimation for software development projects based on<br />
neural networks<br />
There are two general methods to estimate the cost for software development<br />
projects: algorithmic methods and heuristic methods. The heuristic methods are<br />
generally based on statistical decisions, on regression models or on complex analytical<br />
differential equations [1].<br />
4.1. Preliminaries. As we have already discussed, cost estimation for software development<br />
projects has remained for decades one of the major problems to be solved<br />
in software engineering [15].<br />
Algorithm-based computers are programmed, i.e. there must be a set of rules<br />
which, a priori, characterize the calculation that is implemented by the computer.<br />
Neural computation, based on neural networks, solve problems by learning, they<br />
absorb experience, and modify their internal structure in order to accomplish a given<br />
task [9].<br />
In order to solve a problem using a neural network we have to decide regarding<br />
the architecture of the neural network, learning algorithm and upon several issues<br />
that are influencing the learning process, like: data encoding, learning rate, weight<br />
initialization, activation functions etc. [7]. We are using in our model for cost estimation<br />
for software development projects based on neural networks a Multi Layer<br />
Perceptron [6] architecture and a specialized Back Propagation type of learning algorithm<br />
[7]. The training set used (COCOMO’81) contains historical data from 63<br />
software development projects. The training samples have each 17 attributed related<br />
to the software development projects.<br />
4.2. Learning data encoding. Learning data encoding is necessary before star-ting<br />
the learning process in order to make all attributes comparable in their influence upon<br />
the learning process. The learning process will stop when a certain error is reached,