Project Estimation TechniquesPPT
Project Estimation TechniquesPPT
Techniques
The seeds of major software disasters are usually sown in the first three months of
commencing the software project. Hasty scheduling, irrational commitments, unprofessional
estimating techniques, and carelessness of the project management function are the factors
that tend to introduce terminal problems. Once a project blindly lurches forward toward an
impossibl e delivery date, the rest of the disaster will occur almost inevitably
Estimation techniques are:
i. guesstimating
ii. Delphi
iii. top-down and
iv. bottom-up estimating.
GUESTIMATING TECHNIQUE
Internal Logic File (ILF): This is the set of data present within the
system. The majority of the data will be interrelated and are captured
via the inputs received from the external sources.
External Logic File (ELF): This is the set of data from external
resources or external applications. The majority of the data from the
external resource is used by the system for reference purposes.
Function Point Analysis
Developed by Allen Albrecht, IBM Research, 1979
Technique to determine size of software projects
Size is measured from a functional point of view
Estimates are based on functional requirements
Albrecht originally used the technique to predict effort
Size is usually the primary driver of development effort
Independent of
Implementation language and technology
Development methodology
Capability of the project team
A top-down approach based on function types
Three steps: Plan the count, perform the count, estimate the effort.
Steps in Function Point Analysis
Plan the count
Type of count: development, enhancement, application
Identify the counting boundary
Identify sources for counting information: software, documentation
and/or expert
Perform the count
Count data access functions
Count transaction functions
Estimate the effort
Compute the unadjusted function points (UFP)
Compute the Value Adjusted Factor (VAF)
Compute the adjusted Function Points (AFP)
Compute the performance factor
Calculate the effort in person days
Function Types
Data function types
# of internal logical files (ILF)
# of external interface files (EIF)
Transaction function types
# of external input (EI)
# of external output (EO)
# of external queries (EQ)
Calculate the UFP (unadjusted function points):
UFP = a · EI + b · EO + c · EQ + d · ILF + e · EIF
Add Customer
Change Customer
Delete Customer
External Inputs
Receive payment
Deposit Item
Retrieve Item
Add Place
Change Place Data
Delete Place
Print Customer item list
Print Bill External Outputs
Print Item List
Query Customer
Query Customer's items
Query Places
Query Stored Items
External Inquiries
The data functions represent the functionality provided to the user by
attending to their internal and external requirements in relation to the
data, whereas the
transactional functions describe the functionality provided to the user in
relation to the processing this data by the application.
Evaluation of Value Adjusted FP Value Adjustment Factor (VAF) is derived
from the sum of the degree of influence (DI) of the 14 general system
characteristics (GSCc). General System characteristics are:
1. Data communications
2. Distributed data processing
3. Performance
4. Heavily utilised configuration
5. Transaction rate
6. On-line data entry
7. End-user efficiency
8. On-line update
9. Complex processing
10. Reusability
11. Installations ease
12. Operational ease
13. Multiple sites/organisations
14. Facilitate change
Interfaces (EIF) x 5 7 10 =
Function Points =
Unadjusted Function Points * Value Added Factor
FP = UFP · VAF
Performance factor
PF = Number of function points that can be completed per day
Effort = FP / PF
Examples
UFP = 18
Sum of GSC factors = 0.22
VAF = 0.87
Adjusted FP = VAF * UFP = 0.87 * 18 ~ 16
PF =2
Effort = 16/2 = 8 person days
UFP = 18
Sum of GSC factors = .70
VAF = 1.35
Adjusted FP = VAF * UFP = 1.35 * 18 ~ 25
PF = 1
Effort = 25/1 = 25 person days
Advantages of Function Point
Independent of implementation language and technology
AnalysisEstimates are based on design specification
Project Complexity A B
Simple 2.4 1.05
Semi-Complex 3.0 1.12
Complex 3.6 1.20
Calculation of Development Time
D
Basic formula: T = C * Effort
T = Time to develop in months
C, D = constants based on the complexity of
the project
Effort= Effort in person months (see slide
before)
Project Complexity C D
Simple 2.5 0.38
Semi-Complex 2.5 0.35
Complex 2.5 0.32
Basic COCOMO Example
Volume = 30000 LOC = 30KLOC
Project type = Simple
Effort = 2.4 * (30)1.05 = 85 PM
Development Time = 2.5 * (85)0.38 = 13.5 months
Intermediate COCOMO
15 cost drivers yielding a multiplicative correction factor
Basic COCOMO is based on value of 1.00 for each of the cost drivers
Detailed COCOMO
Multipliers depend on phase: Requirements; System Design; Detailed
Design; Code and Unit Test; Integrate & Test; Maintenance
Steps in Intermediate COCOMO
Project Complexity A B
Simple 2.4 1.05
Semi-Complex 3.0 1.12
Complex 3.6 1.20
Intermediate COCOMO: 15 Cost
drivers
Product Attributes Project Attributes
Required reliability
Database size
Use of modern
Product complexity programming
Computer Attributes practices
Execution Time constraint • Rated
Use of on a qualitative
software tools scale
Main storage constraint between “very low” and
Required development
Virtual Storage volatility “extra high”
Turnaround time schedule
• Associated values are
Personnel Attributes
Analyst capability
multiplied with each other.
Applications experience
Programmer capability
Virtual machine experience
Language experience
COCOMO
II
Revision of COCOMO I in 1997
Provides three models of increasing detail
Application Composition Model
Estimates for prototypes based on GUI builder tools and existing
components
Early Design Model
Estimates before software architecture is defined
For system design phase, closest to original COCOMO, uses function
points as size estimation
Post Architecture Model
Estimates once architecture is defined
For actual development phase and maintenance; Uses FPs or SLOC as size
measure
Estimator selects one of the three models based on current state
of the project.