10 Estimation Function PT Q2
10 Estimation Function PT Q2
Software Projects
Estimation
Why Measure?
⚫ Make informed and effective decision
⚫ When to use?
⚫ To evaluate
⚫ To improve
⚫ To estimate
Metrics - Critical for Project
⚫ Scope, Time, Cost, Quality, Resources, and
Risk in order to accurately estimate the project.
⚫ Common questions at the start of the project
• How much work is to be estimated (scope).
• How much time it will require to complete the project
(Schedule).
• Who will be doing the project (resources)?
• What is the budget required to deliver the project
(cost)?
• Any intermediary dependencies that may delay or
impact the project (Risks).
• How to estimate the project (techniques).
For your project:
⚫ How are you going to give feedback to your
team members?
⚫ How are you going to assess the quality of
the code produced?
⚫ How are you going to track progress?
⚫ How are you going to assign tasks?
Development Methodologies
4x
Estimates can be off by a factor of
2x
four early in the SDLC
1.50x
1.25x
1x
0.5x
0.25x
⚫ Direct measures
⚫ Lines of code
⚫ Indirect measures
⚫ Function points
Size Measures for Software
⚫ Lines of Code (LOC/KSLOC)
⚫ Function points
⚫ Feature Points
⚫ No. of Bubbles on a DFD
⚫ No. of Entities in a ERD
⚫ Count of process boxes in a structure chart
⚫ No. of objects, attributes and services on an
Object diagram
Estimation
⚫ Use expert opinion
⚫ Algorithmic models
⚫ ‘Price to win’
⚫ By analogy
⚫ Guidelines for counting LOC (PPA)
⚫ Each “source line(s)” should contain only one
instruction statement
⚫ Count all deliverable, executable statements
⚫ Do not count lines that contain comments
⚫ Do not count reusable code container
⚫ Ex. LocMetrics, SCC
Advantages of using LOC as
measure
⚫ Widely and universally accepted
⚫ Directly relates to end-product
⚫ Measures from the point-of-view of the
developer
⚫ Easily measurable
⚫ Provides historical data for future estimations
⚫ Provides comparison between productivity
and size
Disadvantages of using LOC
as measure
⚫ LOC difficult to estimate early in the life cycle
⚫ Sources of instruction vary with programming
language
⚫ No industry standards
⚫ Code generators often produce excess code
lines
⚫ Programmers may be rewarded for large
LOC, mistaking it for productivity
Total software Development
Costing
⚫ Hardware and software costs including maintenance
⚫ Travel and training costs
⚫ Effort costs (the costs of paying people other than
software engineers).
⚫ Costs of providing, heating and lighting office space
⚫ Costs of support staff such as accountants,
administrators, system managers, cleaners and
technicians
⚫ Costs of networking and communications
⚫ Costs of central facilities such as a library or
recreational facilities
⚫ Costs of Social Security and employee benefits such
as pensions and health insurance.
“Good” software cost estimate
⚫ It is conceived and supported by the project
manager and the development team.
⚫ It is accepted by all stakeholders as
realizable.
⚫ It is based on a well-defined software cost
model with a credible basis.
⚫ It is based on a database of relevant project
experience
⚫ It is defined in enough detail
Poor Software Cost Estimates
⚫ Lack of a historical database of cost
measurement
⚫ Software development involving many
interrelated factors, which affect development
effort and productivity, and whose relationships
are not well understood.
⚫ Lack of trained estimators and estimators with
the necessary expertise
⚫ Little penalty is often associated with a poor
estimate
Steps in Sizing and Estimation
Analogy, Delphi, FP, Feature Points, Historical Database
Estimate
Size COCOMO, SLIM, Domain Experts
Estimate
Effort
Estimate
Duration
Estimate
Cost
Forecast
Resource
Needs
Model
OO Methods, Requirements
Structured Methods
Create
SRS
Software Requirements
Specifications
⚫ Visibility Technique
⚫ Correct
⚫ Unambiguous
⚫ Traceable
⚫ Consistent
⚫ Complete
⚫ Verifiable
⚫ Understandable by the customer
⚫ Design independent
Identify and Link
⚫ Visibility technique
⚫ Step 6:
⚫ Compare, understand and Iterate Estimates
⚫ Step 7:
⚫ Review Estimate Accuracy
Function Points (FP)
⚫ Measure based on complexity and number of
end-user business functions that the software
performs
Rating
0,1,2,3,4,5
FP Step-wise
⚫ Step 1: Determine the outputs, inputs,
database inquiries, files/data structures and
external interfaces
⚫ Disadvantages
⚫ Not well-suited for non-MIS applications
⚫ Best performed only after design creation
⚫ Not an effective metric tool for maintenance projects
Function Points Parameters
⚫ Outputs,
⚫ Reports, confirmation messages, graphs, charts
⚫ Inputs
⚫ User Interfaces, Transactional / process data
⚫ Database inquiries
⚫ Retrieval of data, combination of Inputs/Outputs
⚫ Files/data structures
⚫ Data stored, could be ERDs, Databases
⚫ External interfaces
⚫ Maintained by another application system
Rating
# Environmental factor (0-5)
1 Data Communications
2 Distributed Computing
4 Constrained Configuration
5 Transaction Rate
6 Online Inquiry
7 End-User Efficiency
8 Online Update
9 Complex Processing
10 Reusability
11 Ease of conversion
12 Ease of Operation
13 Used at Multiple sites
46
Fixed price/unit example
47
Example 1
The following set of requirements (for a Human Resources System) are to be
used to generate a high-level function point count for the size of the
required application software.
Requirements
The Human Resources System must provide three major business processes:
• Manage Employee Records,
• Manage Job Information,
• Manage Assignment Information.
The system must be able to add, change and delete job information, including
job title, number, pay grade, and description (a collection of free form text
lines). It must be possible to inquire on all information about a job, using the
job-number and to retrieve a list of all jobs.
The system must be able to capture and maintain job assignment information,
including employee-ID, effective date, salary and performance rating. It must
be possible to transfer an employee to different job assignments, and to delete
a job assignment for an employee. It must also be possible to inquire about an
individual assignment, using the employee-ID and the job-number and to
retrieve a list of all job assignments. There is also a need for a report listing the
employee and all locations for the employee, in paper copy.
Example 2
A list of employees with their basic pay is sent to a
clerk. He calculates the gross pay using standard
allowances which are known for each pay slab.
Deduction statements such as loan repayment,
subscription to association, etc., are also sent to
another clerk who matches these details with the
details of gross pay and calculates net pay. This
data is used by a third clerk to print out pay
cheques for each employee and sent to the
respective employees. A salary report is also
generated and sent to the Accounts Dept.
Story Points – Agile Methodology
⚫ 1,2,4,8,16