ops CONSULTING CodeMetrics An Extensible Tool for Code Counting Presented at the 21st International Forum on COCOMO and Software Cost Modeling
ops CONSULTING What’s the problem? “… vast majority of projects are over budget and over schedule …”
ops CONSULTING Reason? Basing estimates on historic actuals is the most accurate way to estimate future activity Cost and schedule analysts traditionally do not have this valuable information when they need it the most But
ops CONSULTING Estimating During Program Life Cycle Program Life Cycle Gross Estimates Detailed Estimates Analogy Parametric [Extrapolation From] Actuals Engineering [Build-Up] Concept & Technology Development System Development & Demonstration Production & Deployment Operations & Support Chart #300R4, Defense Systems Management College (DSMC), 2001
ops CONSULTING Typical Period Where Estimates are Generated Program Life Cycle Gross Estimates Detailed Estimates Analogy Parametric [Extrapolation From] Actuals Engineering [Build-Up] Concept & Technology Development System Development & Demonstration Production & Deployment Operations & Support Chart #300R4, Defense Systems Management College (DSMC), 2001
ops CONSULTING There is a need to shift this estimating cycle to improve cost and schedule estimates… Chart #300R4, Defense Systems Management College (DSMC), 2001 Program Life Cycle Gross Estimates Detailed Estimates Analogy Parametric [Extrapolation From] Actuals Engineering [Build-Up] Concept & Technology Development System Development & Demonstration Production & Deployment Operations & Support Make a Shift
ops CONSULTING How do you shift the estimating methodology? Quantify the organization’s own portfolio of software in order to: –Create historically accurate analogies –Calibrate parametric tools –Solidify the basis of estimate for engineering build-ups
ops CONSULTING Cataloging Existing Software is the Starting Point for Quantifying a Software Portfolio Since there were no tools available to do all this, we built our own: CodeMetrics How Do You Quantify a Software Portfolio? Identify software assets –SLOC –Languages –Quality Observe project structure Identify project artifacts –Documentation –CM trails most parametric tools based on SLOC
ops CONSULTING What does CodeMetrics Catalog? DSI Delivered Source Instructions (DSI) The delivered source instructions include all program instructions created by the project personnel and processed into machine code Comments Blank Lines Dense Comments Total Lines Files Directories
ops CONSULTING CodeMetrics Usage Consulting agreement with Government agency to evaluate software portfolio metrics –All software assets in a portfolio, not just primary programmatic language GOTS Open Source Utilize OPS’s Quality Assessment Capability (QAC) 170 MSLOC
ops CONSULTING Current Market Many Language SLOC Count (David Wheeler) Code Count (CSE USC) Code Counter Pro (Geronesoft) EZ-Metrix (James Heires Consulting) SLOC Metrics (Microguru) One/Few Language C/C++ SLOC Counter (retiSoft) Java NCSS (Clemens) LOCC (CSDL U of Hawaii) Project Line Counter (Solomon) Resource Standard Metrics (M Squared Technologies) Toad (Quest Software) Reengineering Tools Understand (STI) McCabe (McCabe)
ops CONSULTING Issues with Current Tools Not Easily Extensible Mainly Preeminent Languages Often Not Plug&Play Non-Standard Counting Rules
ops CONSULTING CodeMetrics Standard View
ops CONSULTING CodeMetrics Execution
ops CONSULTING CodeMetrics Text Viewer
ops CONSULTING CodeMetrics Backfire
ops CONSULTING CodeMetrics Basic COCOMO
ops CONSULTING CodeMetrics Designate CSCIs
ops CONSULTING CodeMetrics COCOMO II
ops CONSULTING CodeMetrics Extensions
ops CONSULTING Questions/Comments
ops CONSULTING How to Contact OPS Greg Foley, President Paul Wetzel, CTO OPS Consulting, L.L.C Martins Grant Court Crownsville, MD