Load Bearing Walls: Early Sizing Estimation In The UNCLASSIFIED

advertisement
UNCLASSIFIED
07T-1552.01
Load Bearing Walls: Early Sizing Estimation In The
NOSTROMO Tool (U)
Brandon Gautney
Dynetics Program Software Support
brandon.gautney@dynetics.com
Dan Strickland
Dynetics Program Software Support
daniel.strickland@dynetics.com
Approved for Public Release 07-MDA-2965 (26 OCT 07)
Ashley Mathis
THAAD Project Office System Software Engineering
ashley.mathis@mda.mil
UNCLASSIFIED
DISTRIBUTION STATEMENT A – Approved for public release; distribution is unlimited.
UNCLASSIFIED
07T-1552.02
Overview (U)
• Background
• Area of Opportunity
• Heuristic Model
• Subcomponent Weight
• Complexity Weight
• NOSTROMO Concept
• NOSTROMO Additions
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
2
UNCLASSIFIED
07T-1552.03
Background (U)
• Size estimation is the cornerstone to software development cost
estimation and a mandatory input to most calibrated estimation
models
• Accurately estimating software size early in development would
provide better cost estimates
• Some organizations don’t have large databases of completed
projects to estimate by analogy
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
3
UNCLASSIFIED
07T-1552.04
Boehm Horn Curve (U)
• Size (and effort) should
converge over time
relative to development
phase
• During Concept of
Operation, estimates can
be 50% to 200% of the
actual final size
[Ref (1) - SOFTWARE COST ESTIMATION WITH COCOMO II (P 10) - BOEHM 2000]
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
4
UNCLASSIFIED
07T-1552.05
Area of Opportunity (U)
• Area between Concept
of Operations and
Requirements
Specification when early
size estimation is key
4x
2x
• Early sizing method
needs to have accuracy
within this area
1.5x
1.25x
x
0.5x
0.25x
Approved for Public Release 07-MDA-2965 (26 OCT 07)
Concept of
Operations
Requirements
Spec
Preliminary
Design Spec.
UNCLASSIFIED
Detailed
Design Spec.
Qualified
Software
5
UNCLASSIFIED
07T-1552.06
Roetzheim Heuristic Model (U)
Approximate Value for Function Points (FP):
FPs = (ValueSCOPE + ValueCLASS + ValueTYPE) 2.35
Function
Object
Object Library
Proof of Concept
Evolutionary Prototype
Internal Application
External Application
Shrink-Wrap Application
Component of System
New System
Compound System
1
2
4
5
6
8
9
10
11
12
13
Project Scope Table
Individual Use
Shareware
Academic/Engineering
Single Location -Internal
Multilocation - Internal
Contract Project - Civilian
Contract Project - Local Government
Marketed Commercially
State Government
State Government - Federally Funded
Federal Project
Military Project
Project Class Table
1
2
3
5
6
7
8
9
11
13
14
15
No Programming (4GL/Drag and Drop)
Batch
3GL Programming
Embedded - Single Board
Database Oriented
Client - Server
Mathematical
Systems
Communications
Process Control
Embedded - Multi Board
Embedded - Complete System
Social Service
1
2
4
5
6
8
9
10
11
12
13
14
15
Project Type Table
Roetzheim, William. “Estimating and Managing Project
Scope for New Development.”Cross Talk April 2005
• Project taxonomies are a method for estimating Function Points (FP)
• Function Points are a language independent approach for estimating software
development effort
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
6
UNCLASSIFIED
07T-1552.07
Heuristic Model Results
Projects Parameters
Project 1
Project 2
Project 3
Language
Project Scope
Project Class
Project Type
C++
Ada 95
C++
Component of System
Component of System
Component of System
Military Project
Military Project
Military Project
Systems
Embedded - Multi Board
Embedded - Multi Board
Results
Project 1
Project 2
Project 3
Total
Actual New KSLOC
Estimated New KSLOC
Fraction
Delta
75.00
403.65
455.75
934.40
240.76
268.66
290.59
800.00
3.21
0.67
0.64
0.86
221%
-33%
-36%
-14%
• Most large, complex programs use SLOC as system of delivery for their
sizing metrics
• “Backfiring” is a method for converting FPs to an estimated corresponding
number of Software Lines of Code (SLOC)
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
7
UNCLASSIFIED
07T-1552.08
Heuristic Model Results (cont’d)
4x
Project
Totals
Area of Opportunity
1
2x
1.5x
1.25x
x
2
3
0.5x
0.25x
Concept of
Operations
Requirements
Spec
Preliminary
Design Spec.
Detailed
Design Spec.
Qualified
Software
• Projects 2 & 3 are within acceptable boundaries of the Area of Opportunity.
• Project estimated totals are within 14% of the actual size.
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
8
UNCLASSIFIED
07T-1552.09
Subcomponents (U)
Subcomponents
Description
Weight
Few
Nominal
Many
1 - 4 Software Subcomponents
5 - 8 Software Subcomponents
9+ Software Subcomponents
0.67
1.00
1.33
Approximate Value for Function Points (FP):
FPs = (ValueSCOPE + ValueCLASS + ValueTYPE) 2.35 * (WeightSUBCOMPONENT)
Project Parameters
Project 1
Project 2
Project 3
Language
Project Scope
Project Class
Project Type
Subcomponents
C++
Ada 95
C++
Component of System
Component of System
Component of System
Military Project
Military Project
Military Project
Systems
Embedded - Multi Board
Embedded - Multi Board
Few
Many
Nominal
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
9
UNCLASSIFIED
07T-1552.10
Heuristic Model With Subcomponents Results
Actual New KSLOC
Estimated New KSLOC
Fraction
Delta
75.00
403.65
455.75
934.40
161.31
357.31
290.59
809.21
2.15
0.89
0.64
0.87
115%
-11%
-36%
-13%
Project 1
Project 2
Project 3
Total
4x
Project
Totals
Area of Opportunity
1
2x
1
1.5x
1.25x
x
2
2
3 3
0.5x
0.25x
Concept of
Operations
Requirements
Spec
Preliminary
Design Spec.
Detailed
Design Spec.
Qualified
Software
• Heuristic Model performance improves when coupled with Subcomponent Weight.
• Projects 2 & 3 are within acceptable boundaries of the Area of Opportunity.
• Project estimated totals are within 13% of the actual size.
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
10
UNCLASSIFIED
07T-1552.11
Complexity (U)
Complexity Adjustments
Problem
Complexity
1-5
Sum of Problem, Data,
and Code Complexity Scores
Code Size
Adjustment Calculators
3
4
5
6
7
8
9
10
11
12
13
14
15
0.70
0.75
0.80
0.85
0.90
0.95
1.00
1.05
1.10
1.15
1.20
1.25
1.30
1-5
Code
Complexity
1-5
Data
Complexity
Jones, Capers T. Estimating Software Cost. New York: McGraw Hill,1998.
Approximate Value for Function Points (FP):
FPs = (ValueSCOPE + ValueCLASS + ValueTYPE) 2.35 * (WeightCOMPLEXITY)
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
11
UNCLASSIFIED
07T-1552.12
Heuristic Model With Complexity Results
Project Parameters
Project 1
Project 2
Project 3
Problem Complexity
Code Complexity
Majority of simple algorithms and calculations
Some difficult and complex calculations
Some difficult and complex calculations
Well Structured (small models and simple paths)
Fair structure, but some complex paths or models
Fair structure, but some complex paths or models
Data Complexity
Sum of Complexity
Complexity Adjustment
Multiple files, switches and data interactions
Complex data elements and complex data interactions
Very complex data elements and complex data interactions
8
12
13
0.95
1.15
1.20
Results
Project 1
Project 2
Project 3
Total
Actual New KSLOC
Estimated New KSLOC
Fraction
Delta
75.00
403.65
455.75
934.40
228.72
308.95
348.71
886.38
3.05
0.77
0.77
0.95
205%
-23%
-23%
-5%
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
12
UNCLASSIFIED
07T-1552.13
Heuristic Model With Complexity Results
(cont’d)
4x
Project
Totals
Area of Opportunity
1
1
2x
1.5x
1.25x
x
2 3
2
3
0.5x
0.25x
•
•
•
Concept of
Operations
Requirements
Spec
Preliminary
Design Spec.
Detailed
Design Spec.
Qualified
Software
Heuristic Model performance is slightly improved when coupled with Complexity Weight.
Projects 2 & 3 are within acceptable boundaries of the Area of Opportunity.
Project estimated totals are within 5% of the actual size.
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
13
UNCLASSIFIED
07T-1552.14
Complete Heuristic Model
- Combined Heuristic Model with Subcomponent Weight and Complexity Weight
Project Parameters
Project 1
Project 2
Project 3
Language
Project Scope
Project Class
Project Type
C++
Ada 95
C++
Component of System
Component of System
Component of System
Military Project
Military Project
Military Project
Systems
Embedded - Multi Board
Embedded - Multi Board
Subcomponents
Complexity Adjustment
Few
Nominal
Many
0.95
1.15
1.20
Approximate Value for Function Points (FP):
FPs = (ValueSCOPE + ValueCLASS + ValueTYPE) 2.35 * (WeightSUBCOMPONENT) * (WeightCOMPLEXITY)
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
14
UNCLASSIFIED
07T-1552.15
Complete Heuristic Model Results
- Combined Heuristic Model with Subcomponent Weight and Complexity Weight
Actual New KSLOC
Estimated New KSLOC
Fraction
Delta
75.00
403.65
455.75
934.40
153.24
410.91
348.71
965.38
2.04
1.02
0.77
1.03
104%
2%
-23%
3%
Project 1
Project 2
Project 3
Total
4x
Project
Totals
Area of Opportunity
1
2x
1
1.5x
1.25x
x
2
3
2
3
0.5x
0.25x
•
•
•
Concept of
Operations
Requirements
Spec
Preliminary
Design Spec.
Detailed
Design Spec.
Qualified
Software
Heuristic Model performance improves when coupled with Subcomponent Weight and Complexity Weight.
Projects 2 & 3 are within acceptable boundaries of the Area of Opportunity.
Project estimated totals are within 3% of the actual size.
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
15
UNCLASSIFIED
07T-1552.16
Original NOSTROMO Concept (U)
Notional Obscurity STatistical Risk Observation MOdel
DATA
PAGE
NEWT
NOSTROMO
REPORTS
• NOSTROMO first takes normal COCOMO II inputs
• NOSTROMO accounts for uncertainty in the settings
• NOSTROMO uses Monte Carlo to simulate hundreds of
COCOMO II estimates using the inputs and uncertainties
• NEWT – NOSTROMO Entry Writing Tool – a Delphi
polling tool that captures Uncertainty
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
16
UNCLASSIFIED
07T-1552.17
New NOSTROMO Concept (U)
PESSIMISM
AGC
CALCULATOR
NEWT
DATA
PAGE
NOSTROMO
DEFAULT
UNCERTAINTY
EARLY SIZE
ESTIMATION
REPORTS
COMBINATION
NOSTROMO 0.3.16 offers:
• multiple methods for inputting Uncertainty
• combination of subcomponents
• AGC methodology
• Pessimistic SLOC estimation
• Early Size Estimation
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
17
UNCLASSIFIED
07T-1552.18
NOSTROMO Input Sheet – Notional Data
(U)
SI Name
Input
Software Item NamePREC
Scale Factors
Cost Drivers
Iterations
Putnam Productivity
Uncertainty
UncVal
Low Uncertainty
2
2
FLEX
RESL
TEAM
Low Uncertainty
Low Uncertainty
2
2
2
2
2
2
PMAT
Low Uncertainty
2
2
284161 Plans and Requirements 2
2
REVL
Low Uncertainty
2
2
ADAPTED CODE
Low Uncertainty
2
2
% DESIGN MOD
Low Uncertainty
2
2
% CODE MOD
Low Uncertainty
2
2
% TEST MOD
Low Uncertainty
2
2
Assessment and Adaptation
Low Uncertainty
2
2
Software Understanding
Low Uncertainty
2
2
Unfamiliarity with Software
Low Uncertainty
2
2
TIME
Low Uncertainty
2
2
STOR
Low Uncertainty
2
2
PVOL
Low Uncertainty
2
2
RELY
Low Uncertainty
2
2
DATA
Low Uncertainty
2
2
CPLX
Low Uncertainty
2
2
RUSE
Low Uncertainty
2
2
DOCU
Low Uncertainty
2
2
ACAP
Low Uncertainty
2
2
APEX
Low Uncertainty
2
2
PCAP
Low Uncertainty
2
2
PLEX
Low Uncertainty
2
2
LTEX
Low Uncertainty
2
2
PCON
Low Uncertainty
2
2
TOOL
Low Uncertainty
2
2
SITE
Low Uncertainty
2
2
SCED
Low Uncertainty
2
2
NEW CODE
Code Size
Rating
Number of Iterations
Putnam Technology Rating
Approved for Public Release 07-MDA-2965 (26 OCT 07)
Low Uncertainty
Clear Page
AGC Calculator
NEWT
Function Buttons
FALSE
Run SI
Combine Project
Pessimism
Worksheet
Default
Uncertainty
Delete Project
Early Sizing
PESSIMISM
Early Size Estimation
Pessimism Toggle
Conditional
Formatting
500
Low Uncertainty
2
UNCLASSIFIED
18
UNCLASSIFIED
NOSTROMO Early Size Estimation Worksheet –
Notional Data (U)
07T-1552.19
Early
Sizing
Language
Project Scope
Heuristic
Project Class
Model
Project Type
Ada 95
Component of System
Military Project
Communications
Weight Subcomponents
Many (9+ Subcomponents)
Problem Complexity
Weight Code Complexity
Data Complexity
Majority of simple algorithms and simple calculations
Well structured (small modules and simple paths)
Several data elements, but simple data relationships
Approximate Value for FPs:
Estimated New SLOC:
5,799
284,161
Subcomponent TRUE
Weight
1.33
Complexity Weight
TRUE
0.9
Copy to Main
Return to Main
Instructions: Enter Projected development language, heuristic model data, subcomponent data, and complexity data in drop down boxes above.
To use weighting, click appropriate box(es). Select "Add To Estimate" to use Early Sloc estimate or "Return" to return to data sheet without.
• Allows the user the option to use the Weighted Subcomponents and Weighted
Complexity with the Heuristic Model in NOSTROMO to calculate Function
Points.
• Heuristic Model estimates the number of Function Points and Backfires them
into SLOC.
• Allows the user to copy the results into NOSTROMO Input Sheet.
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
19
UNCLASSIFIED
07T-1552.20
NOSTROMO Outputs – Notional Data (U)
410 KSLOC – ESLOC vs. Effort
410 KSLOC – Estimated SLOC
Effort
6637.14
5345.51
4763.02
3927.86
3745.03
3436.15
3170.52
2925.42
2559.20
2426.91
2110.46
1880.49
1514.53
3028.34
Schedule
58.47
54.48
52.47
49.27
48.51
47.17
45.95
44.76
42.85
42.11
40.24
38.75
36.11
45.27
Size
Productivity EAF
1054990
158.95
1.60
890723
166.63
1.44
813874
170.87
1.36
699971
178.21
1.24
674359
180.07
1.21
630457
183.48
1.16
592011
186.72
1.11
555909
190.03
1.07
500702
195.65
1.00
480344
197.92
0.97
430628
204.04
0.91
393474
209.24
0.86
332209
219.35
0.77
603525
199.29
1.04
Language
Project Scope
Heuristic
Project Class
Model
Project Type
Project _Data - ESLOC vs. Effort
8000
7000
6000
Effort
Percentile
99%
95%
90%
75%
70%
60%
50%
40%
25%
20%
10%
5%
1%
Default
5000
4000
3000
2000
1000
0
0
200000 400000 600000 800000 1E+06 1E+06
ESLOC
Ada 95
Component of System
Military Project
Embedded - Multi Board
Weight
Subcomponents
Many (9+ Subcomponents)
Weight
Problem Complexity
Code Complexity
Data Complexity
Some difficult and complex calculations
Fair structure, but some complex paths or modules
Complex data elements and complex data interactions
Approximate Value for FPs:
Estimated New SLOC:
8,386
410,911
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
20
UNCLASSIFIED
07T-1552.21
Demonstration
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
21
UNCLASSIFIED
Future NOSTROMO Additions and Efforts
(U)
07T-1552.22
• Addition of Exception Conditions from Ray Madachy’s Expert COCOMO
• Transition to an application environment (MS-Access or .NET)
• Expansion of the NOSTROMO tool to address other COCOMO Family
models with uncertainties
•
•
COSYSMO – especially relevant in development of complex DoD systems
•
COQUALMO – Defect Prediction Models
COSOSIMO – System of Systems models are becoming increasingly prevalent
in DoD efforts
• Expansion of the NOSTROMO methodology and tool into Readiness Level
models
•
•
Software Readiness Levels (SWRL)
Technology Program Management Model (TPMM)
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
22
UNCLASSIFIED
07T-1552.23
Conclusion (U)
• Estimating software size accurately during the Area of Opportunity will
increase the fidelity of the estimate
• When analogous data is unavailable or unreliable, use of a heuristic
model can produce accurate metrics for size
• New NOSTROMO methodology incorporates code size estimate heuristic
model to provide better answers earlier
Early and accurate estimation of software size metrics
provides a method of true software cost estimation
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
23
UNCLASSIFIED
07T-1552.24
BACKUP
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
24
UNCLASSIFIED
07T-1552.25
Distributions of Uncertainty (U)
Level 1 - Certain
NOSTROMO assumes ceiling
and floor limits of the highest
and lowest default values for
each COCOMO II Scale Factor
and Cost Driver
Level 2 - Low Uncertainty - Normal
Level 3 - Medium Uncertainty - Triangle
Level 4 - High Uncertainty - Uniform
Setting n
Setting n+1
Setting n-1
NOSTROMO changes the distribution and sets the high and low
points based on the level of uncertainty with each factor
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
25
UNCLASSIFIED
07T-1552.26
NOSTROMO Application (U)
• Microsoft Excel worksheet with attached macros and Visual
Basic code
• Currently on version 0.3.16 (as of 10/17/07)
• Does not use outside applications for Monte Carlo simulation
(standard random number generation from Visual basic)
• Limited testing performed on a proof-of-concept application
• Suggest limiting Monte Carlo run size to 500-2000 runs
• Generates two pages of output – Data and Charts
• Data page contains all outputs from Monte Carlo simulation,
charting data, and histograms
• Charts page contains Confidence Intervals for output of
COCOMO II and Putnam models, charts, and histograms
• NOSTROMO – Data Sheet and CM Control Sheet are
Developer pages and should not be removed
Approved for Public Release 07-MDA-2965 (26 OCT 07)
UNCLASSIFIED
26
Download