Estimation of Project Metrics
Estimation of Project Metrics
Project size: What would be the size of the code written say, in number of lines, files,
modules?
Cost: How much would it cost to develop a software? A software may be just pieces of code,
but one has to pay to the managers, developers, and other project personnel.
Duration: How long would it be before the software is delivered to the clients?
Effort: How much effort from the team members would be required to create the software?
In this experiment we will focus on two methods for estimating project metrics: COCOMO
and Halstead's method.
COCOMO
COCOMO (Constructive Cost Model) was proposed by Boehm. According to him, there could
be three categories of software projects: organic, semidetached, and embedded. The
classification is done considering the characteristics of the software, the development team
and environment. These product classes typically correspond to application, utility and
system programs, respectively. Data processing programs could be considered as
application programs. Compilers, linkers, are examples of utility programs. Operating
systems, real-time system programs are examples of system programs. One could easily
apprehend that it would take much more time and effort to develop an OS than an
attendance management system.
The concept of organic, semidetached, and embedded systems are described below.
KDSI is the estimated size of the software expressed in Kilo Delivered Source Instructions
a, b, c are constants determined by the category of software project
Effort denotes the total effort required for the software development, expressed in person
months (PMs)
Tdev denotes the estimated time required to develop the software (expressed in months)
The value of the constants a, b, c are given below:
Intermediate COCOMO Model
The basic COCOMO model considers that effort and development time depends only on the
size of the software. However, in real life there are many other project parameters that
influence the development process. The intermediate COCOMO take those other factors
into consideration by defining a set of 15 cost drivers (multipliers) as shown in the table
below [i]. Thus, any project that makes use of modern programming practices would have
lower estimates in terms of effort and cost. Each of the 15 such attributes can be rated on a
six-point scale ranging from "very low" to "extra high" in their relative order of importance.
Each attribute has an effort multiplier fixed as per the rating. The product of effort
multipliers of all the 15 attributes gives the Effort Adjustment Factor (EAF).
To illustrate this, consider a very popular distributed application: the ticket booking system
of the Indian Railways. There are computerized ticket counters in most of the railway
stations of our country. Tickets can be booked / cancelled from any such counter.
Reservations for future tickets, cancellation of reserved tickets could also be performed. On
a high level, the ticket booking system has three main components:
Database
Graphical User Interface (GUI)
Networking facilities
Among these, development of the GUI is considered as an organic project type; the
database module could be considered as a semi-detached software. The networking module
can be considered as an embedded software. To obtain a realistic cost, one should estimate
the costs for each component separately, and then add it up.