0% found this document useful (0 votes)
209 views12 pages

Software Project Estimation Techniques

The document discusses software project estimation and scheduling. It describes the responsibilities of a software project manager, which include project planning, cost estimation, scheduling, risk management, and overseeing the project. It then discusses metrics used for size estimation, including lines of code and function points. It provides details on calculating lines of code and function points and the advantages of using function points over lines of code for size estimation. Finally, it briefly introduces the COCOMO model for project estimation.

Uploaded by

Vansh Kalariya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
209 views12 pages

Software Project Estimation Techniques

The document discusses software project estimation and scheduling. It describes the responsibilities of a software project manager, which include project planning, cost estimation, scheduling, risk management, and overseeing the project. It then discusses metrics used for size estimation, including lines of code and function points. It provides details on calculating lines of code and function points and the advantages of using function points over lines of code for size estimation. Finally, it briefly introduces the COCOMO model for project estimation.

Uploaded by

Vansh Kalariya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
  • Responsibility Of Software Project Manager
  • Metrics For Project Estimation

Subject Name: Introduction to Software Engineering Unit No: 03 Subject Code: 4340702

Software Project Estimation & Scheduling

 3.1 RESPONSIBILITY OF SOFTWARE PROJECT MANAGER


Job responsibility

 Software project managers take the overall responsibility of project to success.


 The job responsibility of a project manager ranges from invisible activities like building up team
morale to highly visible customer presentations.
 Most managers take responsibility for project proposal writing, project cost estimation,
scheduling, project staffing, deciding software process, project monitoring and control,
software configuration management, risk management, interfacing with clients, and presentations.
 These activities can be classified into project planning, and project monitoring and control activities.
 Project planning
 Project planning involves estimating characteristics of the project and then planning the
project activities based on the estimates made.
 The project planning activity is undertaken after the feasibility study phase.
 The initial project plans that are made are revised from time to time as the project progresses
and more project data become available.
 Project monitoring and control activities
 The project monitoring and control activities are undertaken once the development activities
start with the aim of ensuring that the development proceeds as per plan and changing the
plan whenever required.

Skills necessary for software project management


 A theoretical knowledge of different project management techniques is certainly necessary to
become a successful project manager.
 In addition to having a good understand of the latest software project management techniques such
as cost estimation, risk management, configuration management, project managers need good
communication skills.
 However, some skills such as tracking and controlling the progress of the project, customer
interaction, managerial presentations, and team building are largely acquired through experience.

 3.2 METRICS FOR SIZE ESTIMATION


 Estimation of the problem size is estimation of effort, time duration and cost of a software project.
 The size of a problem is obviously not the number of bytes that the source code occupies. It is
neither the byte size of the executable code.

Prepared By: Department of Computer Engineering Page 1


Subject Name: Introduction to Software Engineering Unit No: 03 Subject Code: 4340702

 Currently two metrics are popularly being used widely to estimate size:
 Lines of code (LOC)
 Function point (FP)

LINES OF CODE (LOC)


 LOC metric is very popular because it is the simplest to use. Using this metric, the project
size is estimated by counting the number of source instructions in the developed program.
 Lines used for commenting the code and the header lines should be ignored.
 Determining the LOC count at the end of a project is a very simple job.
 To estimate the LOC count at the beginning of a project, project managers usually divide the
problem into modules and each module into sub modules and so on, until the sizes of the
different leaf-level modules can be approximately predicted.

Shortcomings (or Disadvantages) of Lines of Code (LOC) metric


 LOC gives a numerical value of problem size that can vary with individual coding style –
different programmers lay out their code in different ways. For example, one programmer might
write several source instructions on a single line whereas another might split a single instruction
across several lines. Of course, this problem can be easily overcome by counting the language
tokens in the program rather than the lines of code.
 However, a more difficult problem arises because the length of a program depends on the choice
of instructions used in writing the program. Therefore, even for the same problem, different
programmers might come up with programs having different LOC counts.
 A good problem size measure should consider the overall complexity of the problem and the
effort needed to solve it. That is, it should consider the effort needed to specify, design, code,
test, etc. and not just the coding effort.
 LOC focuses on the coding activity alone; it only computes the number of source lines in final
program.
 Larger code size does not necessarily imply better quality. Some programmers produce lengthy
and complicated code as they do not make effective use of the available instruction set.
 If a programmer uses several library routines, then the LOC count will be lower. This would show
up as smaller program size.
 It is very difficult to accurately estimate LOC in the final product from the problem specification.
