# Software Project Management

<<< Previous Estimation – Tools Next >>>

Software Project Management (CS615)
LECTURE # 31
6. ESTIMATION
6.5
Estimation ­ Tools
iii.
Measuring effort for a project
c) Constructive Cost Model (COCOMO)
The COCOMO technique is another popular estimation technique. Dr: Barry
Boehm propounded this technique in 1981. COCOMO uses cost driver attributes
to calculate the effort and duration of a project. The COCOMO technique has
three levels of implementation. With each level, the complexity of the model
increases. The levels of the COCOMO technique are:
i.
Basic
ii.
Intermediate
iii.
i.
Basic COCOMO
The basic COCOMO technique estimates the effort and cost of a software project
by using only the lines of code. You, use basic COCOMO when you need a rough
estimate of effort, such as during maintenance projects. This is because in such
projects, a majority of the work is already completed. Estimating the effort in the
basic COCOMO technique involves three steps.
1. Estimating the total delivered lines of code
2. Determining the effort constants based on the type of the project
3. Substituting values for lines of code and effort constant in a formula
You have already seen how the total delivered lines of code are estimated. The
next step in the COCOMO model is to determine the type of the project being
developed. The basic COCOMO technique considers three types of projects to
calculate effort.
­ Organic
­ Embedded
­ Semidetached
Organic projects have sufficient and defined objectives. The organizations that
undertake organic projects have ample experience in development and use small
development teams. These are simple business and financial applications; such as
a banking system and inventory system.
233
Software Project Management (CS615)
Embedded projects have stringent and specialized hardware, software, and human
resources requirements. Organizations usually have less experience in developing
such projects. Examples of such projects include real-time operating systems
(RTOS), industrial automation systems, and sophisticated space and aviation
systems.
Semidetached projects are a combination of the preceding two types of software
projects. A new operating system and a database management system (DBMS)
are examples of such projects.
The last step in calculating effort by using the COCOMO technique is to
substitute the values of lines of code and effort constants in the following
formula:
Ej = a1 * (KLOC)a2
In the formula, Ei is the effort for a project. The effort constants, al and a2
depend on the type of project being developed.
ii.
Intermediate COCOMO
Calculation of effort by using the intermediate COCOMO technique involves an
adjustment factor is calculated by assigning ratings to 15 cost driver attributes.
These cost driver attributes relate to the various aspects of a software project, such
as project, product, personnel, and computer attributes. Using the intermediate
COCOMO technique, you can accurately estimate effort and cost required for a
project. Accurate estimates are very helpful to start new development projects.
Calculating the effort by using the intermediate COCOMO technique is a three-
step process:
1. Estimate the initial development effort by using SLOC. To do this, you use
the following formula:
Ei = a1 * (KLOC)a2
In the formula the initial development effort, KLOC refers to 1,000 lines of code.
The constant values a1 and a2 differ with every project.
2. The second step is to determine the relevant cost driver attributes that affect
your project intensively. This provides you with the value for EAF.
234
Software Project Management (CS615)
Table 1 summarizes 15 commonly used projects, personnel, and product-related
cost driver attributes. The values for each cost driver under each rating are filled
in by an organization based on past experience.
Table 1: Cost Driver Attributes
Rating
Cost Drivers
Very
Extremely
Negligible Low Average High
high
critical
Analyst Capability (ACAP)
Programmer Capability (PCAP)
Programming Language
Experience (LEXP)
Virtual Machine
Experience(VEXP)
Required Software Reliability
(RELY)
Database Size (DATA)
Software Product Complexity
(CPLX)
Execution Time Constraint
(TIME)
Main Storage Constraint
(STOR)
Computer Turnaround Time
(TURN)
Virtual Machine Volatility
(VIRT)
Use of Software Tools (TOOL)
Modern Programming Practices
(MODP)
Required Development
Schedule (SCED)
3. Finally, you calculate the actual effort by multiplying the weighted cost driver
attributes with the initial effort estimate. Typically, the val1,les that rate each
cost driver attribute range from 0.9 through 1.4. For example, if software
reliability (RELY) is of prime importance according to the requirements
specifications, it is provided a rating of high or a value of 1.4. Similarly, if the
time to execute a software program is of negligible importance, you assign a
rating of low or a value of 0.9. For software attributes that are of mediocre
importance, you can assign a value between 0.9 and 1.4.
235
Software Project Management (CS615)
Usually, in organizations, the average rating is assigned a static value of 1.0. To
calculate the estimated effort using the intermediate COCOMO technique, you
use the formula:
E = EAF * Ei
Consider an example for using the intermediate COCOMO technique to calculate
the estimated total effort of a project life cycle. In a customized insurance project,
there are four modules. The total effort estimate of the modules is 3.0 KLOC. The
management has identified four cost driver attributes with the respective
multiplying factors that might affect the project most. In this situation, the values
of al and a2 are 3.2 and 1.05, respectively, because the insurance project is an
organic project. Therefore, you apply the following formula to calculate the initial
effort estimate.
Ei = a1 (KLOC)a2
Ei =3.2 * 31.05
Ei = 3.2 * 3.16
Ei = 10.11
The values assigned to the cost driver attributes that are applicable to a particular
software application are displayed in Table 2. According to the table, the time to
execute a software program is of high importance. Therefore, the attribute TIME
is assigned a value of 1.35. In contrast, the software application does not require a
very high analyst involvement. Therefore, the value assigned to ACAP is very
low or 0.95. Using the same logic, the values for other cost driver attributes are
assigned.
Table 2: Applicable Cost Driver Attributes
Applicable cost driver attributes
Rating
Multiplying factors
CPLX
High
1.2
TIME
Very high
1.35
ACAP
Low
.95
MODP
Average
1.00
Referring to Table 7.9, EAP can be calculated as,
EAF = 1.2 * 1.35 * 0.95 * 1.0 EAF = 1.53
After obtaining the values for the variables Ei and EAF, you can substitute these
values in the formula to calculate the total effort.
E = EAF * Ei
E = 1.53 * 10.11
236
Software Project Management (CS615)
E = 15.5 person months
iii.
The advanced COCOl\l10 technique uses the steps of the intermediate COCOMO
technique. In addition, it uses costs driver attributes assigned to each phase of the
SDLC such as analysis and design.
·
Applicability of COCOMO
COCOMO is flexible and capable of using SLOC, FP, and even object points.
Object points are measurable code sections in an object-oriented programming
language, such as C++, Ada, and Java.
You can use COCOMO when the size of a project is extensive and the
requirements of the project are vague. In contrast, SLOC and FP can be used for
projects where either the requirements are more or less known or developers
possess the relevant experience in developing projects.
COCOMO is suitable for complex and sophisticated projects that are expected to
operate within intensive hardware, software, and personnel constraints.
Generally, you can use COCOMO when the software development environment
is new to an organization. In addition, you can use COCOMO when you do not
have baseline data about past projects. However, you need complete data about
your current project to assign weight age to each cost driver attribute. You can use
FP or SLOC techniques when you have enough past project data to assign
accurate weight age to the 14 GSC s and the various information domain value
elements.
d) Delphi Technique
The Delphi technique is a Human-based estimation technique. Human-based
estimation techniques use human experience and analytical skills to estimate the
size, productivity, and effort required for a project. This is a trusted technique and
is widely used in many established organizations to facilitate practical and
reasonable estimation.
The rationale of using the Delphi technique is that when many experts
independently arrive at the same estimate on the basis of similar assumptions, the
estimate is likely to be correct.
The Delphi technique has eight basic steps:
1. Identify the terms that need to perform the estimation activity. In an estimation
activity meeting, three distinct groups of people need to be present.
237
Software Project Management (CS615)
·
Estimation experts: They usually consist of groups of five or six experienced
project managers. The estimation values provided by the project managers are
based on past project history and their knowledge. However, only those
project managers should b~ invited for estimation whose experience of a past
project matches that of the current project. Otherwise, estimation values may
turn out to be far from realistic.
·
Estimation coordinator: An estimation coordinator is very similar to a
moderator in a usual meeting. The coordinator facilitates the meeting and
ensures that the goals of the meeting are fully achieved.
·
Author: An author is similar to a recorder of minutes in a meeting.
2. The author presents the project details including clients' needs and system
requirements to the group of experts. The author also describes the expectations
from the group. The author and experts jointly identify the tasks that need to be
estimated. They also identify the valid assumptions that they need to consider
while estimating. For example, while estimating the effort needed to create a
high-level design, they can assume that the SRS document is approved by the
client.
3. The author and experts arrive at a consensus that any estimation with a specific
variance value will not be accepted. For example, they may decide that any
variance above 25 percent will not be accepted as an estimation value for
computing the project effort or the productivity.
4. The coordinator prepares a list of tasks jointly decided by the team and
distributes the list to all experts. These tasks comprise a project plan.
5. The experts independently make their estimates for each task. After recording
their estimates, they hand over their estimates to the coordinator. This is a critical
step. While making estimates, no discussions or consultations are permitted
because a mutual discussion may influence the estimation logic of the fellow
experts. The coordinator and the author jointly ensure this.
6. The coordinator prepares a summary of estimates for each task in a table as
represented in Table 7.10. After calculating the percentage of variance, the
coordinator marks each task as accepted or not accepted based on the agreed
accepted value.
7. The coordinator hands over the summary to the group of experts and the author.
The group of experts and the author discuss tasks and assumptions where the
percentage of variance is more than the acceptable level. The maximum and
minimum estimates of tasks are not disclosed or discussed. For example, in Table
7.10, the group and the coordinator do not accept the high-level design task
because it exceeds the agreed variance value of 25%. Therefore, the team would
discuss this task to estimate its maximum and minimum effort afresh. To resolve
238
Software Project Management (CS615)
the high percentage of the variance value, some tasks may be broken down
further or combined. This activity of breaking down tasks into smaller levels
involves fresh estimates for those tasks at the smaller levels.
8. Revert to step 5 and repeat the steps. You do this until all tasks are assigned
estimates that have an acceptable percentage of variance value. Figure 7.4.
summarizes the steps of the Delphi technique in the form of a flowchart.
Identify the teams that will
estimate.
Present project details to the expert
group.
Finalize the acceptable variance
value.
Estimate done by the expert group
Prepare a summary of estimates