Title: Effort Estimation
1Effort Estimation
- Has been an art for a long time because
- many parameters to consider
- unclear of relative importance of the parameters
- unknown inter-relationship among the parameters
- unknown metrics for the parameters
- Historically, project managers
- consulted others with past experiences
- drew analogy from projects with similar
characteristics - broke the projects down to components and used
past history of workers who have worked on
similar components then combined the estimates
For example?
What if you are new at this and have no
dependable contacts ?
2General Model
- There have been many proposed models for
estimation of effort in software. They all have a
similar general form - Effort (product size) (other
influencing factors) - or more formally
- Effort a (b ((Size)c)) PROD(fs)
- where
- Size is the estimated size of the project in loc
or function points - a, b, c, are coefficients derived from past data
and curve fitting - a base cost to do business regardless of size
- b fixed marginal cost per unit of change of
size - c nature of influence of size on cost
- fs are a set of additional factors, besides
Size, that are deemd important - PROD (fs) is the arithmetic product of the fs
3COCOMO Estimating Technique
- Developed by Barry Boehm in early 1980s who had
a long history with TRW and government projects
(LOC based) - Later modified into COCOMO II in the mid-1990s
(FP preferred or LOC) - Assumed process activities
- Product Design
- Detailed Design
- Code and Unit Test
- Integration and Test
- Utilized by some but most of the people still
rely on experience and/or own company proprietary
data.
Note that requirements gathering and spec.
are not included
4Basic Form for Effort
- Effort A B (size C)
- or more generally
- Effort A (sizeC) B
- Effort person months
- A scaling coefficient
- B coefficient based on 15 parameters
- C a scaling factor for process
- Size delivered source lines of code
5Basic form for Time
- Time D (Effort E)
- Time total number of calendar months
- D A constant scaling factor for schedule
- E a coefficient to describe the potential
parallelism in managing software development
6COCOMO I
- Originally based on 56 projects
- Reflecting 3 modes of projects
- Organic less complex and flexible process
- Semidetached average project
- Embedded complex, real-time defense projects
73 Modes are Based on 8 Characteristics
- A. Teams understanding of the project objective
- B. Teams experience with similar or related
project - C. Projects needs to conform with established
requirements - D. Projects needs to conform with established
interfaces - E. Project developed with new operational
environments - F. Projects need for new technology,
architecture, etc. - G. Projects need for schedule integrity
- H. Projects size range
8Inderstand req
Exp. w/similar project
Conform w/req.
Conform w/int.
New oper. env.
New tech/meth.
Schedule int.
Size
9COCOMO I
- For the basic forms
- Effort A B (size C)
- Time D (Effort E)
- Organic A 3.2 C 1.05 D 2.5
E .38 - Semidetached A 3.0 C 1.12 D 2.5 E
.35 - Embedded A 2.8 C 1.2 D 2.5
E .32
10Coefficient B
- Coefficient B is an effort adjustment factor
based on 15 parameters which varied from very
low, low, nominal, high, very high to extra high - B product (15 parameters)
- Product attributes
- Required Software Reliability .75 .88
1.00 1.15 1.40 - Database Size
.94 1.00 1.08 1.16 - Product Complexity .70 .85
1.00 1.15 1.30 1.65 - Computer Attributes
- Execution Time Constraints
1.00 1.11 1.30 1.66 - Main Storage Constraints
1.00 1.06 1.21 1.56 - Virtual Machine Volatility
.87 1.00 1.15 1.30 - Computer Turnaround time .87
1.00 1.07 1.15 -
-
11Coefficient B (cont.)
- Personnel attributes
- Analyst Capabilities 1.46
1.19 1.00 .86 .71 - Application Experience 1.29 1.13
1.00 .91 .82 - Programmer Capability 1.42 1.17
1.00 .86 .70 - Virtual Machine Experience 1.21 1.10
1.00 .90 - Programming lang. Exper. 1.14 1.07
1.00 .95 - Project attributes
- Use of Modern Practices 1.24 1.10
1.00 .91 .82 - Use of Software Tools 1.24
1.10 1.00 .91 .83 - Required Develop schedule 1.23 1.08
1.00 1.04 1.10
12An example
Any problem?
- Consider an average project of 10Kloc
- Effort 3.0 B (10 1.12) 3 1 13.2
39.6 pm - Where B 1.0 (all nominal)
- Time 2.5 ( 39.6 .35) 2.5 3.6 9 months
- This requires an additional 8 more effort and
36 more schedule time for product plan and
requirements - Effort 39.6 (39.6 .o8) 39.6 3.16
42.76 pm - Time 9 (9 .36) 9 3.24 12.34 months
13Try another example(how about your own project?)
- Go through the assessment of 15 parameters for
the effort adjustment factor, B. - You may have some concerns
- Are we interpreting each parameter the same way
- Do we have a consistent way to assess the range
of values for each of the parameters - -How good is my size (loc) estimate?
Do not forget to come back to COCOMO try it
own your own project.
14COCOMO II
- Effort performed at USC with many industrial
corporations participating - Has a database of over 80 some projects
- Early estimate, preferred to use Function Point
instead of LOC for size later estimate may use
LOC for size. (loc is harder to estimate without
some experience) - Coefficient B based on 15 parameters for early
estimate is rolled up to 7 parameters, and for
late estimates use 17 parameters. - Scaling factor for process has 6 categories
ranging in value from .00 to .05, in increments
of .01
15Function Point
- Provides you another way to estimate the size
of the project based on estimating - Inputs
- Outputs
- Files
- Interfaces
- Inquiries
- See text book for an algorithm to estimate
function point size. - (Or see the next 3 summary charts)
- Then --- still need to have an estimate on
productivity - function point/person-month
- Divide the estimated total project function
points by the productivity to get an estimate of
person-month or person-days needed.
16Function Point (FP) Computation
- Composed of 5 Primary Factors
- input items (external input items from user or
another application) - output items (external outputs such as reports,
messages, screens not each data item) - Inquiry (a query that results in a response of
one or more data) - master and logical files (internal file or data
structure or data table) - external interfaces (data or sets of data sent to
external devices, applications, etc.) - And a complexity level index matrix
Average
Simple
Complex
3
4
6
Input
5
7
Output
4
3
Inquiry
4
6
Logical files
7
10
15
Interface
7
5
10
17Function Point Computation (cont.)
- Initial Function Point
- SUM ( of Primary Factor x Complexity Level
Index) - There are 14 more Degree of Influences ( 0 to 5
scale) - data communications
- distributed data processing
- performance criteria
- heavy hardware utilization
- high transaction rate
- online data entry
- end user efficiency
- on-line update
- complex computation
- reusability
- ease of installation
- ease of operation
- portability
- maintainability
18Function Point Computation (cont.)
- Define Technical Complexity Factor (TCF)
- TCF .65 (.01 x DI )
- where DI SUM ( influence factor value)
- So note that .65 lt TCF lt 1.35
-
Function Point (FP) Initial FP x TCF
19Whats one Function Point?
- Do you have any experience in converting say
----- 35 function points to effort in person
months? - Is there any standard conversion factor that you
may use? - In IBM we used about 20 function points to 1
person month of effort.
20Popular Estimation Methods
- Draw on Past Experience and Similar Projects
- COCOMO
- Function Point
Can you speak to some pros and cons about each
method?