Software project management activities are mainly classified into three categories:
project planning, project monitoring and control and project termination. In
project planning, cost estimation is one of the most important activities. Software
cost estimation is the process of predicting how much amount of effort is required
to build software. The effort is measured in terms of Person-Months (PM) thus
later on it is converted into actual dollar-cost. The basic input parameters
for software cost estimation is size, measured in KDLOC (Kilo Delivered Lines
of Code). A number of models have been evolved to establish the relation between
Size and Effort (Poli et al., 2007). The parameters
of the algorithms are tuned using Regression Analysis (Sengupta,
2010) Genetic Algorithms (Sheta, 2006), Fuzzy models
(Huang et al., 2006), Soft-Computing Techniques
(Heng et al., 2006; Kaur
and Singh, 2010), Computational Intelligence Techniques, Heuristic Algorithms,
Neural Networks, Radial Basis and Regression (Idri et
al., 2006; Jorgensen and Shepperd, 2007).
COCOMO effort estimation: Boehm (1981) derived
a cost model called COCOMO (Constructive Cost Estimation Model) using data from
a large set of projects at Teen Red Week TRW Software Production System (SPS)
consulting firm based in California. The models are classified into:
||Original COCOMO Model
Original COCOMO: It is a collection of three models. A basic model that
is applied early in the project. An intermediate model which is applied after
requirements. Advanced model is applied after design is complete.
The cost model is:
S = Size is measured in KDLOC
E = Effort in terms of person months
EAF = Effort adjustment factor (Equal to 1 for basic model)
The factors a and b depend on the development mode. Boehm
(1981) has defined three development modes (Bailey and
||Organic mode (for simple projects)
||Semi-detached mode(for intermediate projects)
||Embedded mode (for tight set of requirements, large projects)
Intermediate COCOMO: The intermediate COCOMO model computes effort as
a function of program size and set of cost drivers. The intermediate COCOMO
The parameters a, b are measured by using regression analysis and shown in Table 1, where a is the amplitude and b is the exponent.
The Effort Adjustment Factor (EAF) is calculated using 15 cost drivers (Poli
et al., 2007). The cost drivers are grouped into four categories:
Product, Computer, Personal and Project. Each cost driver is rated on a six-point
ordinal scale ranging from low to high importance. Based on the rating an effort
multiple is determined using the Table 2. The product of all
effort multipliers is the EAF.
PSO with constriction factor: Another PSO (Iraj
and Saleh, 2008; Sutha and Kamaraj, 2008), implementation
dubbed PSO constriction coefficient was developed by Clerc
(1999). Clerc modeled the particle swarm interactions using a set of complicated
linear equations. Using a constriction coefficient results in particle convergence
over time. That is amplitude of particle oscillations decreases as it focuses
on the local neighborhood previous best points. Through the particle convergence
to a point over time, the constriction coefficient also prevents a collapse
if the right social conditions are in place. The particle will oscillate around
the weighted mean of Pid and Pgd, if the previous best
position and the neighborhood best position are far apart from each other the
particle will perform an exploratory search (global search).
|| Modes of projects
|| Effort multipliers
During the search the neighborhood best position and previous best position
will change and the particle will shift from local search back to global search.
The constriction coefficient method therefore balances the need for local and
global search depending on what social conditions are in place:
Clerc (1999) found that by modifying φ, the convergence
characteristics of the system can be controlled. Typically k = 1 and c1 =c 2
= 2 and φ is set to 4.1, then k = 0.73.
A FINE PARAMETER TUNING FOR COCOMO 81 SOFTWARE EFFORT ESTIMATION USING PSO
A typical cost model is derived using regression analysis on data collected
from past software projects. In this model we tuned the parameters by using
PSO with constriction factor. Effort is plotted against the primary cost factor
for a series of projects. The best fit of particles is then calculated among
the data points. If the primary cost factor were a perfect prediction of effort,
then every particle would be on the same place with derivative of velocity.
The parameters are tuned very fast by considering the constriction factor.
Model description: In this model we consider PSO with constriction factor for faster convergence of COCOMO parameters.
Input: Size of Software Projects, Measured Efforts, Effort Adjustment
Output: Optimized Parameters for Estimating Effort
The following is the methodology used to tune the parameters in the proposed
models for Software Effort Estimation:
||Initialize swarm coefficients and other parameters k = 1 and
c1 = c2 = 2, φ = 4.1 and k = 0.73
||Initialize particles velocity and position vectors randomly. Initialize
these positions and velocity are personally best (Plb)
||for i=1 to n do
Evaluate the fitness function for each particle. We consider MARE is the fitness
||Find the locally best position of each particle by comparing
the fitness value with the old value. New value is promising, then update
the locally best position (Plb)
||Find the globally best particle among all locally best particles called
globally best (Pgb)
||In order to make faster convergence we consider the constriction factor
which is evaluated with the following formula:
The particles velocity and positions are updated using Plb, Pgb
with the following formula:
where, I = a,b,c.
Step 7:Step 4 to 6 are repeated until:
If the value is < 0 satisfied then PSO with constriction model is convergent
or otherwise after some number of iterations.
||Giving Gbest solution parameters as optimal solution.
Model 1: According to COCOMO the cost estimation is a function of two
variables, one is size another one EAF (Cost Multipliers):
Now the parameters are tuned by using the above methodology.
Model 2: In order to reduce the uncertainty non linearity is existing
at input level we use Biasing Effect.
So the equation is:
The velocity and position update are as follows:
By considering the differential meta model (Zeng and Cui,
2007) for particle swarm optimization. The differential equations are:
where, W =1 and:
The standard state system of linear equation obtained:
And the equations are solved as follows:
From linear system theory if all Eigen values of matrix A have negative real
part, the above equation is convergence. The Eigen equation of matrix A listed
The roots are:
Therefore both Eigen values of matrix A have negative real part if:
In other words if:
is satisfied, it is convergent.
Finally globally best particle values are optimal tuned parameters. These parameters are used to estimate the effort of project. We have developed the above methodology for tuning parameters a, b and c in C Language. The performance measures we consider are MARE, VARE and VAF.
For the study of these models we have taken dataset from COCOMO81 (Prasad
Reddy, 2010) of 20 projects from NASA software project data are shown in
Table 3. The tuning parameters for the PSO with constriction
factor evolutionary process, to estimate the COCOMO model parameters are given
in the Table 3.
Experiment (without bias Function): The following are the results
obtained by running the above algorithm implemented in C. Totally
we consider 20 projects. Number of iterations 100, Number of particles considered
Experiment (with bias Function): The following are the results obtained
by running the above algorithm implemented in C. Totally we consider
20 projects. Number of iterations 100, Number of particles considered are 50.
RESULTS AND DISCUSSION
The COCOMO model was provided by Boehm (1981) was given
in Eq. 1. Our goal is to use PSO with constriction factor
to tune the simple COCOMO model parameters such that better software effort
estimation is achieved. It is tested on COCOMO dataset provided by Bohem. Table
4 shows the actual measured efforts of our models and we explored various
model estimate the software effort for all given projects using Halsted, Walston-Felix,
Bailey-Basili, Doty (Sheta et al., 2008), standard
COCOMO, Triangular member function and Gbell Function (Prasad
Comparison with other models: Prasad Reddy (2010)
provided a Triangular Membership function and Gbell function calculation, (Sheta
et al., 2008) provided Halsted, Walston-Felix, Bailey-Basili, Doty
formulas for effort estimation. Typical models for software effort estimation
are as shown below (Sheta et al., 2008):
The measured effort and estimated efforts of various models are given in Table 4 and shows our model results are very close to the measured effort.
|| Measured effort vs estimated efforts of various models
The three criterions are:
||Variance Accounted For (VAF):
||Mean Absolute Relative Error (MARE):
||Variance Absolute Relative Error (VARE):
Present intention concern the development of model structures which can generalize
the effort, computed for all projects under study. PSO algorithms were used
to estimate the standard COCOMO variable model parameters. Two models are provided.
It can be seen that the PSO with constriction factor for COCOMO 81 model outperform
the Halsted, Walston-Felix, Bailey-Basili, Doty, standard COCOMO, Triangular
member function and GBell Function. The computed values of MARE, VAF and VARE
for all models are given in Table 5.
|| Performance analysis
In this study we have introduced an important generalization of the COCOMO software cost estimation model by augmenting with particle swarm optimization with constriction factor. This study is based on 53 projects, among we taken 20 projects for training and testing. The analysis based on VAF, MARE and VARE shows that PSO with constriction factor always leads to a satisfactory result. The obtained results are superior as compared to previously reported work in the literature. This work can be applied to other models of Software Cost Estimation.