The LOC count can be accurately computed only after the code has been fully developed.
 Therefore, the LOC metric is little use to the project managers during project planning, since
project planning is carried out even before any development activity has started. This is the
biggest shortcoming of the LOC metric.

Prepared By: Department of Computer Engineering Page 2


Subject Name: Introduction to Software Engineering Unit No: 03 Subject Code: 4340702

FUNCTION POINT (FP)


 Function Point metric overcomes many of the shortcomings of the LOC metric. One of the
important advantages of using the function point metric is that it can be used to easily estimate
the size of a software product directly from the problem specification.
 LOC metric, where the size can be accurately determined only after the product has fully been
developed. The conceptual idea behind the function point metric is that the size of a software
product is directly dependent on the number of different functions or features it supports.
 A software product supporting many features would certainly be of larger size than a product with
less number of features. Each function when invoked reads some input data and transforms it
to the corresponding output data.
 For example, the issue book feature (as shown in figure.) of a Library Automation Software takes
the name of the book as input and displays its location and the number of copies available.

 The size of a product in function points (FP) can be expressed as the weighted sum of these
five problem characteristics. The weights associated with the five characteristics were proposed
empirically and validated by the observations over many projects. Function point is computed in
two steps. The first step is to compute the unadjusted function point (UFP).

UFP = (Number of inputs)*4 + (Number of outputs)*5 + (Number of inquiries)*4 +


(Number of files)*10 + (Number of interfaces)*10

Number of inputs

 Each data item input by the user is counted. It must be noted that individual data items input by
the user are not considered in the calculation of the number of inputs, but a group of related
inputs are considered as a single input.
 For example, while entering the data concerning employee to pay roll software; the data items
name, age, address, phone number, etc. are together considered as a single input. All these data
items can be considered to be related, since they count as to a single employee.

Prepared By: Department of Computer Engineering Page 3


Subject Name: Introduction to Software Engineering Unit No: 03 Subject Code: 4340702

Number of outputs
 The outputs considered refer to reports printed, screen outputs, error messages produced, etc.
While outputting the number of outputs the individual data items within a report are not
considered, but a set of related data items is counted as one input.

Number of inquiries
 Inquiries are user commands such as print-account-balance. Inquiries are counted separately.

Number of files
 Each logical file is counted. A logical file means groups of logically related data.

Number of interfaces
 Here the interfaces considered are the interfaces used to exchange information with other
systems. Examples of such interfaces are communication links with other systems etc.
 Once the unadjusted function point (UFP) is computed, the technical complexity factor (TCF) is
computed next. TCF refines the UFP measure by considering 14 other factors such as high
transaction rates, throughput, and response time requirements, etc.
 Each of these 14 factors is assigned from 0 (not present) to 6 (strong influence). The resulting
numbers are summed, gives the total degree of influence (DI).
 Now, TCF = (0.65+0.01*DI). As DI can vary from 0 to 70, TCF can vary from 0.65 to 1.35.
 Finally, FP=UFP*TCF.

 3.3 PROJECT ESTIMATION TECHNIQUES USING COCOMO MODEL

COCOMO
 COCOMO (Constructive Cost Estimation Model) was proposed by Boehm (1981). According
to the Boehm any software development project can be classified into one of the following three
categories based on the development complexity: organic, semidetached, and embedded.
 Organic: A development project can be considered of organic type, if the project deals with
developing a well understood application program, the size of the development team is small,
and the team members are experienced in developing similar types of projects.
 Semidetached: A development project can be considered of semidetached type, if the
development consists of a mixture of experienced and inexperienced staff.
 Embedded: A development project is considered to be of embedded type, if the software
being developed is strongly coupled to complex hardware.

Prepared By: Department of Computer Engineering Page 4


Subject Name: Introduction to Software Engineering Unit No: 03 Subject Code: 4340702

 According to Boehm, software cost estimation should be done through three stages: Basic
COCOMO, Intermediate COCOMO, and Complete COCOMO.

Basic COCOMO Model


 The basic COCOMO model gives an approximate estimate of the project parameters. The basic
COCOMO estimation model is given by the following expressions:
Effort = a1 × (KLOC)a2 PM
Tdev = b1 × (Effort)b2 Months

 Where
 KLOC is the estimated size of the software product expressed in Kilo Lines of Code
 a1, a2, b1, b2 are constants for each category of software products
 Tdev is the estimated time to develop the software, expressed in months
 Effort is the total effort required to develop the software product, expressed in person
