The Application of Meta-Heuristic Algorithms to Improve the Performance of Software Development Effort Estimation Models

The Application of Meta-Heuristic Algorithms to Improve the Performance of Software Development Effort Estimation Models

Maryam Hassani Saadi (Department of Computer Engineering, Kerman Branch, Islamic Azad University, Kerman, Iran), Vahid Khatibi Bardsiri (Department of Computer Science, Islamic Azad University, Kerman, Iran) and Fahimeh Ziaaddini (Department of Computer Engineering, Islamic Azad University, Kerman, Iran)
DOI: 10.4018/978-1-5225-1759-7.ch062
OnDemand PDF Download:
No Current Special Offers


One of the major activities in effective and efficient production of software projects is the precise estimation of software development effort. Estimation of the effort in primary steps of software development is one of the most important challenges in managing software projects. Some reasons for these challenges such as: discordant software projects, the complexity of the manufacturing process, special role of human and high level of obscure and unusual features of software projects can be noted. Predicting the necessary efforts to develop software using meta-heuristic optimization algorithms has made significant progressions in this field. These algorithms have the potent to be used in estimation of the effort of the software. The necessity to increase estimation precision urged the authors to survey the efficiency of some meta-heuristic optimization algorithms and their effects on the software projects. To do so, in this paper, they investigated the effect of combining various optimization algorithms such as genetic algorithm, particle swarm optimization algorithm and ant colony algorithm on different models such as COCOMO, estimation based on analogy, machine learning methods and standard estimation models. These models have employed various data sets to evaluate the results such as COCOMO, Desharnais, NASA, Kemerer, CF, DPS, ISBSG and Koten & Gary. The results of this survey can be used by researchers as a primary reference.
Chapter Preview

1. Introduction

Software cost estimation is one of the main activities in project planning and plays an important role in decision making processes such as effective software development and risk decline. The purpose of estimation is not only limited to precision. It also includes cost control and project scope in organizational view (Choudhary, 2010). Software cost estimation carries high degrees of uncertainty and causes low or high estimations (Lin, 2013; Kumar, 2013). Cost and time overruns happen frequently in software development activities and this overrun often forces managers to decrease development costs in favor of software quality (Wen, 2009). This may lead to lack of budgets and human resources, delay in planning, low software quality and eventually project failure. High levels of vague and unusual software project features are the main obstacle in estimation of software effort projects (Bardsiri, 2013). Software cost estimation may be simple in terms of concept but it is in fact a sophisticated and difficult problem (Vishali, 2014). Time and cost are the two vital parameters of software effort estimation for two reasons: firstly, dynamic and fast developments of hardware have made developers present adaptable software in a specific timetable in order to fill the gap between software and hardware developments. Secondly, constant costumer demands’ changes make developers develop software according to the budgets and time in response to customer demands (Bardsiri, 2013). Software projects, despite other projects that are dependent on physical work, are based on analytical and logical work. As long as we haven’t begun working with a software project, we cannot measure its sophistications and we are facing a subtle product which is hard to validate (Bardsiri, 2013). It can be stated that developers and project managers are facing various problems in estimating precisely. Precise estimation of software effort in the primary stages of software development process is not only a firm basis for project’s success, but also useful in business decision making of software companies (Wen, 2009). A project manager must estimate the required time and resources of the work force activities optimally, define the delicate success factors and project development control processes to prevent project failure and apply the required restrictions for the development of software projects. Wrong presuppositions about the resources of software projects lead to unfavorable results and correcting those claims a lot of costs. Using project history has contributed a lot to the success of software projects and has made the estimation more reliable (Gharehchopogh, 2014). Researchers and software projects staff have presented a lot of techniques for effort estimation through the past thirty years. In spite of this, precise estimation is yet the main problem in software engineering. Initial models of estimation were based on regression analysis or mathematical derivations. The most commonly used method is COCOMO. Today’s models are based on neural network simulation, Genetic Algorithm, soft calculations and fuzzy logic modeling (Vishali, 2014; Choudhary, 2010). Low precision and unreliable structure of algorithmic models have caused high risks in software projects. As a result, annual estimation of costs and comparing them with other techniques seems necessary. Meta-heuristic algorithms have recently been developed in software and cost estimations. Meta-heuristic algorithms, like Genetic Algorithm and Ant Colony algorithm solve the problems according to optimization and are efficient in optimizing algorithmic models and software cost estimation (Maleki, 2014). This paper serves the following issues as it proceeds: in section (2), optimization algorithms’ application in software cost estimation is explained. In section (3), performance measures are explained and in section (4), the results are brought. In section (5), discussions and in section (6), conclusions are given.

Complete Chapter List

Search this Book: