dilbert scott adams - california state university,...
TRANSCRIPT
DilbertScott Adams
DilbertScott Adams
Chapter 5Estimate Influences
“How much is 68 + 73?”ENGINEER: “It’s 141.”
Short and sweet.MATHEMATICIAN: “68 + 73 = 73 + 68 by the commutative law of addition.”
True, but not very helpful.ACCOUNTANT: “Normally it’s 141, but what are you going to use it for?”
Barry Boehm & Richard Farley
Influences on effort, cost and schedule of software projects:• Project size is the most significant• The kind of software is second• Personnel factors are a close thirdNote.
Language & environment are not “first tier influences” on the outcome, but they are on the estimate.
Why use Lines of Code (LOC)?• A system requiring 1,000,000 LOC needs much more effort
that a system consisting of 100,000 LOC• How is this used… often not at all• Cost, effort, schedule:
Estimated without knowing how big the software will beNot adjusted when the size is increased (change requests)
Why LOC?Many languages are not as LOC oriented as older languagesReq’ts, design and testing don’t produce LOCComing in Chapter 18
Project Size (Fig. 5-1)
0
100,000
200,000
300,000
400,000
500,000
600,000
0 500 1,000 1,500 2,000 2,500 3,000
Effort(staff months)
Project Size (LOC)
Diseconomies of Scale• Larger projects require coordination between larger groups of
people…Meaning more communication!
N ( N – 1 ) / 2
Diseconomies of ScaleBut also Project conditions degrade productivity
0
1,000
2,000
3,000
4,000
5,000
6,000
0 200,000 400,000 600,000 800,000 1,000,000
Effort(staff months)
Project Size (LOC)
Project Size & Productivity (Table 7-1)• General relationship between Size & Productivity• Numbers valid just for comparison purposes• Depicts general trend:
Small 10K project can be 2 to 3 times greater than large projectsSmall 10K project can be 5 to 10 more productive than large projects
Project Size (LOC) Lines of Code per Staff Year10K 2,000 - 25,000 (3,200)100K 1,000 - 20,000 (2,600)1M 700 - 10,000 (2,000)10M 300 - 5,000 (1,600)
Cocomo II Nominal in Parentheses)
Bad news• Large variation in sizes of projects prohibits using some simple
effort ratio based on previous experience.Book example:Previous project: 100,000 LOC and 170 staff monthsProductivity Standard: 100,000 170 = 588 LOC / staff monthA different size project would not have 588 LOC / staff month
• No technique to account for the difference in the size of projects.
Good news!• Majority of projects in most organizatins are similar in size• Yes, use a simple effort ratio.
But…Use it only for a small range of sizesDifference only within a factor of 3 from smallest to largestEstimate in the mid range… variation roughly only 10%
TipSize is the number one influence on your estimate
Different kinds of SW appsNext biggest influence on your estimate!
(Table 5-2)
Kind of SW 10,000 LOC 100,000 LOC 250,000 LOCAvionics 100-1,000 20-300 20-200Business Systems 800-18,00 200-7,000 100-5,000Command & Control 200-3,000 50,600 40-500Embedded Systems 100-2,000 30,500 20-400Internet Systems (public) 600-10,000 100-2,000 100-1,500Intranet Systems (private) 1,500-18,000 300-7,000 200-5,000Microcode 100-800 20-200 20-100Process Control 500-5,000 100-1,000 80-900Real-Time 100-1,500 20-300 20-300Scientific Systems/Engineering Research
500-7,500 100-1,500 80-1,000
Shrink wrap/Packaged SW 400-5,000 100-1,000 70-800Systems SW / Drivers 200-5,000 50-1,000 40-800Telecommunications 200-5,000 50-600 40-500
PROJECT SIZE
Given a specific industryHow to estimate:
1. Use Table 5-2 … difference of a factor of 10 between high and low.
2. Use an estimating model (Cocomo II with adjustments for the specific kind of software).
3. Use historical data… includes factors specific to the industry (Chapter *)
Personnel Factors100,000 LOC Project:• Combined effect of personnel factors can “swing” the estimate
by as much as a factor of 22
Best Worst
Req'ts Analyst Capability -29% 42%Programmer Capability (General) -24% 34%Personnel Continuity (Turnover) -19% 29%
Applications (Business Area) Experience -19% 22%Language & Tools Experience -16% 20%
Platform Experience -15% 19%Team Cohesion -14% 11%
Nominal
Functionality per Line of Code (LOC)• If you have the choice of language, pick one that is more
productive than C, Cobol or Macro Assembly
Language Level Relative to CC 1 to 1C# 1 t0 2.5C++ 1 to 2.5Cobol 1 to 1.5Fortran 95 1 to 2.5Java 1 to 2.5Macro Assembly 2 to 1Perl 1 to 6Smalltalk 1 to 6SQL 1 to 10Visual Basic 1 to 4.5
Cocomo Development - ModesOrganic
Relatively small, simple softwre proejcts in which small teams with good application experience work to a set of flexible requirements
EmbeddedSoftware project has tight software, hardware and operational constraints
Semi-detachedIntermediate (in size and complexity) software project in which teams with mixed experience levels must meet a mix of rigig and less than rigid requirements
Cocomo Model
Where: E represents effort per staff-monthS is the size of the SW development in KLOCa and b are values dependent on the development mode
Development Modes:Organic a = 2.4 b = 1.05Semi-detached a = 3.0 b = 1.12Embedded a = 3.6 b = 1.20
( ) Product(cost drivers)bE a S= ×
Cocomo II Adjustment FactorsTable 5-4
Very Low impact Influence of factor on overall estimateVery High impact = (Max value Min value)
Table 5-5 Definitions for each Factor
Very Low Low Nominal High
Very High
Extra High Influence
Applications (Business Area) Experience 1.22 1.10 1.00 0.88 0.81 1.51Database Size 0.90 1.00 1.14 1.28 1.42Developed for Reuse 0.95 1.00 1.07 1.15 1.24 1.31Extent of Documentation Required 0.81 0.91 1.00 1.11 1.23 1.52Language & Tools Experience 1.20 1.09 1.00 0.91 0.84 1.43Multisite Development 1.22 1.09 1.00 0.93 0.86 0.78 1.56Personnel Continuity (Turnover) 1.29 1.12 1.00 0.90 0.81 1.59Platform Experience 1.19 1.09 1.00 0.91 0.85 1.40Platform Volatility 0.87 1.00 1.15 1.30 1.49Product Complexity 0.73 0.87 1.00 1.17 1.34 1.74 2.38Programmer Capability (General) 1.34 1.15 1.00 0.88 0.76 1.76Required SW Reliability 0.82 0.92 1.00 1.10 1.26 1.54Req'ts Analyst Capability 1.42 1.19 1.00 0.85 0.71 2.00Storage Constraint 1.00 1.05 1.17 1.46 1.46Time Constraint 1.00 1.11 1.29 1.63 1.63Use of SW Tools 1.17 1.09 1.00 0.09 0.78 1.50
Cocomo II Factors(Table 5-7)
2.38
2.00
1.761.63 1.59 1.56 1.54 1.52 1.51 1.50 1.49 1.46 1.43 1.43 1.42 1.40 1.38 1.33 1.31 1.29 1.26
Influence of each factorOn the Effort estimate
The Model in ActionCost Drivers (see handout):
Product High = 1.15 1.08 1.15 = 1.43Computer Nominal = 1.00Personnel Low = 1.19 1.13 1.17 1.07 = 1.85Project Hign = 0.91 0.91 1.04 = 0.86
Cost Drivers = 1.43 1.00 1.85 1.86 = 2.28 Semi-detached project of 56 KLOC
1.12
( ) Product (cost drivers) 3.0 1.12 56
3.0 (56) 2.28 620.94 staff months
bE a Sa b SE
= ×= = =
= × =
2.38
2.00
1.761.63 1.59 1.56 1.54 1.52 1.51 1.50 1.49 1.46 1.43 1.43 1.42 1.40 1.38 1.33 1.31 1.29 1.26
5 scaling factors contributing to Diseconomies of Scale1. Process Maturity2. Architecture and Risk Resolution3. Precedentedness4. Team Cohesion5. Development Flexibility
Project Size of 100,000 LOC
5 scaling factors contributing to Diseconomies of Scale1. Process Maturity2. Architecture and Risk Resolution3. Precedentedness4. Team Cohesion5. Development Flexibility
Project Size of 5,000,000 LOC
2.38
2.001.94
1.831.76
1.701.63 1.59 1.59 1.56 1.54 1.54 1.52 1.51 1.50 1.49 1.46 1.43 1.42 1.40
1.31
0.00
0.50
1.00
1.50
2.00
2.50
Project Size of 5,000,000 LOC
Cost Drivers
V.LOW LOW NOMINAL HIGH V.HIGH EX.HIGHPRODUCT RELY 0.75 0.88 1.00 1.15 1.40
DATA 0.94 1.00 1.08 1.16CPLX 0.70 0.85 1.00 1.15 1.30 1.65
COMPUTER TIME 1.00 1.11 1.30 1.66STOR 1.00 1.06 1.21 1.56VIRT 0.87 1.00 1.15 1.30TURN 0.87 1.00 1.07 1.15
PERSONNEL ACAP 1.46 1.19 1.00 0.86 0.71AEXP 1.29 1.13 1.00 0.91 0.82PCAP 1.42 1.17 1.00 0.86 0.70VEXP 1.21 1.10 1.00 0.90LEXP 1.14 1.07 1.00 0.95
PROJECT MODP 1.24 1.10 1.00 0.91 0.82TOOL 1.24 1.10 1.00 0.91 0.83SCED 1.23 1.08 1.00 1.04 1.10
Questions – refer to last page of handout1. For the above cost drivers to be multiplied together the underlying
assumption is that they must be independent of each other, does this sound reasonable?
2. If all cost drivers were at minimum value, what would be the product of the cost drivers?
3. If all cost drivers were at maximum value, what would be the product of the cost drivers?
4. Based on the results to the two questions above, what is the ratio between maximum and minimum possible predicted effort?
5. Does the possible range from maximum to minimum effort seem reasonable?
6. The SCED cost driver is unique in the above table - can you see, and explain, why?
7. COCOMO starts from estimate of size, subjective assessment of 15 (independent?) cost drivers (with values - on potentially a 6-point scale - based on 60+ datasets), to estimate effort. How much confidence should you have in the final estimate?