Software Cost Estimation for Python
Projects Using Genetic Algorithm
Amrita Sharma and Neha Chaudhary
Abstract Software cost estimation is a process of planning, risk analysis, and deci-
sion making for project management in software development. Cost of project devel-
opment encompasses a software project’s effort and development time. One popular
model of software cost estimation is constructive cost model (COCOMO) model,
which is a mathematical model proposed by Boehm, used for estimate the software
effort and development time. The objective of this paper is to improve the basic
COCOMO model’s coefficients for modern programming languages like Python, R,
C++, etc. Many techniques were presented in the past for effort and time estimation
using machine learning. But all these techniques were trained and tested for older
programming languages. In order to improve the accuracy of COCOMO for mod-
ern programming languages, six Python projects have been considered and genetic
algorithm (GA) is applied in these projects to define new values for basic COCOMO
coefficients and the development time is calculated for Python projects. The time
estimated using GA coefficients is compared with the original COCOMO and actual
time. Using mean magnitude relative error, the error from the original COCOMO
time is 54.49% and error from GA time is 21.23%.
Keywords Genetic algorithm · Software cost estimation · Development time ·
Python project dataset · Modern programming languages
The original version of this chapter was revised: The incorrect affiliation of authors “Dr. Neha
Chaudhary” and “Amrita Sharma” has now been replaced with the correct one. The correction to
this chapter is available at https://doi.org/10.1007/978-981-15-3325-9_40
A. Sharma (B ) · N. Chaudhary
Department of Computer Science and Engineering, Manipal University Jaipur, Jaipur, Rajasthan,
India
e-mail: amritasharma9468@gmail.com
N. Chaudhary
e-mail: neha.chaudhary@jaipur.manipal.edu
© Springer Nature Singapore Pte Ltd. 2020, corrected publication 2020
J. C. Bansal et al. (eds.), Communication and Intelligent Systems, Lecture Notes
in Networks and Systems 120, https://doi.org/10.1007/978-981-15-3325-9_11
137