02.04.2013 Views

CONTENTS

CONTENTS

CONTENTS

SHOW MORE
SHOW LESS

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,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!