210 likes | 337 Views
E N D
1. Schopenhauer's Proof For Software: Pessimistic Bias In the NOSTROMO Tool (U) Dan Strickland
Dynetics Program Software Support
daniel.strickland@dynetics.com
2. 2 Overview (U) Background
Pessimism in Code Size
NOSTROMO Tool
NOSTROMO Demo
3. 3
4. 4 Background (U) In 2003, TPO and Dynetics presented a methodology on using Monte Carlo simulation and uncertainty in COCOMO II to estimate risk in estimates
In 2004, TPO and Dynetics presented updated methodologies to include Auto-Generated Code and other updates to NOSTROMO
A new methodology for estimating pessimistic size growth has been incorporated into NOSTROMO
5. 5 Boehm Horn Curve (U)
6. 6 Code Size Growth (U) Code size estimates (and subsequent cost/schedule estimates) are required long before software requirements are baselined and finalized
Code estimates grow to any number of factors:
Requirements Volatility
Auto-Generated Code
Poor Estimating Techniques
Many large, complex programs exhibit constant code size growth outside the boundaries of the horn curve
We define pessimism as extending the boundaries of the expected code size growth to historical limits with only growth potential things can only get worse
7. 7 Three Historical Projects Size Growth (U) Three projects that have completed development or are very near completion
Graphs represent code size estimates over time for new code and subsequent Effective SLOC
Graphs show growth realization in new and ESLOC growth over time
8. 8 Three Historical Projects Percentage Size Growth (U) Projects new code size grew 90-180% from original estimates
Projects ESLOC size grew 40-120% from original estimates
Programs exhibited extensive growth after Critical Design Review (CDR) during Coding and Unit Testing
Percentage growth is outside of the boundaries expected by the horn curve
9. 9 Pessimism Curve (U) Plot the data points of the three projects in the same manner as the relative size of the horn curve
Assume that the ceiling for Pessimism is the final size x and the floor encompasses the most extreme data points
Where data is unavailable, use the horn curve values and some extrapolation if necessary
10. 10 Smoothed Pessimism Curve (U) Mapping the points of the pessimism curve against the horn curve show an exponential curve of greater growth potential
Using MS_Excel, we added an exponential trendline to smooth the pessimism curve and identify a formula for use (R-squared value = 0.9666)
Using the smoothed curve, we can calculate the ranges for our pessimism curve as tied to development phase
We used this new range (inverted) as boundary conditions for size in NOSTROMO
NOSTROMO uses a triangle distribution between high and low boundaries for size
11. 11 Original NOSTROMO Concept (U)
12. 12 New NOSTROMO Concept (U)
13. 13 Distributions of Uncertainty (U)
14. 14 NOSTROMO Application (U) Microsoft Excel 2002 worksheet with attached macros and Visual Basic code
Currently on version 0.3.15 (as of 10/19/06)
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
15. 15 NOSTROMO Input Sheet Notional Data (U)
16. 16 NOSTROMO Pessimism Worksheet (U)
17. 17 NOSTROMO Outputs 5000 SLOC (U)
18. 18 NOSTROMO Outputs 500000 SLOC (U)
19. 19 Demonstration
20. 20 Future NOSTROMO Additions and Efforts (U) Addition of Exception Conditions from Ray Madachys 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
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)
21. 21 Conclusion (U) Software size in many development environments has a tendency to grow, even late into the project development
Software estimates need to address any pessimistic growth potentials and software estimators have an obligation to report the risks associated with developments that continue to grow in size
New NOSTROMO methodology incorporates pessimistic sizing data to predict the worst-case scenario