Review On Algorithmic and Non Algorithmic Software Cost Estimation Techniques
Review On Algorithmic and Non Algorithmic Software Cost Estimation Techniques
Volume 3 Issue 5, August 2019 Available Online: www.ijtsrd.com e-ISSN: 2456 – 6470
@ IJTSRD | Unique Paper ID – IJTSRD26511 | Volume – 3 | Issue – 5 | July - August 2019 Page 890
International Journal of Trend in Scientific Research and Development (IJTSRD) @ www.ijtsrd.com eISSN: 2456-6470
The conditions of the software projects are not stable and problems, where decision making is very difficult and
the state is continuously changing so several methods should conditions are vague, fuzzy systems are an efficient tool in
be presented for estimation that each method is appropriate such situations. Fuzzy technique always supports the facts
for a special project[9]. that may be ignored. Following four stages in the fuzzy
approach:
3. ESTIMATION TECHNIQUES Stage 1: produce trapezoidal numbers for the linguistic
Generally, there are many methods for software cost terms.
estimation, which are divided into four categories: Stage 2: develop the complexity matrix by producing a new
Algorithmic, Non-Algorithmic, Parametric and Machine linguistic term.
learning Models. All categories are required for performing Stage 3: determine the productivity rate and the attempt for
an accurate estimation. If the requirements are known the new linguistic terms.
better, their performance will be better. In this section Stage 4: determine the effort required to complete a task and
overview of four estimation models are discussed. to compare the existing method. For example in [3] COCOMO
A. Algorithmic Models These models work based on the technique has been implemented by using the fuzzy method.
special algorithm. These model usually need data at first
and make result by using the mathematical relation. Fig (2) displays all following mentioned steps.
Nowadays, many software estimation methods use these Step (1) fuzzification has been done by scale factors, cost
models. Algorithm models are classified into some drivers and size.
different models. Each algorithmic model uses an Step (2) principals of COCOMO are considered.
equation to do the estimation: Effort=f(x1,x2,……….,xn) Step (3) defuzzification is accomplished to find the effort [6].
where (x1……xn) is the vector of the cost factor. The
differences among the existing algorithmic methods are 4. The parametric-estimating method is a mathematical
related to choosing the cost factor and function. representation of cost estimating relationships that provide
a logical and predictable correlation between the cost as a
B. Non-Algorithmic Model Contrary to the Algorithmic dependent variable and the cost estimating factors as the
methods, methods of this group are based on analytical independent variables associated with the project being
comparisons and inferences. For using the Non estimated (Duverlie and Clastelain, 1999; Dysert, 2003;
Algorithmic methods some information about the International Society of Parametric Analysis [ISPA], 2008).
previous projects which are similar to the Parametric models are developed by applying regression
underestimate project is required and usually analysis to historical project data (obtained from past
estimation process in these methods is done according projects).
to the analysis of the previous datasets. Here, three
methods have been selected for accessing because these 4. ALGORITHMIC METHODS
methods are more popular than the other None These methods are designed to provide some mathematical
Algorithmic methods and many papers about their uses equations to perform software cost estimation. These
have been published in recent years. mathematical equations are based on research and historical
data and use some inputs for example Source Lines of Code,
C. MACHINE LEARNING METHODS Most techniques about a number of functions to perform, and some cost drivers like
cost estimation use statistical methods, which are not as language, design methodology, skill-levels, risk
able to present reason and strong results. This approach assessments, etc. Algorithmic methods developed many
could be appropriate because they can increase the models such as COCOMO models, Putnam model, and
accuracy of estimation by training rules of estimation function points based models [3].
and repeating the run cycles. It is categorized into two
main methods, neural networks and fuzzy methods A. COCOMO Model
which are : One very widely used algorithmic cost estimation model is
the Constructive Cost Model (COCOMO) which was proposed
Neural networks include several layers which each layer is by Boehm [4]. The basic COCOMO model has a simple form:
composed of several elements called neuron. Neurons, by MAN-MONTHS = K1* (KDLOC) K2 Where K1 and K2 are two
investigating the weights defined for inputs, produce the parameters which are dependent on the application and
outputs. Outputs will be the actual effort, which is the main development environment. Estimates from the basic
goal of estimation. Backpropagation neural network is the COCOMO model can be made more accurate by taking into
best selection for software estimation problem because it account other factors concerning the required
adjusts the weights by comparing the network outputs and characteristics of the software to be developed, the
actual results. In addition, training is done effectively. qualification and experience of the development team, and
Majority of researches on using the neural networks for the software development environment. The complexity of
software cost estimation are focused on modeling the the software has the following factor:
Cocomo method, for example in [5] a neural network has Reliability
been proposed for estimation of software cost according to Database size
the following figure. Figure (1) shows the layers, inputs and Required efficiency for memory and execution time
the transfer function of the mentioned neural network. Scale The capability of an analyst and programmer
Factors(SF) and effort multipliers(EM) are an input of the Team experience in the application area
neural network, pi and qj are respectively the weight of SFs Experience of the team in the programming language
and EMs.[6] and computer
Use of software engineering and tools
Fuzzy Method The systems, which work based on the fuzzy
logic try to simulate human behavior and reasoning. In many
@ IJTSRD | Unique Paper ID – IJTSRD26511 | Volume – 3 | Issue – 5 | July - August 2019 Page 891
International Journal of Trend in Scientific Research and Development (IJTSRD) @ www.ijtsrd.com eISSN: 2456-6470
Cost models generally use some cost indicator for estimation the software equation: Technical constant C= size * B1/3 *
and notice to all specification artifacts and activities. T4/3 Total PM B=1/T4 *(size/C)3 T = Required
COCOMO 81(constructive cost model) proposed by Barry Development Time in years Size = estimated in LOC Where: C
Bohem is the most popular method which categorized in = parameter dependent on the development environment
algorithmic methods. This method uses some equations and and is determined on the basis of historical data of the past
parameters, which have been derived from previous projects. Rating for C=2,000 is poor C=8000 is good
experiences about software projects for estimation. There C=12,000 is excellent. This model is very sensitive to the
are three forms of the constructive cost model: 1. Basic development time, decreasing the development time can
COCOMO which gives an initial rough estimate of man- greatly increase the person-months needed for development
months and development time. 2. Intermediate COCOMO [6][12]. One significant problem with this model is that it is
which gives a more detailed estimate for small to medium based on knowing, or being able to estimate accurately, the
size projects. 3. Complete COCOMO which gives a more size of the software to be developed. There is often great
detailed estimate for large projects. uncertainty in the software size. It may result in the
inaccuracy of estimation.
There are three modes of development.
1. Organic mode C. Function Point Analysis
* Relatively small simple software projects. The Function Point Analysis is a method of quantifying the
* Small team with good application experience work to a set size and complexity of a software system in terms of the
of less than rigid requirements. functions that the systems deliver to the user. A number of
Similar to previously developed projects. proprietary models for cost estimation have adapted to this
* Relatively small and require little innovation. type of approach, like as ESTIMACS and SPQR/20. This is a
2. Semi-Detached mode measurement which is based on the functionality of the
* Intermediate(in size and complexity) software projects in program. It was first introduced by Albrecht [1]. The total
which team with mixed experience level must meet a mix of number of FP depends on the counts of distinct in terms of
rigid and less than rigid requirements. format or processing logic types. Following two steps in
3. An embedded mode Software project that must be counting function points:
developed within a set of tight hardware software and
operational constraints. Counting to the user functions: The raw function counts
are arrived at by considering a linear combination of five
BASIC COCOMO basic software components. These components are external
Basic COCMO is an empirical estimation for estimating effort, inputs, external outputs, external inquiries, logic internal
cost, and schedule for software projects. It was derived from files, and external interfaces, each at one of three complexity
the large data set from 63 software projects ranging in size levels: simple, average or complex. The sum of these
from 200 to 100000 lines of code, and programming numbers, weighted according to the complexity level, is the
languages ranging from assembly to PL/I. This data was number of FC.
analyzed to discover a set of formula that was the best fit to
the observation these formula link the size of the system. In Adjusting for environmental processing complexity: The
COCOMO 81 effort is be calculated as PM= a*Size^6ΠEmi i=1 final function points are arrived at by multiplying function
to 15 Where a & b are the domain constant in the model. It count by an adjustment factor that is determined by
contains 15 effort multipliers. This estimation scheme considering 14 aspects of processing complexity. This
accounts the experience and data of the past projects which is adjustment factor allows the function count to be modified
extremely complex to understand and apply the same. by at most 35% or -35%.
@ IJTSRD | Unique Paper ID – IJTSRD26511 | Volume – 3 | Issue – 5 | July - August 2019 Page 892
International Journal of Trend in Scientific Research and Development (IJTSRD) @ www.ijtsrd.com eISSN: 2456-6470
5. NON ALGORITHMIC METHODS considered as 1. Choosing analogy 2. Investigating
Non Algorithmic methods use some information about the similarities and differences 3. Examining of analogy quality.
previous projects which are similar to the underestimate 4. providing the estimation.
project is required and usually cost estimation process in
these methods is done according to the analysis of the B. Parkinson’s Law
previous datasets. Using Parkinson‟s Law “Work expands to fill the available
volume”[8], the cost is determined by the available resources
A. Expert Judgment Method Expert judgment techniques rather than based on an objective assessment., If the
involve consulting with cost estimation expert or a group of software has to be delivered in 20 months and 4 people are
the estimation experts to use their experience and available, the effort is estimated to be 80 PM. Although it
understanding of the proposed project to arrive at an sometimes gives a good estimation, this method is not
estimate of its cost. It is the most used methods for cost recommended as it may provide very unrealistic estimates.
estimation. Most companies used expert judgment method Parkinson‟s Law does not promote good software
for generating the cost of the product [4] [12]. This method engineering practice [2]. E. Price-to-win The cost is
using the following estimating steps: a. Project leader estimated to be the best price to win the project. The cost
presents each expert with a specification and an estimation estimation is based on the customer's budget instead of the
form. b. The experts fill out forms anonymously. c. Project software functionality. For example, if a reasonable
leader calls a group meeting in which the experts discuss estimation for a project costs 100 PM but the customer can
cost estimation issues with the project leader and each other. only effort 60 PM. It is common that the estimator is asked to
d. Project leader prepares and distributes a summary of the modify the estimation to fit 60 PM effort in order to win the
cost estimation on an iteration form. e. Again experts fill out project. This is again not a good practice since it is very likely
forms, anonymously. f. Steps d and step e are iterated for as to cause a bad delay of delivery or force the estimation team
many rounds as appropriate. to work overtime[10][2].
@ IJTSRD | Unique Paper ID – IJTSRD26511 | Volume – 3 | Issue – 5 | July - August 2019 Page 893
International Journal of Trend in Scientific Research and Development (IJTSRD) @ www.ijtsrd.com eISSN: 2456-6470
projects parts if the similarities of them can be got since it is advantage of both the rigor of models and the speed of
fast and under this circumstance, reliable. For large, lesser- expert judgment method or analogy. Because the advantages
known projects, it is better to use algorithmic methods. In and disadvantages of each technique are complementary, a
this case, many researchers recommend the estimation combination will reduce the weakness of anyone technique,
models that do not require a source line of code as an input. augment their individual strengths and help to cross-check
If we approach cost estimation by parts, we may use expert one technique against another.
judgment for some known parts. In this way, we can take
Table1. The Strength of Algorithm and Non-Algorithmic Software Cost Estimation Techniques
Sr. No Method Type Strength
1 COCOMO Algorithmic Clear results, it’s very common
2 LOC Algorithmic Very easy in implementation to estimate the size of the software
3 Putnam model Algorithmic A Probabilistic model, it‟s used in a very large project
Seer-Sem
4 Algorithmic Used in very large projects
model
It‟s the best method of prediction using a linear regression
5 Linear model Algorithmic
technique
Works based on actual experience and especial expert is not
6 Analogy Non-Algorithmic
important
Expert
7 Non-Algorithmic Fast prediction, adapt for special projects
judgment
8 Parkinson Non-Algorithmic Correlates with some experience
9 Price to win Non-Algorithmic It‟s often gets the contract
Requires minimal project detail, usually faster and easier to
10 Top-down Non-Algorithmic
implement and system-level focus
More detailed basis, more stable and encourage individual
11 Bottom-down Non-Algorithmic
commitment
Table2. The Weakness of Algorithm and Non-Algorithmic Software Cost Estimation Techniques
Sr. No Method Type Weakness
1 COCOMO Algorithmic A lot of data is required, It is not suitable for any project
Prediction of the line is tough in the early stages, not good for a
3 LOC Algorithmic
very large project and language-dependent.
4 Putnam model Algorithmic For only use large projects
it‟s required 50 input parameters which are increases the
Seer-Sem model Algorithmic
5 complexity and uncertainty
Little difference between actual and predicted results and error
6 Linear model Algorithmic
is also needed to calculate.
Much information about past projects is required in some
7 Analogy Non-Algorithmic
situations there are no similar project
8 Expert judgment Non-Algorithmic Success depends on expert, usually is done incomplete
9 Parkinson Non-Algorithmic Reinforces poor practice
10 Price to win Non-Algorithmic Generally produces large overruns
11 Top-down Non-Algorithmic Less detailed basis and less stable
May overlook system-level costs, requires more effort, a lot of
12 Bottom -down Non-Algorithmic
time-consuming
@ IJTSRD | Unique Paper ID – IJTSRD26511 | Volume – 3 | Issue – 5 | July - August 2019 Page 894
International Journal of Trend in Scientific Research and Development (IJTSRD) @ www.ijtsrd.com eISSN: 2456-6470
works in this area. The future work is to study the new Education Technology and Computer (ICETC), 2nd
software cost estimation technique that can help us to easily International Conference on, 2010.
understand the software cost estimation process.
[7] Li, J,J. Lin, et al. “ Development of the Decision Support
System for Software Project cost Estimation
References
Information Science and Engineering “. 2008. ISIS ’08.
[1] Leungh, Zhangf,‗”Software cost estimation” in
International Symposium on, 2008.
Handbook of software engineering and knowledge
engineering„ (World Scientific Pub. Co, River Edge, NJ, [8] G.N. Parkinson” Parkinson„s Law and Other Studies in
2001) Administration” Houghton-Mifflin, Boston, 1957.
[2] Sweta Kumari and Shashank Pushkar,” Performance [9] Galorath, D. D., & Evans, M. W. “ Software sizing,
Analysis of the Software Cost Estimation Methods”, estimation, and risk management: When performance
International Journal of Advanced Computer Science is measured performance improves”. Boca Raton, FL:
and Applications, Vol. 3, 2013. Auerbach,2006.
[3] Oscar Marbán, Antonio de Amescua, Juan J. Cuadrado, [10] Maged A. Yahya, Rodina Ahmad, Sai Peck Lee, “ Effects
Luis García “A cost model to estimate the effort of data of Software Process Maturity on COCOMO II’s Effort
mining projects”, Universidad Carlos III de Madri Estimation from CMMI perspective”, 978-1-4244-2379-
(UC3M), Volume33, Issue 1, pp.133-150, March, 2008 . 8/08 IEEE (c),2008
[4] B. W. Boehm”, Software Engineering Economics” [11] Leungh, Zhangf,‗” Software cost estimation” in
Prentice-Hall, Englewood Cliffs, NJ, USA, 1981. Handbook of software engineering and knowledge
engineering„ (World Scientific Pub. Co, River Edge, NJ,
[5] Attarzadeh, I. Siew Hock Ow, “Proposing a New
2001)
Software Cost Estimation Model Based on Artificial
Neural Networks”, IEEE International Conference on [12] Yahya, M. A., R. Ahmad et al. “ Effects of software
Computer Engineering and Technology (ICCET), process maturity on COCOMO II’s effort
Volume: 3, Page(s): V3-487 - V3-491 2010. estimation from CMMI perspective “. Research
Innovation and vision for the future, RIVF. IEEE
[6] Sikka, G., A. Kaur, et al. “ Estimating function points:
International Conference on, 2008.
Using machine learning and regression models”.
@ IJTSRD | Unique Paper ID – IJTSRD26511 | Volume – 3 | Issue – 5 | July - August 2019 Page 895