months (PMs)
 According to Boehm, every line of source text should be calculated LOC.
 The values of a1, a2, b1, b2 for different categories of products (i.e. organic, semidetached,
and embedded) as given by Boehm [1981] are summarized below. He derived the above
expressions by examining historical data collected from a large number of actual projects.
 Estimation of development effort: For the three classes of software products, the formulas
for estimating the effort based on the code size are shown below:
 Organic : Effort = 2.4(KLOC)1.05 PM
 Semi-detached : Effort = 3.0(KLOC)1.12 PM
 Embedded : Effort = 3.6(KLOC)1.2 PM
 Estimation of development time: For the three classes of software products, the formulas
for estimating the development time based on the effort are given below:
 Organic : Tdev = 2.5(Effort)0.38 Months
 Semi-detached : Tdev = 2.5(Effort)0.35 Months
 Embedded : Tdev = 2.5(Effort)0.32 Months
 From the effort estimation, the project cost can be obtained by multiplying the required effort by
the manpower cost per month.
 Example: Assume that the size of an organic type software product has been estimated to be
32,000 lines of source code. Assume that the average salary of software engineers be Rs. 15,000/-
per month. Determine the effort required to develop the software product and the nominal
development time.
 From the basic COCOMO estimation formula for organic
software: Effort = 2.4 х (32)1.05 = 91 PM
Development time = 2.5 х (91)0.38 = 14 months

Prepared By: Department of Computer Engineering Page 5


Subject Name: Introduction to Software Engineering Unit No: 03 Subject Code: 4340702

Cost required to develop the product = 91 х 15000

= Rs. 1365000/-

Intermediate COCOMO model

 Basic COCOMO model assumes that effort and development time are functions of the product size.
 Therefore, in order to obtain an accurate estimation of the effort and project duration, the effect of
all relevant parameters must be taken into account.
 The intermediate COCOMO model recognizes this fact and refines the initial estimate obtained
using the basic COCOMO expressions by using a set of 15 cost drivers (multipliers) based on
various attributes of software development.
 For example, if modern programming practices are used, the initial estimates are scaled downward.
 If there are reliability requirements on the software product, this initial estimate is scaled upward.
 In general, the cost drivers can be classified as being attributes of the following items:
 Product: The characteristics of the product like reliability requirements of the product.
 Computer: Characteristics of the computer like execution speed required, storage space required etc.
 Personnel: experience level of personnel, programming capability, analysis capability, etc.
 Development Environment: use of the automation (CASE) tools used for software development.
Complete COCOMO model
 A major shortcoming of both the basic and intermediate COCOMO models is that they
consider a software product as a single entity.
 However, most large systems are made up several smaller sub-systems. These subsystems may
have widely different characteristics.
 For example, some subsystems may be considered as organic type, some semidetached, and
some embedded. Not only that the development complexity of the subsystems may be different, but
also for some subsystems the reliability requirements may be high, for some the development
team might have no previous experience of similar development, and so on.
 The complete COCOMO model considers these differences in characteristics of the subsystems
and estimates the effort and development time as the sum of the estimates for the individual
subsystems.
 The following development project can be considered as an example of application of the
complete COCOMO model.
 A distributed Management Information System (MIS) product for an organization having
offices at several places across the country can have the following sub-components:
 Database part
 Graphical User Interface (GUI) part
 Communication part
 Of these, the communication part can be considered as embedded software. The database part
could be semi-detached software, and the GUI part organic software. The costs for these three

Prepared By: Department of Computer Engineering Page 6


Subject Name: Introduction to Software Engineering Unit No: 03 Subject Code: 4340702

components can be estimated separately, and summed up to give the overall cost of the system.

 3.4 PROJECT SCHEDULING


i. Gantt Chart
ii. Flow Chart
iii. Sprint burn down chart for agile model
i. Gantt chart
 Gantt charts are used to allocate resources to activities. The resources allocated to activities
include staff, hardware, and software. Gantt charts are useful for resource planning.
 A Gantt chart is a special type of bar chart where each bar represents an activity. The bars are
drawn along a time line. The length of each bar is proportional to the duration of time
planned for the corresponding activity.
 This allows you to see: various activities, when each activity begins and ends, how long each
activity is scheduled, start and end date of the whole project.
 A Gantt chart representation for the MIS problem is shown in the figure.

Prepared By: Department of Computer Engineering Page 7


Subject Name: Introduction to Software Engineering Unit No: 03 Subject Code: 4340702

