
 
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