algorithm models must be mentioned, for example:
Estimation by analogy (Shepperd, Schofield, and
Kitchenham, 1996). This method requires one or
more completed projects similar to the new
project, and derives estimation through reasoning
by analogy through the actual costs of previous
projects.
Expert judgement method (Jorgensen, 2005).
This method involves working in liaison with a
software cost estimation expert or group of
experts to use their experience and understanding
of the proposed project to reach an estimate cost.
This method can be used together with the
Delphi technique (Lilja, Laakso and Palomki,
2011) which allows improving and systematising
the consulted experts’ opinion.
Bottom-up. In this method, each software system
component is separately assessed and results are
added in order to produce an estimate of the
overall system. The requirement for this
approach is that an initial design must be in place
to indicate how the system is decomposed into
different elements.
Top-down: This method is the opposite of the
bottom-up method. An overall cost estimate for
the system is derived from global properties,
using either algorithmic or non algorithmic
methods. The total cost can then be split up into
different components. This approach is more
suitable for cost estimation at the early stage.
In addition, there are many algorithmic models to
estimate the project cost. These methods are
mathematical-based models that produce cost
estimate as a function with a number of variables,
which are considered to be the major cost factors. To
improve the accuracy of algorithmic models, it is
necessary to adjust or calibrate the model to local
circumstances. Despite calibration, accuracy can be
quite mixed. Some of the most referenced
algorithmic models are:
COCOMO (Constructive Cost Model). These
models were proposed by Boehm (Boehm, 1981)
in 1981 and later reviewed in the 90's, when the
development techniques drastically changed. In
2000, the second version of COCOMOs was
published and was called COCOMO II (Boehm,
Abts, Winsor Brown, Chulani, Clark, Horowitz,
Madachy, Reifer and Steece, 2000). COCOMO
uses a basic regression formula with parameters
derived from both, historical data of the project
and its current characteristics. This model
consists in a hierarchy of three increasingly
detailed and accurate models.
The first model, Basic COCOMO computes
software development effort as a function based on
code-size given in thousands of lines of code,
(KLOC). This model is suitable to get an early quick
rough order of estimates of software costs, but its is
accuracy-limited due to its lack of factors to account
for differences in project attributes (Cost Drivers, for
instance, provide differences in hardware
constraints, personnel quality and experience or
usage of modern tools and techniques, among
others). The second model, Intermediate COCOMO
computes software development effort as a function
based both on the code-size and a set of Cost Drivers
that include subjective assessment of products,
hardwares, personnel and project attributes. The
third model, Detailed COCOMO incorporates all
characteristics of the intermediate version plus an
assessment of the influence of Cost Drivers on each
individual phase of the project (Analysis, Design,
etc.) in the software engineering process.
The Putnam model (Putnam, 1978). This model
represents an empirical software effort
estimation model. Putnam focuses his model on
Rayleigh’s manpower distribution and his
finding on analysing many completed projects.
Putnam's approach is incorporated into a
commercially available cost estimation system
called SLIM.
Bailey-Basili metamodel (Bailey and Basili,
1981). Authors aimed to derive a methodology,
thus, they assumed that the coefficients in any
effort equation would be highly dependent on the
environment and personnel at a particular
installation, and that coefficients derived from a
local database would lead to a much more
accurate model. Their metamodels deal with a
rigorous statistical analysis of 18 relevant
projects developed at the NASA Goddard Space
Flight Center so as to determine the equations
that measure the effort and Cost Drivers. This
basic methodology is neither important for the
specific effort equation nor the particular Cost
Drivers. It is important because it provides a
methodology used by individual organizations to
construct their own models that are tuned to their
particular environment.
Function Points (Albrecht and Gaffney, 1983).
This is a functionality-based measure of the
program. The Functional User Requirements of
the software are identified and the total number
of function points depending on each one is
categorized into one of these five types: outputs,
inquiries, inputs, internal files and external
interfaces. Once the function is identified and
Project Estimation with NDT
121