ii. Flow Chart


 A flowchart is a picture of the separate steps of a process in sequential order. It is a generic tool
that can be adapted for a wide variety of purposes, and can be used to describe various processes,
such as a manufacturing process, an administrative or service process, or a project plan.

Prepared By: Department of Computer Engineering Page 8


Subject Name: Introduction to Software Engineering Unit No: 03 Subject Code: 4340702

Prepared By: Department of Computer Engineering Page 9


Subject Name: Introduction to Software Engineering Unit No: 03 Subject Code: 4340702

iii. Sprint burn down chart for agile model


 A sprint burn down chart is a visual comparison of how much work has been completed during a
sprint and the total amount of work remaining. It helps measure a Scrum team's progress, and it
provides an easy view of whether the team needs to make any adjustments to complete its work for
the current sprint iteration.

 3.5 Risk Management


I. Risk Identification
II. Risk Assessment
III. Risk Control

RISK IDENTIFICATION
 A software project can be affected by a large variety of risks. In order to be able to

Prepared By: Department of Computer Engineering Page 10


Subject Name: Introduction to Software Engineering Unit No: 03 Subject Code: 4340702

systematically identify the important risks which might affect a software project, it is necessary
to categorize risks into different classes.
 The project manager can then examine which risks from each class are relevant to the project.
There are three main categories of risks which can affect a software project:

Project risks
 Project risks concern varies forms of budgetary, schedule, personnel, resource, and customer-
related problems. An important project risk is schedule. It is very difficult to monitor and
control a software project.
 It is very difficult to control something which cannot be seen. For any manufacturing project,
such as manufacturing of cars, the project manager can see the product taking shape. He can for
instance, see that the engine is fitted, after that the doors are fitted, and the car is getting painted,
etc. Thus he can easily assess the progress of the work and control it.
 The invisibility of the product being developed is an important reason why many software
projects suffer from the risk of schedule.

Technical risks
 Technical risks concern design, implementation, interfacing, testing, and maintenance problems.
 Technical risks also include ambiguous specification, incomplete specification, changing
specification, technical uncertainty. Most technical risks occur due to the development team’s
insufficient knowledge about the project.

Business risks
 This type of risks include risks of building an excellent product that no one wants, losing
budgetary or personnel commitments, etc.
Example
 Let us consider the satellite based mobile communication product. The project manager can
identify several risks in this project. We can classify them appropriately as:
 What if the project cost extend to a large extent than what was estimated? – project risk
 What if the mobile phones become too large for people to conveniently carry? – Business risk

RISK ASSESSMENT
 Risk assessment involves identifying risk, analyzing them and then assigns priority to them on the
basis of the analysis.
 The objective of risk assessment is to rank the risks in terms of their damage. For risk assessment,
first each risk should be rated in two ways:
 The probability of a risk coming true (denoted as r).
 The result of the problems associated with that risk (denoted as s).
Prepared By: Department of Computer Engineering Page 11
Subject Name: Introduction to Software Engineering Unit No: 03 Subject Code: 4340702

 Based on these two factors, the priority of each risk can be computed:
p=r*s
 Where, p is the priority with which the risk must be handled, r is the probability of the risk
becoming true, and s is the result of damage caused due to the risk becoming true. If all
identified risks are prioritized, then the most likely and damaging risks can be handled first and
reject procedures can be designed for these risks.

RISK CONTROL
 After all the identified risks of a project are assessed, plans must be made to containment the
most damaging and the most likely risks.
 Different risks require different containment procedures. In fact, most risks require expertness on
the part of the project manager in handling the risk.
 There are three main strategies to plan for risk containment:
 Avoid the risk: This may take several forms such as discussing with the customer to
change the requirements to reduce the scope of the work.
 Transfer the risk: This strategy involves getting the risky component developed by a third party.
 Risk reduction: This involves planning ways to containment the damage due to a risk.
 To choose between the different strategies of handling a risk, the project manager must consider
the cost of handling the risk and the corresponding reduction in risk.
 For this we may compute the risk leverage of the different risks. Risk leverage is the difference in
risk divided by the cost of reducing the risk.

Risk leverage = (Risk before reducing - Risk after reducing) / cost of reducing

Prepared By: Department of Computer Engineering Page 12

Common questions

Powered by AI

