Using Evolutionary Based Approaches to Estimate Software Development Effort

Using Evolutionary Based Approaches to Estimate Software Development Effort

Filomena Ferrucci (University of Salerno, Italy), Carmine Gravino (University of Salerno, Italy), Rocco Oliveto (University of Salerno, Italy) and Federica Sarro (University of Salerno, Italy)
DOI: 10.4018/978-1-61520-809-8.ch002
OnDemand PDF Download:
$37.50

Abstract

Software development effort estimation is a critical activity for the competitiveness of a software company; it is crucial for planning and monitoring project development and for delivering the product on time and within budget. In the last years, some attempts have been made to apply search-based approaches to estimate software development effort. In particular, some genetic algorithms have been defined and some empirical studies have been performed with the aim of assessing the effectiveness of the proposed approaches for estimating software development effort. The results reported in those studies seem to be promising. The objective of this chapter is to present a state of the art in the field by reporting on the most significant empirical studies undertaken so far. Furthermore, some suggestions for future research directions are also provided.
Chapter Preview
Top

Introduction

Several factors characterise the costs of the software development (such as general costs, hardware, human resources, etc.). Nevertheless, it is widely recognised that the main factor is the “effort”, meant as the amount of time spent to complete the project, expressed in terms of person-hours or man-months. So, the competitiveness of a software company heavily depends on the ability of its project managers to accurately predict in advance the effort required to develop software systems. Indeed, significant over or under-estimates can be very expensive for a company. Moreover, effort estimation is a critical basic activity for planning and monitoring software project development and for delivering the product on time and within budget.

Several methods have been proposed in order to estimate software development effort. Many of them determine the prediction exploiting some relevant factors of the software project, named cost drivers. These methods, named data-driven, exploit data from past projects, consisting of both factor values that are related to effort and the actual effort to develop the projects, in order to estimate the effort for a new project under development (Briand, Emam, Surmann, Wiekzorek, and Maxwell, 1999; Briand, Langley, and Wiekzorek, 2000; Shepperd and Schofield, 2000). In this class, we can find some widely used techniques, such as Linear and Stepwise Regression, Classification and Regression Tree, and Case-Based Reasoning (Briand and Wieczorek, 2002).

In the last years, some attempts have been made to apply search-based approaches to estimate software development effort. In particular, genetic algorithms (Goldberg, 1989) have been defined and assessed by some empirical studies (Burgess and Lefley, 2001; Chiu and Huang, 2007; Conte, Dunsmore, and Shen, 1986; Dolado, 2000; Lefley and Shepperd, 2003; Shan, Mckay, Lokan, and Essam, 2002; Shukla, 2000). The results reported in those studies seem to be promising.

Goal of the Chapter

The objective of this chapter is to report on the most significant empirical studies undertaken so far with the aim of assessing the effectiveness of search-based approaches for estimating software development effort. Furthermore, we provide some suggestions for future research directions.

Organization of the chapter

The rest of the chapter is organised as follows. Section 2 introduces the problem of estimating development effort and briefly presents the widely employed estimation techniques as well as the validation methods and evaluation criteria used to assess an estimation technique. Section 3 provides a description of evolutionary based approaches for estimating development effort and reports on case studies performed to assess their effectiveness. Future research directions are instead described in Section 4.

Top

Background: Estimating Software Development Effort

The prediction of software development effort plays a crucial role for the competitiveness of a software company and it is very important not only for the company that produces the software but also for its customers. Several benefits can be derived from an accurate estimate of software project development effort. Among them (Briand and Wieczorek, 2002):

  • The possibility of defining the appropriate software costs, thus obtaining the contracts for the development of the software projects;

  • The possibility of suitably planning/monitoring the project and allocate resources adequately, thus ensuring time to market and adequate software quality.

Complete Chapter List

Search this Book:
Reset