Professional Documents
Culture Documents
Csc422estimation2 (Autosaved)
Csc422estimation2 (Autosaved)
July 3 Estimation
July 2
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2
Challenges
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3
Problems with Estimations
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4
Components of an Estimation
This lecture
• Cost
• Personnel (in person days or valued in personnel cost)
• Person day: Effort of one person per working day
• Material (PCs, software, tools etc.)
• Extra costs (travel expenses etc.)
• Development Time
• Project duration
Lecture on Scheduling.
• Dependencies
• Infrastructure
• Rooms, technical infrastructure, especially in offshore
scenarios
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5
Estimating Development Time
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6
Estimating Personnel Cost
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7
Estimating Effort
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8
Estimation Techniques
• Expert estimates
• Lines of code
• Function point analysis
• COCOMO I
• COCOMO II
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9
Expert Estimates
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10
Lines of Code
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11
Function Point Analysis
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12
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 Added Factor (VAF)
• Compute the adjusted Function Points (FA)
• Compute the performance factor
• Calculate the effort in person days
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13
Function Types
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14
Object Model Example
Customer Place
Name Location
Address Space
Item
Amound Due
Description 1
1 Pallets
Value
owns * *
Storage Date Stored at
Owner
Storage Place
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15
Mapping Functions to Transaction Types
Add Customer
Change Customer
Delete Customer
Receive payment
Deposit Item
Retrieve Item External Inputs
Add Place
Change Place Data
Delete Place
Print Customer item list
Print Bill
Print Item List External Outputs
Query Customer
Query Customer's items
Query Places
Query Stored Items
External Inquiries
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16
Calculate the Unadjusted Function Points
Weight Factors
Function Type Number simple average complex
Interfaces (EIF) x 5 7 10 =
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18
Calculate the Effort
• After the GSC factors are determined, compute the
Value Added Factor (VAF):
14
VAF = 0.65 + 0.01 * GSCi=1 i
GSCi = 0,1,...,5
• 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
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19
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
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20
Advantages of Function Point Analysis
• Independent of implementation language and
technology
• Estimates are based on design specification
• Usually known before implementation tasks are known
• Users without technical knowledge can be
integrated into the estimation process
• Incorporation of experiences from different organizations
• Easy to learn
• Limited time effort
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21
Disadvantages of Function Point Analysis
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22
COCOMO (COnstructive COst MOdel)
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23
Calculation of Effort
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24
Calculation of Effort in Basic COCOMO
Project Complexity A B
Simple 2.4 1.05
Semi-Complex 3.0 1.12
Complex 3.6 1.20
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25
Calculation of Development Time
Basic formula: T = C * EffortD
• 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
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 26
Basic COCOMO Example
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 27
Other COCOMO Models
• 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
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 28
Steps in Intermediate COCOMO
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 29
Calculation of Effort in Intermediate COCOMO
Basic formula:
Effort = A * KDSIB * c1 * c1 ….* c15
Effort is measured in PM (person months, 152
productive hours (8 hours per day, 19 days/month,
less weekends, holidays, etc.)
A, B are constants based on the complexity of
the project
Project Complexity A B
Simple 2.4 1.05
Semi-Complex 3.0 1.12
Complex 3.6 1.20
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 30
Intermediate COCOMO: 15 Cost drivers
• Product Attributes • Project Attributes
• Required reliability • Use of modern
• Database size programming practices
• Product complexity • Use of software tools
• Computer Attributes • Required development
• Execution Time constraint schedule
• Main storage constraint
• Virtual Storage volatility • Rated on a qualitative scale
• Turnaround time between “very low” and
• Personnel Attributes “extra high”
• Analyst capability • Associated values are
• Applications experience multiplied with each other.
• Programmer capability
• Virtual machine experience
• Language experience
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 31
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.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 32
COCOMO II (cont’d)
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 33
COCOMO II: Added Cost drivers
• Development flexibility
• Team cohesion
• Developed for reuse
• Precedent
• Architecture & risk resolution
• Personnel continuity
• Documentation match life cycle needs
• Multi-Site development.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 34
Advantages of COCOMO
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 35
Problems with COCOMO
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 36
Online Availability of Estimation Tools
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 37
Additional Readings
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 38
Summary
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 39
Additional Slides
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 40
GSC Factors in Function Point Analysis
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 41
GSC Factors in Function Point Analysis
(cont’d)
8. On-line update: How many ILF’s are updated on-line?
9. Complex processing: Does the application have extensive
logical or mathematical processing?
10. Reusability: Will the application meet one or many user’s
needs?
11. Installation ease: How difficult is the conversion and
installation?
12. Operational ease: How automated are start-up, backup
and recovery procedures?
13. Multiple sites: Will the application be installed at multiple
sites for multiple organizations?
14. Adaptability and flexibility: Is the application specifically
designed to facilitate change?
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 42
Function Points: Example of a GSC Rating
GSC Value(0-5)
Data communications 1
Distributed data processing 1
Performance 4
Heavily used configuration 0
Transaction rate 1
On-Line data entry 0
End-user efficiency 4
On-Line update 0
Complex processing 0
Reusability 3
Installation ease 4
Operational ease 4
Multiple sites 0
Adaptability and Flexibility 0
Total 22
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 43
Cocomo: Example of Cost Driver Rating
Cost Driver Very Low Low Nominal High Very High Extra High
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 44
Estimation Technique used in the Exercise
Estimation technique used by Accenture
Uses both top-down and bottom-up elements
Consists of 9 steps:
1. Determine essential project characteristics
• Infrastructure, technology, team skills, experience…
2. Use factors for fixed efforts and phases:
• Often derived from already finished phases (step-by-step
detailing of estimations)
• Example:
• 10% for project management
• 10 % for infrastructure
• 50% for testing efforts.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 45
Estimation Technique used in the Exercise
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 46
Example of Complexity and Multipliers (Non-
exhaustive)
Complexity Type Multiplier Person
/ Factor Days
Requirements Elicitation 29
Function A Low Use Case 1 5
Function B Medium Use Case 1 8
Function C High Use Case 2 16
Implementation 39
Screen A High User interface 1 18
Screen B Low User interface 2 8
10% of
Batch Job A Medium Batch 1 8
Batch Job B Low Batch 1 5
Software Architecture 10 % 3,9
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 47
L.W.F Factor
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 48