Software project risks are categorized into project risks, technical risks, and business risks. Project risks relate to budgetary, schedule, and personnel issues; technical risks involve design, implementation, and specification challenges; while business risks might include market viability or resource allocation issues. Identifying these risks involves assessing the probability and impact of different eventualities that might affect the project. Control strategies include avoiding the risk by reducing project scope, transferring the risk through outsourced development, and reducing the risk with pre-emptive action plans that mitigate potential impacts. Risk prioritization is crucial for addressing the most severe and probable risks .

The Basic COCOMO model uses the variables KLOC (thousands of lines of code) to estimate development effort and time. It applies constants a1, a2, b1, and b2, which differ based on the project category—organic, semidetached, or embedded. These constants define the mathematical relationships: Effort = a1 × (KLOC)^a2 PM (person months) and Tdev = b1 × (Effort)^b2 months. For instance, organic projects might use constants such as a1 = 2.4 and a2 = 1.05 to estimate effort .

Risk leverage is a concept in risk management that evaluates the reduction in potential risk versus the cost of mitigating that risk. It is calculated as the difference in risk levels before and after implementing risk reduction strategies, divided by the cost involved in these strategies. This measure is used by project managers to decide the most cost-efficient way to handle risks by comparing potential risk reduction to the financial investment required. By assessing risk leverage, managers can prioritize risk mitigation efforts, focusing on strategies that provide the highest reduction per cost unit .

Boehm's COCOMO model classifies software development projects into three categories: organic, semidetached, and embedded. Organic projects are well-understood applications with small, experienced teams; semidetached projects involve a mix of experienced and inexperienced staff; and embedded projects are strongly coupled with complex hardware. This classification aids in effort estimation by applying different coefficients for each category. For example, organic projects might have a lower coefficient due to the experience and simplicity involved. By recognizing these categories, the COCOMO model adjusts the parameters for development effort, ensuring a more tailored and accurate estimation .

Gantt charts are significant in software project management as they graphically represent project activities along a timeline with bars representing each task's duration. This visualization aids in resource planning by showing when each activity starts and ends, allowing better allocation of staff, hardware, and software resources. This tool makes it easier to identify the various tasks of a project, the interdependencies between them, and the necessary resources and timeline, thus improving the overall management and scheduling of a project .

Cost drivers in the Intermediate COCOMO model serve to adjust the initial project estimates by accounting for various attributes of the software development process. The model introduces 15 cost drivers that impact elements like product reliability expectations, required execution speed, and the team's experience level. These multipliers modify the base effort and time estimates upwards or downwards depending on specific circumstances, such as altering estimates for projects using modern programming practices or with high reliability demands. Thus, these cost drivers refine estimates by tailoring them to the project's unique attributes, improving accuracy compared to the Basic COCOMO model .

The Lines of Code (LOC) metric is limited due to its dependence on individual coding styles, where programmers might write instructions in vastly different ways, leading to inconsistent LOC counts among similar projects. Additionally, LOC focuses only on the coding aspect and ignores other complex development stages like specifying, designing, and testing. It does not necessarily indicate the quality of code, as efficient coding practices could lead to a smaller LOC count. LOC is also not useful for early project planning since it can only be calculated accurately post-development. Furthermore, substantial library usage can drastically lower LOC, misleading project size estimation .

In the COCOMO model, effort and development time estimates differ for organic, semidetached, and embedded project types, reflecting their complexity levels. The formulas for effort estimation depend on the constants appropriate for each category: 2.4 × (KLOC)^1.05 PM for organic, 3.0 × (KLOC)^1.12 PM for semidetached, and 3.6 × (KLOC)^1.2 PM for embedded. Correspondingly, development time uses these relationships: 2.5 × (Effort)^0.38 for organic, 0.35 for semidetached, and 0.32 for embedded projects, reflecting the increased complexity and required effort for embedded systems .

The Function Point (FP) metric overcomes the LOC metric's shortcomings by allowing for size estimation directly from the problem specification rather than post-development. It correlates the software size with the number of supported functions or features instead of the lines of code, providing a more holistic view of the software's scope. This approach is advantageous because it accounts for different software functionalities and can lead to more accurate early estimations without relying on coding completion .

Sprint burn down charts benefit Agile teams by providing a real-time visual comparison of completed work versus the total work planned for an iteration. This helps the team measure progress, identify discrepancies between planned and actual progress, and make necessary adjustments to the sprint plan. By visually depicting the pace at which tasks are completed, burn down charts enable the team to identify potential scheduling issues early and adjust workloads to increase efficiency and focus, enhancing the overall project visibility and management .

You might also like