Web technologies are being even more adopted for the development of public and private applications, due to the many intrinsic advantages. Due to this diffusion, estimating the effort required to develop Web applications represents an emerging issue in the field of Web engineering since it can deeply affect the competitiveness of a software company. To this aim, in the last years, several estimation techniques have been proposed. Moreover, many empirical studies have been carried out so far to assess their effectiveness in predicting Web application development effort. In the chapter, we report on and discuss the results of the most significant empirical studies undertaken in this field.
The availability of powerful server-side, Web-oriented component technologies, such as J2EE, ASP.NET, and so forth, has led to profound changes in the scenario of software systems, allowing developers to create “Web applications,” that is, highly-dynamic systems able to deliver a complex amount of functionalities, while running in a Web browser. The approach provides many advantages. In particular, it permits deployment of applications without caring of the client platform, it fully exploits the MVC architecture, and it allows different applications to easily interoperate, by using standard communication protocols and languages, such as XML. As a result, Web applications are becoming an essential support for the every-day activities of both public and private organizations. For instance, to date, most intranet applications, such as document management systems, workflow, and business organization, and B2B solutions are developed with this approach.
On the other hand, the development of these applications has introduced a set of unique features and characteristics, quite different from traditional software construction (Deshpande, 2002; Ginige & Murugesan, 2001). The main issues can be summarized as follows: the requirements are instable, their development is usually characterized by pressure time and compressed schedule; the employed technologies rapidly changes (technology instability), they are usually developed by a small team including young developers, with different backgrounds and knowledge, compared to a traditional software development team. So, a lot of research is needed to provide software engineers with tools and methodologies able to ensure a cost-effective development of this kind of systems. In particular, the traditional approaches for software cost estimation need to be adequately modified to take into account the specific characteristics of these applications. To this aim, currently, many researchers are addressing the crucial problem of estimating the effort required to develop Web applications. Indeed, development effort, meant as the work carried out by software engineers, is the dominant project cost, being also the most difficult to estimate and control, with significant effects on the overall costs. So, effort estimation is a critical activity for planning and monitoring software project development and for delivering the product on time and within budget. Significant over or under-estimates can be very expensive and deleterious for a company. Thus, it is paramount for the competitiveness of a company to be able to effectively predict in advance the effort required to develop a Web-based project (Baresi, Morasca, & Paolini, 2003; Costagliola, Di Martino, Ferrucci, Gravino, Tortora, & Vitiello, 2006a; Mendes, Counsell, & Mosley, 2003b; Reifer, 2000; Ruhe, Jeffery, & Wieczorek, 2003b), and Web effort estimation is an important topic in the field of Web engineering. In this context, special attention is devoted to identifying suitable tools and approaches and to proving by empirical studies that the proposals can be effectively and affordably used in the industrial context.
Goal of the Chapter
The objective of this chapter is to report on the most significant empirical studies undertaken so far and aimed at assessing the effectiveness of measures and techniques for estimating Web application development effort.
In the literature, a lot of different methods to estimate software development effort have been proposed. A widely accepted taxonomy of estimation methods classified them in Non-Model Based and Model Methods (Briand & Wieczorek, 2002).
While Non-Model Based Methods mainly take into account expert judgments (thus with highly subjective factors), Model Based Methods involve the application of some algorithms to a number of inputs to produce an effort estimation. The inputs for these algorithms are the factors that heavily influence the resulting development effort of a software project. Among these, Software Size is accepted as a key cost driver, since it deeply affects total development effort, and thus total project cost (Bohem et al., 2000). Consequently, being able to obtain an early size measure for a project can provide a significant estimation of the overall development cost.