Spread Knowledge

CS615 - Software Project Management - Lecture Handout 31

User Rating:  / 0

Related Content: CS615 - VU Lectures, Handouts, PPT Slides, Assignments, Quizzes, Papers & Books of Software Project Management


Estimation – Tools

Measuring effort for a project

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:

  1. Basic
  2. Intermediate
  3. Advanced


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.

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:

COCOMO technique

In the formula, Ei is the effort for a project. The effort constants, al and a2 depend on the type of project being developed.

Intermediate COCOMO

Calculation of effort by using the intermediate COCOMO technique involves an additional step of calculating the effort adjustment factor (EAF). The effort 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 threestep process

Estimate the initial development effort by using SLOC. To do this, you use the following formula:

initial development effort

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.

The second step is to determine the relevant cost driver attributes that affect your project intensively. This provides you with the value for EAF.

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

Cost Drivers Rating
Negligible Low Average High Very
Analyst Capability (ACAP)            
Programmer Capability (PCAP)            
Programming Language
Experience (LEXP)
Virtual Machine
Required Software Reliability
Database Size (DATA)            
Software Product Complexity
Execution Time Constraint
Main Storage Constraint
Computer Turnaround Time
Virtual Machine Volatility
Use of Software Tools (TOOL)            
Modern Programming Practices
Required Development
Schedule (SCED)

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.

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.

calculate the initial effort estimate

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

E = 15.5 person months

Advanced COCOMO

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.

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.
    • 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 resolvethe 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.

Steps of the Delphi Technique

Steps of the Delphi Technique 1

The Delphi technique is a simple and subjective method of estimation. However, it is a very effective method because most of the estimates are tried and tested. You can use this method if the project is small or if you have the data and expertise that can enable unambiguous estimates.