Software Cost Estimation Metrics Manual For Defense Systems
Software Cost Estimation Metrics Manual For Defense Systems
Activities
Effort =
A · SizeB
.
Duration
i
Editors
⃝
c 2015 Software Metrics Inc.
All rights reserved. The Software Cost Estimation Metrics Manual for Defense Systems
may be used for non-commercial purposes. Users may access, download, copy, translate,
text mine or data mine, and include it in a collective work, as long as they credit the
authors and provided they do not alter or modify it. The book can be cited as:
ISBN 978-0-9904787-0-6
Many people and institutions supported this manual and made it possible.
We thank the numerous reviewers for valuable feedback and suggestions on
earlier wiki versions. Reviews were provided both online formally and dur-
ing workshops. Forty-eight workshop participants helped guide our research
and improve this material hosted by the University of Southern California
Center for Systems and Software Engineering (USC CSSE) for several years,
the Massachusetts Institute of Technology Engineering Systems Division, and
the Carnegie Mellon University Software Engineering Institute. The DoD-
sponsored Cyber Security and Information Systems Information Analysis Cen-
ter and Quanterion Solutions also helped support this work and hosted web
seminars.
The external reviewers for this edition were:
iii
Reifer Consultants for their support and collaboration effort. Dave Olwell
from Naval Postgraduate School and Lori Vaughn from Northrop Grumman
also helped us with the manual.
Wilson Rosa initiated the research for this manual while at the Air Force
Cost Analysis Agency (AFCAA) to help improve software cost estimation
practices for analysts and decision makers across the DoD community collab-
oratively. He worked tirelessly bridging disparate stakeholders. The research
was also supported by the Systems Engineering Research Center (SERC) un-
der Contract H98230-08-D-0171, and the US Army Contracting Command,
Joint Munitions & Lethality Center, Joint Armaments Center, Picatinny Ar-
senal, NJ, under RFQ 663074. These research results have been approved for
public distribution.
Contributors
Barry Boehm
University of Southern California
Los Angeles, California
Bradford Clark
Software Metrics Inc.
Haymarket, Virginia
Joseph Dean
Air Force Cost Analysis Agency
Washington, DC
Cheryl Jones
US Army Armament Research Development and Engineering Center
Picatinny Arsenal, New Jersey
Raymond Madachy
Naval Postgraduate School
Monterey, California
John McGarry
US Army Armament Research Development and Engineering Center
Picatinny Arsenal, New Jersey
Wilson Rosa
Naval Center for Cost Analysis
Washington, DC
v
vi
Preface
This manual transitions our research analyzing and improving software devel-
opment cost metrics reported with the United States Department of Defense
(DoD) Software Resource Data Report (SRDR). The goal is to create cost
estimating relationship (CER) models and productivity benchmarks based on
consistent metrics definitions, and provide guidance in their usage. It is pri-
marily intended for DoD software cost analysts at different levels from entry
level to seasoned experts. Cost analysts and program management in related
and similar application domains will also find it useful.
It includes a description of the metrics data that the SRDR instruments;
how to inspect and normalize it for consistency; and characterizes the CERs
and productivity benchmarks derived from the current data. Readers can gain
useful lessons learned from analyzing the metrics, some of which were used to
improve the data reporting requirements.
The manual covers in detail the core metrics definitions relevant to re-
porting and analyzing DoD cost data. These standardized software metrics
enable a consistent description of the data used in creating CERs. It illus-
trates the steps involved in normalizing SRDR data or software metrics in
similar domains. There is a comprehensive discussion on modern estimating
challenges that provides guidance for applying CERS on actual and upcom-
ing DoD programs. The full thread of the program software cost estimation
process is overviewed including data reporting and CER usage.
This evolving research will continue with additional program data con-
tinuously collected in the Defense Automated Cost Information Management
System (DACIMS) that we analyze from, and there will be further improve-
ments in the reporting. The SRDR data requirements are periodically revisited
in the DoD and updated to collect valuable and higher quality data. The in-
tent is to keep this manual relevant with future editions incorporating new
results.
This book has a companion web site at http://softwarecost.org for sup-
plemental resources, content updates and errata. Readers can also submit
comments and improvement suggestions.
vii
viii
List of Figures
ix
x
xiii
xiv
1 Introduction 1
1.1 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Estimation and Metrics Processes . . . . . . . . . . . . . . . 2
1.2.1 Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Usage Scenarios . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Cost Estimating Relationship Approach . . . . . . . . . . . . 5
1.4 Manual Contents . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 Metrics Definitions 19
3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Product Size Measures . . . . . . . . . . . . . . . . . . . . . 19
3.2.1 Source Lines of Code (SLOC) . . . . . . . . . . . . . . 19
3.2.1.1 SLOC Type Definitions . . . . . . . . . . . . 19
3.2.1.2 SLOC Counting Rules . . . . . . . . . . . . . 21
3.2.2 Equivalent Size . . . . . . . . . . . . . . . . . . . . . . 23
3.2.2.1 Purpose in Estimating . . . . . . . . . . . . . 24
3.2.2.2 Adapted SLOC Adjustment Factors . . . . . 25
3.2.2.3 Total Equivalent Size . . . . . . . . . . . . . 26
3.2.2.4 Volatility . . . . . . . . . . . . . . . . . . . . 26
3.3 Functional Size Measures . . . . . . . . . . . . . . . . . . . . 26
xv
xvi
4 Data Assessment 33
4.1 Gather Collected Data . . . . . . . . . . . . . . . . . . . . . 34
4.2 Inspect each Data Record . . . . . . . . . . . . . . . . . . . . 34
4.3 Determine Data Quality Levels . . . . . . . . . . . . . . . . . 36
4.4 Correct Missing or Questionable Data . . . . . . . . . . . . . 38
4.5 Normalize Size and Effort Data . . . . . . . . . . . . . . . . 38
4.5.1 Converting to Logical SLOC . . . . . . . . . . . . . . 38
4.5.2 Standardizing Effort . . . . . . . . . . . . . . . . . . . 39
4.6 Convert Raw SLOC into Equivalent SLOC . . . . . . . . . . 40
4.7 Future Work and Limitations . . . . . . . . . . . . . . . . . . 42
Bibliography 223
Index 229
xx
Chapter 1
Introduction
1.1 Purpose
This metrics manual helps analysts and decision makers develop accurate,
easy and quick early software cost estimates for different types of systems and
operating environments oriented for the United States Department of Defense
(DoD) and government agencies in related domains. The intent is to improve
quality and consistency of early software estimating methods across govern-
ment cost agencies and program offices through guidance, standardization,
and knowledge sharing.
These defense environments may be sea, air, space, or ground-based like the
typical examples in Figure 1.1. We have analyzed empirical software cost data
for these types of programs and are transitioning the results back in this open
access manual. Furthermore we describe our processes for data normalization,
analysis, derivation of Cost Estimating Relationships (CERs) and productivity
benchmarks.
These processes depend on data submittals from executing programs that
adhere to standardized metrics definitions. This submission is the Software
Resources Data Report (SRDR). The responsibility to submit consistent and
complete SRDRs is incumbent on programs for the continuous metrics feed-
back loop to improve software cost estimation in the DoD. This manual il-
lustrates how standardized metrics reporting leads to better predictive cost
models.
These reported metrics are used to derive costs for future programs. This
manual follows the SRDR interpretation of cost as the amount of effort in
Person-Months required to develop the software. This can be used to generate
cost estimates based on time-varying labor rates in cost per person-month.
1
2 Software Cost Estimation Metrics Manual for Defense Systems
A B C
Materiel Technology Engineering and Production and Operations and
Solution Development Manufacturing Deployment Support
Analysis Development
DACIMS
Simple CERs Multi-Parameter CERs
Address
Collect Data Prepare Data Create CERs Challenges
Evolve CERs
The Program Estimation Process in Figure 1.2 supports the ongoing pro-
gram estimates depicted by vertical arrows up to the DAMS. These esti-
mates become increasingly detailed with better knowledge over time. Rela-
tively simple CERs are used in early phases because little is known about
the future design and implementation of the software. As a program pro-
ceeds through development, production and deployment, more information
is available so multi-parameter CERs (e.g. detailed cost models) are used to
provide estimates-to-complete and track progress. These CERs incorporating
additional factors correspond to increased knowledge of the program.
The Program Estimation Process has an Assessment activity which in-
cludes deciding the best CER to apply. Available to be used are the simple
CERs derived from SRDRs in this manual, or multi-parameter CERs corre-
sponding to the detailed cost models also described herein.
The Software Cost Estimation Metrics Process described in this manual
operates with both other major processes. It uses the empirical SRDR data
collected from programs transitioning through the DAMS as input data. The
collected SRDRs which are stored in the DACIMS are made available to gov-
ernment cost analysts. This data is then prepared by normalizing it to stan-
4 Software Cost Estimation Metrics Manual for Defense Systems
dardized metric definitions. Simple CERs are created from the data and used
in the Program Estimation Process. The same metrics definitions also underpin
the multi-parameter CERs which support the Program Estimation Process.
Important metrics feedback loops are also illustrated in Figure 1.2. An
overall feedback loop includes the submission of SRDRS to the DACIMS repos-
itory being analyzed for future program estimates. Those programs eventually
execute and provide ongoing data for continuous CER calibration. Within the
software cost estimation metrics process there is a continuous feedback loop
for evolving CERs. This happens due to ongoing analysis of current data com-
bined with new data submittals. The program estimation process is inherently
iterative and the results are fed back to earlier phases in the estimation pro-
cess. The iterations may repeat for successive estimates throughout a project’s
lifecycle.
1.2.1 Dataset
The analyses in this manual are based on 317 SRDRs reported from recent
DoD projects during 2004-2013. That raw data was normalized as described
later in this manual. A top-level view of the normalized dataset across the ser-
vices is shown in Fig. 1.3. Cost is expressed as Person-Months plotted against
software size in Thousand Equivalent Source Lines of Code (KESLOC) pre-
sented in logarithmic scale. This normalized data was then segmented by
application type (described in Chapter 5) to develop the CERs, whereby cost
is predicted as a function of size.
10000
1000
Person-Months
100
. Navy.
10 . Army .
. Air Force
.
1. .
1 10 100 1000
KESLOC
SRDR
The SRDR is discussed first since the collected data on these reports un-
derpins the analysis in this manual. It describes what the data consists of and
when it is reported. It is important to understand the SRDR because this
defines what the CERs cover. This chapter covers:
Metrics Definitions
The next step is preparing the data for analysis and ensuring consistency.
The metrics must be defined in a standard way before doing anything with the
data. This chapter covers baseline definitions used to assess the homogeneity
of the data collected. When the analysis step begins, the data needs to be as
comparable as possible for apples to apples comparison.
Metric definitions also define the inputs and outputs of the CERs. An
awareness of the metric definitions is very important to prevent misuse of the
CERs, and it also supports data collection activities.
Data Assessment
With an understanding of the data sources and metric definitions, this
chapter covers the assessment of the data for use in analysis. Missing data is
removed. The completeness of the data is assessed. Each data record is com-
pared to the metric definitions and, where necessary, data is transformed to
Introduction 7
Appendices
A detailed appendix is included on additional parametric cost model de-
scriptions. These cost models are applicable for detailed estimates when more
is known later in the lifecycle. Also included are appendices on MIL-STD-881C
Work Breakdown Structure (WBS) mapping, code counting, nomograms for
each CER, and acronyms found in this manual.
8 Software Cost Estimation Metrics Manual for Defense Systems
Chapter 2
Software Resources Data Report
2.1 Overview
The Software Resources Data Report (SRDR) is used to obtain both the
estimated and actual characteristics of new software developments or upgrades
[44]. Both the Government program office and, after contract award, the soft-
ware contractor submit this report. For contractors, this report constitutes a
contract data deliverable that formalizes the reporting of software metric and
resource data.
SRDR submittals are required for all contractors developing or producing
any software development element with a projected software effort greater
than $20M (then year dollars) on major contracts and subcontracts within
ACAT I and ACAT IA programs, regardless of contract type. The data collec-
tion and reporting applies to developments and upgrades whether performed
under a commercial contract or internally by a government Central Design Ac-
tivity (CDA) under the terms of a Memorandum of Understanding (MOU).
Table 2.1 summarizes the reporting events.
9
10 Software Cost Estimation Metrics Manual for Defense Systems
Report
Event Due Who Provides Scope of Report
Pre-Contract Initial Government Estimates of the entire
(180 days prior Program Office completed project. Mea-
to award) sures should reflect cumu-
lative grand totals.
2.3 Repository
The DCARC’s Defense Automated Cost Information Management System
(DACIMS) is the database for access to current and historical cost and soft-
ware resource data needed to develop independent, substantiated estimates.
DACIMS is a secure website that allows DoD government cost estimators and
analysts to browse through almost 30,000 CCDRs, SRDR and associated doc-
Software Resources Data Report 11
uments via the Internet. It is the largest repository of DoD cost information.
2.4.1 Ramifications
It is very important to understand the submission criteria because there
are critical ramifications. SRDR records are a mixture of complete contracts
and individual builds within a contract. These must be distinguished in the
reporting. Furthermore, each has initial and final reports along with correc-
tions. Mixing contract data and build data or mixing initial and final results
or not using the latest corrected version will produce inconclusive and possibly
incorrect results.
• Type Action
– Contract No
– Latest Modification
– Solicitation No
– Common Reference Name
– Task Order / Delivery Order / Lot No
• Period of Performance
– Start Date (YYYYMMDD)
– End Date (YYYYMMDD)
• Appropriation (RDT&E, Procurement, O&M)
• Submission Number
• Resubmission Number
• Report As Of (YYYYMMDD)
• Date Prepared (YYYYMMDD)
• Point of Contact
– Name (Last, First, Middle Initial)
– Department
– Telephone Number (include Area Code)
Software Resources Data Report 13
– Email
– Development Organization
• Software Process Maturity
– Lead Evaluator
– Certification Date
– Evaluator Affiliation
– Hours per Staff-Month. Enter the number of direct labor hours per
staff-month.
• Personnel Experience in Domain. Stratify the project staff domain
experience by experience level and specify the percentage of project staff
at each experience level identified. Sample Format 3 identifies five levels:
– Very Highly Experienced (12 or more years)
– Highly Experienced (6 to 12 years)
– Nominally Experienced (3 to 6 years)
– Low Experience (1 to 3 years)
– Inexperienced / Entry Level (less than a year)
• Software Size.
– Delivered Size. Capture the delivered size of the product devel-
oped, not including any code that was needed to assist development
but was not delivered (such as temporary stubs, test scaffoldings,
or debug statements). Additionally, the code shall be partitioned
(exhaustive with no overlaps) into appropriate development cate-
gories. A common set of software development categories is new,
reused with modification, reused without modification, carry-over
code, deleted code, and auto-generated code.
Software Resources Data Report 15
The Final Developer Report shall contain actual schedules and actual total
effort for each software development activity.
3.1 Overview
This chapter defines software product size measures to support data consis-
tency and interpretation, used as input to cost estimation models and produc-
tivity analyses. These measures are used throughout the manual including for
data normalization, to derive CERs, productivity benchmarks and interpreted
for selected cost models.
19
20 Software Cost Estimation Metrics Manual for Defense Systems
changed then the entire component is classified as Modified even though most
of the lines remain unchanged. The total product size for the component will
include all lines.
COTS normally isn’t reported in the delivered size. However, COTS glue
code is often necessary. It should be included and used for estimation.
Open source software is handled, as with other categories of software,
depending on the context of its usage. If it is not touched at all by the devel-
opment team it can be treated as a form of COTS or reused code. However,
when open source is modified it must be quantified with the adaptation pa-
rameters for modified code and be added to the equivalent size. The costs of
integrating open source with other software components should be added into
overall project costs.
Metrics Definitions 21
Physical Lines
The Physical SLOC count type is a count type where programming lan-
guage terminators or delimiters are counted. This count type excludes blank
lines in a source code file and includes everything else.
Total Lines
The Total SLOC count type includes a count of everything, including blank
lines.
Executables
Executable statements cause runtime actions. They may be simple state-
ments such as assignments, gotos, procedure calls, macro calls, returns, breaks,
exits, ends, stops, continues, nulls, no-ops, or empty statements. Or they may
be structured or compound statements, such as conditional statements, repet-
itive statements, and ”with” statements. Languages like Ada, C, C++, and
Pascal have block statements [begin ... end and {...}] that are classified as
executable when used where other executable statements would be permitted.
C and C++ define expressions as executable statements when they terminate
with a semicolon, and C++ has a declaration statement that is executable.
Declarations
Declarations are non-executable program elements that affect an assem-
bler’s or compiler’s interpretation of other program elements. They are used
to name, define, and initialize; to specify internal and external interfaces; to
assign ranges for bounds checking; and to identify and bound modules and
sections of code. Examples include declarations of names, numbers, constants,
objects, types, subtypes, programs, subprograms, tasks, exceptions, packages,
generics, macros, and deferred constants.
22 Software Cost Estimation Metrics Manual for Defense Systems
Nonexecutable
Declarations X X X X
Compiler directives X X X X
Comments X X X X
Blank lines X X X X
Flow Control
Logical expressions X X X X
If - Then - Else X X X X
Go-To, Break, Continue X X X X
Exception Handling X X X X
Flow Control Punctuation X X X X
Block Statements
Subprogram Label & X X X X
Delimiters
Procedure / Function X X X X
Label & Delimiters
Begin-End Blocks or X X X X
Punctuation
Block Punctuation X X X X
How Produced
Programmed New X X X X
Reused X X X X
Modified X X X X
Generated
Generator X X X X
statements
3GL generated
statements
In Maintenance X X X X
In Development X X X X
Converted X X X X
(continued )
Metrics Definitions 23
Compiler Directives
Compiler directives instruct compilers, preprocessors, or translators (but
not runtime systems) to perform special actions. Some, such as Adas
PRAGMA and COBOLs COPY, REPLACE, and USE, are integral parts
of the source language. In other languages like C and C++, special symbols
like # are used along with standardized keywords to direct preprocessor or
compiler actions. Still other languages rely on non-standardized methods sup-
plied by compiler vendors. In these languages, directives are often designated
by special symbols such as #, $, and {$}.
doing this. However, for non-traditional size categories (e.g., a model may not
provide inputs for auto-generated code), this manual will help the estimator
calculate equivalent size outside of the tool and incorporate the size as part
of the total equivalent size.
AAF assumes a linear effort relationship, but there can also be nonlinear ef-
fects. Data indicates that the AAF factor tends to underestimate modification
effort [51] [8] [53]. Two other factors used to account for these effects are Soft-
ware Understanding and Programmer Unfamiliarity. These two factors and
their usage are discussed in Appendix A.
3.2.2.4 Volatility
Volatility is requirements evolution and change, but not code thrown out.
To account for the added effort, volatility is expressed as an additional per-
centage to size to obtain the total equivalent size for estimation.
Internal Logical File (ILF) Count each major logical group of user
data or control information in the soft-
ware system as a logical internal file type.
Include each logical file (e.g., each logical
group of data) that is generated, used, or
maintained by the software system.
(EO), and External Inquiry (EQ)). See [22] for more detailed interpre-
tations of the counting rules for those quantities.
2. Determine complexity-level function counts. Classify each function count
into Low, Average and High complexity levels depending on the number
of data element types contained and the number of file types referenced.
The weights in Tables 3.5, 3.6 and 3.7 are used.
3. Apply complexity weights. Weight the number of function types at each
complexity level using the the weights reflecting relative effort required
to implement the function in Table 3.8.
4. Compute Unadjusted Function Points. Add all the weighted functions
counts to get one number, the Unadjusted Function Points.
The usual Function Point procedure involves assessing the degree of influ-
ence of fourteen application characteristics on the software project determined
28 Software Cost Estimation Metrics Manual for Defense Systems
TABLE 3.5: Function Point Counting Weights for Internal Logical Files and
External Interface Files
Record Data Elements
Elements 1 - 19 20 - 50 51+
1 Low Low Avg.
2-5 Low Avg. High
6+ Avg. High High
TABLE 3.6: Function Point Counting Weights for External Outputs and
External Inquiries
Data Elements
File Types 1 - 5 6 - 19 20+
0 or 1 Low Low Avg.
2-3 Low Avg. High
4+ Avg. High High
Data Elements
File Types 1 - 4 5 - 15 16+
0 or 1 Low Low Avg.
2-3 Low Avg. High
3+ Avg. High High
according to a rating scale of 0.0 to 0.05 for each characteristic. The 14 ratings
are added together, and added to a base level of 0.65 to produce a general
characteristic adjustment factor that ranges from 0.65 to 1.35. This is used as
a multiplier with UFP to obtain the Adjusted Function Point (AFP) count.
For consistency, not all of the cost models use this adjustment because they
already include cost factors for these.
The cost estimation models based on lines of code require conversion of
function points into to lines. This is also called backfiring. Conversion, or
backfiring ratios for different programming languages can be determined with
available historical data. It is recommended to determine your own ratios for
your local environment. Some sources for programming language conversion
factors include [19] and [22].
Metrics Definitions 29
Complexity Weight
Function Type Low Average High
Internal Logical Files 7 10 15
External Interfaces Files 5 7 10
External Inputs 3 4 6
External Outputs 4 5 7
External Inquiries 3 4 6
and managing the work-in-process. These include any prototyping and the
conduct of demonstrations during the development.
Transition to operations and operations and support activities are not
addressed by these analyses for the following reasons:
From a life cycle point-of-view, the activities comprising the software life
cycle are represented for new, adapted, reused, generated and COTS (Com-
mercial Off-The-Shelf) developments. Reconciling the effort associated with
the activities in the Work Breakdown Structure (WBS) across life cycle is
necessary for valid comparisons to be made between results from cost models.
• Project Managers
• Application Analysts
• Implementation Designers
• Programmers
• Testers
• Quality Assurance personnel
• Configuration Management personnel
• Librarians
• Database Administrators
• Documentation Specialists
• Training personnel
• Other support staff
Metrics Definitions 31
This chapter discusses transforming software engineering cost data into useful
information for use in creating Cost Estimating Relationships (CERs) and
productivity benchmarks for use in cost estimation and management over-
sight. There can be many challenges encountered when preparing cost data
for analysis. The list below shows common problems with cost datasets:
The remedy for some of these challenges is to find a way to normalize the
data to the definitions discussed in 3. Other techniques are required to fill in
missing data, either by consulting other sources or using statistical means or
medians to fill in missing values. A process workflow was developed to assess
the data and make it usable.
The data assessment and processing workflow has six steps. This workflow
was used in the analysis of the SRDR data by the contributors to this manual.
Each of these steps is described in detail in subsequent sections.
33
34 Software Cost Estimation Metrics Manual for Defense Systems
Project Context
∗ Acquisition Strategy
∗ Acquisition Support Plan (ASP)
∗ Contract Plan
∗ Cost Analysis Requirements Document (CARD)
∗ Capability Description Document (CDD)
∗ Software Requirements Specification (SRS)
∗ Work Breakdown Structure (WBS)
∗ Earned Value Management System data (EVMS)
∗ Software Development Plan (SDP)
∗ System Engineering Plan (SEP)
Next, the size, effort, schedule and productivity data for each record are
examined.
Size Data
Effort Data
The effort data are for the activities as discussed in Section 2.5.1.4.
Schedule Data
• Was there schedule compression mentioned on the project?
• Were there multiple parallel builds (same start and end date)?
Productivity Screening
Productivity is the ratio of size to effort as detailed in Section 5.5.1.
• Is a check of the productivity reasonably close to software with sim-
ilar functionality? Productivities for similar software functionality are
grouped by Application Type (discussed in Section 5.5.3).
• Is this record an outlier in a scatter plot with other similar data? This
check can only be done if you have access to the SRDR for the appro-
priate Application Type.
The activity data in the SRDR follows the ISO 12207 [25] processes for
software development. These are listed below. The ones covered by SRDR
data are in bold. This is the breadth of the CERs reported in this manual.
• System requirements analysis
• System architectural design
• Software requirements analysis
• Software architectural design
• Software detailed design
• Software coding and testing
• Software integration
• Software qualification testing
• System integration
• System qualification testing
• Software installation
• Software acceptance support
The SRDR effort hours also cover a number of labor categories. These
categories are discussed in the companion Data Dictionary. The different labor
categories in the SRDR data are shown in Table 4.2. Not all of the records
had all of the categories. However, the Software Engineering and Assessment
categories were reported for in each record.
When using a CER or any cost model, it is important to know the breadth
and depth of activities covered by the estimate.
Table 4.3 shows median values for DM, CM and IM derived from the subset
of SRDR data that had values for each factor. The median values were used
because the data was not normally distributed. The table shows the code type,
the number of data points, the range of DM, CM and IM values, the median
(Mdn.) value, and the resulting AAF value.
Code DM CM IM
Type # Range Mdn. Range Mdn. Range Mdn. AAF
New N/A N/A N/A 1.0
Modified 101 0-100% 31% 1-100% 44% 3-100% 72% 0.47
Reused 145 0% 0% 0-100% 10% 0.03
Auto-Gen 6 0% 0% 0-100% 50% 0.15
The median values in Table 4.3 should be used with caution. For instance,
the IM factor for the amount of modification to existing test and integration
procedures may be 100% or more if the software application has high reli-
ability or security requirements or the integration is complex. For modified
software, the DM and CM values for the amount of design and code mod-
ified may be higher than the median values due to additional information
assurance requirements, time and storage constraints, and product complex-
ity. Conversely the reused and auto-generated IM value may be below median
if the software has already been certified in an earlier release or if the software
is a prototype.
As more SRDR data is collected these guidelines will expand and improve.
44 Software Cost Estimation Metrics Manual for Defense Systems
Chapter 5
Cost Estimating Relationships
5.1 Overview
This chapter discusses an approach to building Cost Estimating Relation-
ships (CERs) and Benchmarks. Figure 5.1 shows the process starting with
SRDR data and other supporting historical data. Defining, collecting, eval-
uating and normalizing historical data were discussed in previous chapters.
Data segmentation will be used to partition the data into groups with common
project characteristics. Each segment will have its own CER and benchmark.
.
SRDRs
.
Data Segmentation
Estimating
Relationships Benchmarks
45
46 Software Cost Estimation Metrics Manual for Defense Systems
the predictor and effort is the response. Where relationships exist, CERs and
benchmarks are created.
Application Type
(AppType) Description
Microcode and Microcode and Firmware is software stored on
Firmware (M&F) target hardware devices that do not have hard
disks and use programmable logic devices. It
is a combination of persistent memory and the
program code and data stored in it.
(continued )
Cost Estimating Relationships 49
Application Type
(AppType) Description
Sensor Control and Software that requires timing-dependent
Signal Processing device coding to enhance, transform, filter,
(SCP) convert, or compress data signals.
(continued )
50 Software Cost Estimation Metrics Manual for Defense Systems
Application Type
(AppType) Description
(continued )
Cost Estimating Relationships 51
Application Type
(AppType) Description
(continued )
52 Software Cost Estimation Metrics Manual for Defense Systems
Application Type
(AppType) Description
Test, Measurement, Software used for testing, measuring, diag-
and Diagnostic nosing, emulating, and evaluating operational
Equipment (TMDE) hardware and software systems
(continued )
Cost Estimating Relationships 53
Application Type
(AppType) Description
Mission Planning Provides the capability to maximize the use
(MP) of the platform. The system supports all the
mission requirements of the platform and
may have the capability to program onboard
platform systems with routing; targeting; and
performance, map, and Intel data.
(continued )
54 Software Cost Estimation Metrics Manual for Defense Systems
Application Type
(AppType) Description
Enterprise Information Software needed for building an enterprise
Systems (EIS) information system that uses an integrated
database to support typical business pro-
cesses within business/functional areas and
consistent information access across ar-
eas and systems. COTS/GOTS attributed to
a specific software service or bundle of services.
Starting with the environment, traverse the WBS to the lowest level where
the domain is represented. Each domain is associated with a Application Type
(AppType). In real-world WBSs, the traverse from environment to AppType
will most likely not be the same number of levels. However the 881C WBS
provides the context for selecting the AppType and should be transferable to
other WBSs.
Two examples for finding the application type using the 881C Aerial Ve-
hicle Manned (AVM) and Space Vehicle Unmanned (SVU) WBS elements are
provided below. The highest level WBS element represents the environment.
In the AVM environment there are the Avionics subsystem, Fire-Control sub-
subsystem. The Fire-Control sub-subsystem contains the sensor, navigation,
air data, display, bombing computer and safety domains. Each domain has an
associated application type:
• Air Vehicle Manned (AVM)
– Avionics
∗ Fire Control
· Search, target, tracking sensors → SCP
· Self-contained navigation → RTE
· Self-contained air data systems → RTE
· Displays, scopes, or sights → RTE
· Bombing computer → VP
· Safety devices → RTE
∗ Data Display and Controls
· Multi-function display → RTE
· Control display units → RTE
· Display processors → RTE
· On-board mission planning → MP
For a space system, the highest level 881C WBS element is the Space
Vehicle Unmanned (SVU). The two sub-systems are Bus and Payload. The
domains for Bus address controlling the vehicle. The domains for Payload
address controlling the onboard equipment. Note the system decomposition
has one less level than the decomposition for Air Vehicle Manned. Each sub-
subsystem has an associated application type:
• Space Vehicle Unmanned (SVU)
– Bus
∗ Structures & Mechanisms → VC
∗ Thermal Control → VC
∗ Electrical Power → VC
∗ Attitude Control → VC
∗ Propulsion → VC
∗ Telemetry, Tracking, & Command → RTE
∗ Bus Flight Software → VC
56 Software Cost Estimation Metrics Manual for Defense Systems
– Payload
∗ Thermal Control → RTE
∗ Electrical Power → RTE
∗ Pointing, Command, & Control Interface → VP
∗ Payload Antenna → SCP
∗ Payload Signal Electronics → SCP
∗ Optical Assembly → SCP
∗ Sensor → SCP
∗ Payload Flight Software → VP
The detailed mappings from MIL-STD-881C to Application Types are in
Appendix B. All of the WBS elements from MIL-STD-881C were mapped to
the appropriate application type. MIL-STD-881C covers the following oper-
ating environments:
• Aerial Vehicle Manned (AVM)
• Aerial Vehicle Unmanned(AVU) & Ground Site Fixed (GSF)
• Ordnance Vehicle Unmanned (OVU)-Ordnance
• Ordnance Vehicle Unmanned (OVU)-Missile
• Ordnance Vehicle Unmanned (OVU)-Launch Vehicles
• Maritime Vessel Manned (MVM)
• Maritime Vessel Unmanned (MVU) and Maritime Vessel Manned
(MVM)
• Space Vehicle Manned / Unmanned (SVM/U) & Ground Site Fixed
(GSF)
• Ground Site Fixed (GSF)
• Ground Vehicle Manned & Unmanned (GVM/U)
• Applies to All Environments: Common Elements
After segmenting the data into application types and operating environ-
ments, each group is examined for an estimating relationship between size and
effort. This is discussed next.
100
80
60
Y
40
20
.
0.
0 20 40 60 80 100
X
100
80
Y 60
40
20
0 .
.
0 20 40 60 80 100
X
100
80
60
Y
40
20
0 .
.
0 20 40 60 80 100
X
100
80
60
Y
40
20
0 .
.
0 20 40 60 80 100
X
100
80
Y 60
40
20
0 .
.
0 20 40 60 80 100
X
When creating CERs, the two factors of interest in SRDR data are software
size and effort. Size is treated as the predictor variable (X in the discussion
above) and effort is treated as the response variable (Y). Software size in SRDR
data is expressed as ESLOC defined in Section 3.2.2. Effort is expressed as
person hours which is then transformed into person months as described in
Section 3.4.3.
SRDR size and effort data usually have a positive relationship, are non-
normally distributed, and exhibit heteroscedasticity. Both conditions of non-
normality and heteroscedasticity can be reduced in SRDR data by transform-
ing the size and effort data using logarithms. This permits the use of OLS to
derive CER models.
20 10
Frequency
Frequency
10 5
.
0. . 0.
0 50 100 150 0.5 1 1.5 2
KESLOC Log KESLOC
Banker and Kemerer [4] provide a survey of reasons for economies and
diseconomies of scale. Their research substantiates both economies and disec-
onomies of scale. The economies of scale were observed on small projects and
diseconomies of scale were observed on large projects. Economies of scale are
attributed to:
• Software development tools that increase productivity
• Specialized personnel that are highly productive
• Fixed overhead that does not increase directly with project size thereby
producing economies of scale in larger projects.
Diseconomies of scale are due to:
• Increased coordination effort required
• Larger systems having more complex interface problems
• Increased effort to obtain agreement or consensus
• Increase in overhead activities at a faster than linear rate as product
size increases.
Equation 5.2 has the advantage of removing fixed start-up costs from the
prediction portion of the equation. During SRDR analysis it was observed
that fixed costs can mask the diseconomy of scale relationship between size
and effort, especially with smaller size projects (less than 50 KESLOC). When
Equation 5.2 was used as the CER model form, the diseconomy of scale was
more often observed.
Equation 5.2 also has the advantage of a user being able to assess the
reasonableness of the C factor with respect to known fixed costs in their
organization and using the other part of the equation for the variable costs.
Alternatively, a user could use the variable cost part and add it to their own
estimate of project fixed start up costs. Both parts of the equation have a
distinct interpretation and can be assessed for their reasonableness. However,
there are difficulties using the model form in Equation 5.2.
Both Equations 5.1 and 5.2 are non-linear due to the scaling factor. If
the equations were linear (e.g., P M = A + B · KESLOC), OLS can be used
to find the values for the model factors. This technique finds the values for
the factors by minimizing the square of the errors between the actual and
predicted effort, PM.
The multiplicative model in Equation 5.1 can be transformed from its non-
linear form into a linear form using logarithms shown in Equation 5.3. The
CERs presented in this chapter use this log transformed linear model.
Despite all of its advantages, 5.2 cannot be transformed into a linear model
due to the position of the C factor in the model form. To solve for the three
factors in 5.2, a non-regression iterative search technique must be used. De-
pending on the initial starting conditions, different values can result from
the search. It is recommended to use multiple starting conditions to perform
multiple searches and to select the factor values that result most often. This
requires a specialized software analysis tool to conduct such a search.
Because of the ease of finding the factor values in Equation 5.1 and the
difficulty of finding the factor values in 5.2, 5.1 is chosen as the CER model
form presented in this chapter.
analysis presented here. The min and max size also set the boundaries for
where the CER can safely be used.
The multiplicative factors A and B are the coefficients derived from the
OLS regression. They are evaluated with the T-Statistic (T-Stat) and P-value
measures for hypothesis testing. Generally a T-stat greater than 2.0 indicates
a significant value and one that can be used in the CER model. A predictor
that has a low P-value is likely to be a meaningful addition to the CER
because changes in the predictor’s value are related to changes in the response
variable. Conversely, a larger (insignificant) P-value suggests that changes in
the predictor are not associated with changes in the response.
The Lower Confidence Interval (LCI) and Upper Confidence Interval (UCI)
specify ranges for the true values of A and B. This is because OLS regression
provides estimates of factor values based on minimizing error. In practice the
confidence interval is set to a desired level of confidence. For instance, we can
be 95% confident that the range of the 95% confidence interval includes the
real population mean of the effort to develop software of a given size. As the
sample size increases, the sampling error decreases and the intervals become
narrower. If one could increase the sample size to equal the population, there
would be no sampling error. The confidence interval would have a width of
zero and be equal to the true population parameter.
The Coefficient of Determination (R2 ) is a primary measure that describes
how much of the variation is explained by the CER regression model. The more
variance that is accounted for by the regression model the closer the data
points will fall to the fitted regression line. However, R2 cannot determine
whether the factor estimates and predictions are biased. Bias is detected in a
scatter plot (called residual plots) of estimated versus actual response values.
Looking at the scatter plot of residuals is necessary to evaluate the CER model
factors.
The Standard Error (SE) is the standard deviation around the regression
line. It is used to assess the precision of the predictions. R2 is relevant mainly
for assessing the fit of the trendline to the data. However, R2 cannot be used
to assess precision which SE is used for.
Statistic Description
N Number of data points used to create the CER.
(continued )
Cost Estimating Relationships 65
Statistic Description
P-Value The P-value for each factor tests the null hy-
pothesis that the factor is equal to zero and
has no effect. A low p-value less than α (typi-
cally < 0.05) indicates that one can reject the
null hypothesis. The level of significance α is
the probability of achieving data at least as
extreme.
(continued )
66 Software Cost Estimation Metrics Manual for Defense Systems
Statistic Description
PRED(30) Percent of estimates where the PREDiction
is within 30% of actuals. For parametric cost
models a PRED(30) of 75% is very good.
Scatter plots are also used in CER assessment. Two plots are useful, a plot
of residuals discussed in Section 5.3 and a plot of KESLOC versus PM with
the CER model trend line displayed through the data scatter. Residual plots
show the scatter of errors and should be checked before evaluating statistical
measures for goodness-of-fit. They can reveal unwanted residual patterns that
indicate biased results more effectively than numbers. When the residual plots
show a random distribution of errors, the goodness-of-fit statistics are valid.
Both CER evaluation statistics and evaluation scatter plots are provided
for each SRDR CER presented in this chapter.
estimated factors are 13.16 for A and 0.84 for B. Each factors has a very high
T-Stat (good) and an extremely low P-Value (good). The confidence interval
for A is ± 3.9 and for B is ±0.11. The R-squared is 83% which is judged to be
strong. The SE is 211 PM of effort which isn’t so good. PRED(30) is 56.4%
which is isn’t good.
Statistic Value
N 57
Min KESLOC 1.8
Max KESLOC 200.6
A 13.16
B 0.84
R2 83%
SE (PM) 211
PRED(30) 54%
Figure 5.8 shows the RTE CER Residuals scatter plot which is checked
for any appearance of patterns. The scatter of errors appears to be randomly
distributed, which indicates a good regression fit.
0.5
Residuals
.
−0.5 .
0.5 1 1.5 2 2.5
Figure 5.9 shows the RTE CER scatter plot with ± 1 Standard Error in log
space, the Upper and Lower Prediction Intervals, and CER error distribution
for a value of 10 KESLOC. The solid trendline for the CER is enclosed by the
Standard Error and 95% prediction intervals representing estimation error.
The ± 1 Standard Error around the line shows the average error around the
mean for the regression, and the CER error distribution is a normal distribu-
tion with a mean of zero across the prediction interval.
. .
P M = 13.20 · KESLOC 0.84
. .
Upper/Lower Prediction Interval
. ± Standard Error .
. .
CER Error Distribution @10 KESLOC
1000
Person-Months
100
10
.
10 100
KESLOC
.
FIGURE 5.9: RTE CER Prediction Interval and Error Distribution
CER error spread shown in Figure 5.9. The error range covers approximately
30-250 Person-Months.
AppType AV GF GV MV OV Total
C&C 9 16 3 5 33
CAS 1 13 2 16
COM 1 22 2 22 47
MP 20 20
RTE 23 21 3 5 5 57
S&S 6 8 1 1 1 17
SCP 11 14 1 3 6 36
SYS 8 13 3 3 27
TMDE 1 6 4 11
VC 10 14 3 27
VP 10 1 5 18
Total 87 134 26 42 25 306
70 Software Cost Estimation Metrics Manual for Defense Systems
CC 9
CAS 1
P M = 9.41 · KESLOC 0.93
App Type
COM 1
MP 0
RTE 23
Data Points = 87 SS 6
SCP 11
KESLOC Min = 0.7 SYS 8
KESLOC Max = 329.9 TMDE 1
VC
. 10
VP
. 10
0 5 10 15 20 25
# Data Points
0.5
Residuals
R2 = 77%
SE = 516 PM 0
PRED = 39% −0.5
.
.
0 0.5 1 1.5 2 2.5
Log KESLOC
. .
P M = 9.41 · KESLOC 0.93
. .
± Standard Error
1000
Person-Months
100
10
. .
1 10 100
KESLOC
CC 16
CAS 13
P M = 12.6 · KESLOC 0.79
App Type
COM 22
MP 20
RTE 21
Data Points = 134 SS 8
SCP 14
KESLOC Min = 0.8 SYS 13
KESLOC Max = 842.1 TMDE 6
VC
VP . 00
.
0 5 10 15 20
# Data Points
0.5
Residuals
R2 = 74%
SE = 478 PM 0
PRED = 56%
−0.5
.
.
0 0.5 1 1.5 2 2.5 3
Log KESLOC
. .
P M = 12.6 · KESLOC 0.79
. .
± Standard Error
1000
Person-Months
100
10
.
1 10 100
.
KESLOC
CC 0
CAS 2
P M = 15.1 · KESLOC 0.82
App Type
COM 2
MP 0
RTE 3
Data Points = 26 SS 1
SCP 1
KESLOC Min = 7.2 SYS 3
KESLOC Max = 283.1 TMDE 0
VC
.0 14
VP
.
0 2 4 6 8 10 12 14
# Data Points
0.4
Residuals
2
R = 74% 0.2
SE = 178 PM 0
PRED = 54% −0.2
−0.4 .
.
1 1.5 2 2.5
Log KESLOC
. .
P M = 15.1 · KESLOC 0.82
. .
± Standard Error
100
Person-Months
10
.
1 10
KESLOC
.
74 Software Cost Estimation Metrics Manual for Defense Systems
CC 3
CAS 0
P M = 5.44 · KESLOC 1.12
App Type
COM 22
MP 0
RTE 5
Data Points = 42 SS 1
SCP 3
KESLOC Min = 0.4 SYS 3
KESLOC Max = 123.8 TMDE 4
VC
VP . 01
.
0 5 10 15 20
# Data Points
0.5
Residuals
R2 = 87%
SE = 206 PM
0
PRED = 33%
.
.
−0.5 0 0.5 1 1.5 2
Log KESLOC
. .
P M = 5.44 · KESLOC 1.12
. .
± Standard Error
Person-Months
1000
100
10 .
.
1 10 100
KESLOC
CC 5
CAS 0
P M = 27.45 · KESLOC 0.71
App Type
COM 0
MP 0
RTE 5
Data Points = 25 SS 1
SCP 6
KESLOC Min = 0.9 SYS 0
KESLOC Max = 221.1 TMDE 0
VC
. 3
VP
. 5
0 1 2 3 4 5 6
# Data Points
0.5
Residuals
2
R = 79%
SE = 11 PM 0
PRED = 48%
−0.5 .
.
0 0.5 1 1.5 2 2.5
Log KESLOC
100
10 .
1 10 100
KESLOC
FIGURE 5.14:
. OV Dataset and CER Summary
76 Software Cost Estimation Metrics Manual for Defense Systems
Data Points
15
10 9
Data Points = 33 5
KESLOC Min = 0.8 5 3
. . 0
KESLOC Max = 229.0 0
Aerial Ground Ground Maritime Ordnance
Vehicle Site Vehicle Vessel Vehicle
Operating Environment
R2 = 83% 0.4
Residuals
SE = 211 PM 0.2
PRED = 54%
0
−0.2
.
.
0 0.5 1 1.5 2 2.5
Log KESLOC
. .
P M = 6.60 · KESLOC 1.05
. .
± Standard Error
1000
Person-Months
100
10
.
1. 10 100
KESLOC
Data Points
10
Data Points = 16
5 2
KESLOC Min = 2.4 1 0 0
0 . .
KESLOC Max = 417.1
Aerial Ground Ground Maritime Ordnance
Vehicle Site Vehicle Vessel Vehicle
Operating Environment
R2 = 97% 0.1
Residuals
SE = 135 PM
0
PRED = 88%
−0.1
−0.2 .
.
0.5 1 1.5 2 2.5
Log KESLOC
. .
P M = 2.64 · KESLOC 1.02
. .
± Standard Error
1000
Person-Months
100
10
.
10 100
. KESLOC
Data Points
20
Data Points = 47 10
KESLOC Min = 0.4 1 2 0
0 . .
KESLOC Max = 532.4
Aerial Ground Ground Maritime Ordnance
Vehicle Site Vehicle Vessel Vehicle
Operating Environment
1
R2 = 88%
Residuals
SE = 253 PM 0.5
PRED = 60%
0
.
−0.5 .
0 1 2 3
Log KESLOC
. .
P M = 7.30 · KESLOC 0.91
. .
± Standard Error
1000
Person-Months
100
10
1. .
1 10 100 1000
KESLOC
Data Points
20
15
Data Points = 20 10
KESLOC Min = 9.6 5
0 . 0. 0 0 0
KESLOC Max = 570.0
Aerial Ground Ground Maritime Ordnance
Vehicle Site Vehicle Vessel Vehicle
Operating Environment
0.6
R2 = 77% 0.4
Residuals
SE = 220 PM
0.2
PRED = 55%
0
−0.2
.
−0.4 .
1 1.5 2 2.5
Log KESLOC
. .
P M = 6.14 · KESLOC 0.86
. .
± Standard Error
1000
Person-Months
100
.
10 100
KESLOC
.
Cost Estimating Relationships 81
Data Points
20
Data Points = 57
10 5 5
KESLOC Min = 2 3
0 . .
KESLOC Max = 201
Aerial Ground Ground Maritime Ordnance
Vehicle Site Vehicle Vessel Vehicle
Operating Environment
0.5
R2 = 83%
Residuals
SE = 211 PM
PRED = 54% 0
.
−0.5 .
0.5 1 1.5 2 2.5
Log KESLOC
100
10
.
10 100
KESLOC
Data Points
8 6
6
Data Points = 17 4 3 3
KESLOC Min = 4.4 2 0
0 . .
KESLOC Max = 225.8
Aerial Ground Ground Maritime Ordnance
Vehicle Site Vehicle Vessel Vehicle
Operating Environment
0.4
R2 = 85%
Residuals
SE = 176 PM 0.2
PRED = 53% 0
−0.2
−0.4 .
.
0.5 1 1.5 2 2.5
Log KESLOC
. .
P M = 7.43 · KESLOC 0.91
. .
± Standard Error
100
Person-Months
10
.
10 100
KESLOC
.
Cost Estimating Relationships 83
Data Points
11
10
Data Points = 36 6
KESLOC Min = 0.8 5 3
1
0 . .
KESLOC Max = 192.9
Aerial Ground Ground Maritime Ordnance
Vehicle Site Vehicle Vessel Vehicle
Operating Environment
R2 = 91% 0.2
Residuals
SE = 346 PM
PRED = 50% 0
−0.2
.
.
0 0.5 1 1.5 2 2.5
Log KESLOC
. .
P M = 26.5 · KESLOC 0.87
. .
± Standard Error
Person-Months
1000
100 .
1 10 100
KESLOC
FIGURE 5.21:
. SCP Dataset and CER Summary
84 Software Cost Estimation Metrics Manual for Defense Systems
Data Points
10 8
Data Points = 27
5 3 3
KESLOC Min = 0.8 0
0 . .
KESLOC Max = 842.1
Aerial Ground Ground Maritime Ordnance
Vehicle Site Vehicle Vessel Vehicle
Operating Environment
0.6
R2 = 93%
0.4
Residuals
SE = 585 PM
PRED = 48% 0.2
−0.2 .
.
0 0.5 1 1.5 2 2.5 3
Log KESLOC
10000 . .
P M = 5.06 · KESLOC 0.98
. .
± Standard Error
1000
Person-Months
100
10
. .
1 10 100 1000
KESLOC
Data Points
6
4
Data Points = 11 4
KESLOC Min = 0.5 2 1
. . 0 0
KESLOC Max = 313.0 0
Aerial Ground Ground Maritime Ordnance
Vehicle Site Vehicle Vessel Vehicle
Operating Environment
0.4
R2 = 92% 0.2
Residuals
SE = 454 PM
PRED = 27% 0
−0.2
−0.4 .
.
−0.5 0 0.5 1 1.5 2 2.5
Log KESLOC
. .
P M = 7.42 · KESLOC 1.00
. .
± Standard Error
Person-Months
1000
100
10 . .
1 10 100
KESLOC
Data Points
10
10
Data Points = 27
KESLOC Min = 0.7 5 3
. . 0 0
KESLOC Max = 329.9 0
Aerial Ground Ground Maritime Ordnance
Vehicle Site Vehicle Vessel Vehicle
Operating Environment
0.4
R2 = 92%
0.2
Residuals
SE = 303 PM
PRED = 48% 0
−0.2
−0.4
.
.
0 0.5 1 1.5 2 2.5
Log KESLOC
. .
P M = 9.05 · KESLOC 1.02
. .
± Standard Error
1000
Person-Months
100
10
.
1. 10 100
KESLOC
Data Points
10
Data Points = 18 5
5
KESLOC Min = 1.1 0 0 1
0 . .
KESLOC Max = 221.1
Aerial Ground Ground Maritime Ordnance
Vehicle Site Vehicle Vessel Vehicle
Operating Environment
0.6
R2 = 89% 0.4
Residuals
SE = 111 PM
PRED = 56% 0.2
0
−0.2 .
.
0 0.5 1 1.5 2 2.5
Log KESLOC
100
10 .
1 10 100
KESLOC
Data Points = 16
KESLOC Min = 5.0
KESLOC Max = 229.0
0.2
Residuals
R2 = 91% 0
SE = 257 PM
PRED = 63%
−0.2 .
.
0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4
Log KESLOC
. .
P M = 6.66 · KESLOC 1.01
. .
± Standard Error
100
Person-Months
10
.
1 10
KESLOC
.
90 Software Cost Estimation Metrics Manual for Defense Systems
Data Points = 13
KESLOC Min = 2.4
KESLOC Max = 417.1
0.1
Residuals
R2 = 79% 0
SE = 146 PM
PRED = 48% −0.1
.
−0.2 .
0.5 1 1.5 2 2.5
Log KESLOC
. .
P M = 2.57 · KESLOC 1.03
1000 . .
± Standard Error
Person-Months
100
10
.
1 10
. KESLOC
Data Points = 22
KESLOC Min = 1.2
KESLOC Max = 532.4
0.5
Residuals
2
R = 82%
SE = 435 PM 0
PRED = 36%
−0.5 .
.
0 0.5 1 1.5 2 2.5
Log KESLOC
100
10
.
1 10 100
.
KESLOC
Data Points = 22
KESLOC Min = 0.4
KESLOC Max = 27.1
0.4
Residuals
0.2
R2 = 90%
SE = 17 PM 0
PRED = 68%
−0.2 .
.
−0.4−0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6
Log KESLOC
. .
P M = 5.77 · KESLOC 0.96
. .
± Standard Error
100
Person-Months
10
. .
1 10
KESLOC
Data Points = 20
KESLOC Min = 9.6
KESLOC Max = 570.0
0.6
0.4
Residuals
R2 = 77% 0.2
SE = 221 PM 0
PRED = 55% −0.2
.
−0.4 .
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8
Log KESLOC
. .
P M = 6.14 · KESLOC 0.86
. .
± Standard Error
100
Person-Months
10
.
1 10
KESLOC
.
94 Software Cost Estimation Metrics Manual for Defense Systems
Data Points = 23
KESLOC Min = 2.0
KESLOC Max = 164.2
0.4
0.2
Residuals
2
R = 82% 0
SE = 293 PM −0.2
PRED = 52%
−0.4 .
.
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4
Log KESLOC
10
.
1 10
KESLOC
Data Points = 21
KESLOC Min = 1.8
KESLOC Max = 112.7
0.6
0.4
Residuals
0.2
R2 = 83%
SE = 149 PM 0
PRED = 48% −0.2
.
−0.4 .
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2
Log KESLOC
1000 . .
P M = 8.71 · KESLOC 0.92
. .
± Standard Error
Person-Months
100
10
.
1 10
KESLOC
Data Points = 11
KESLOC Min = 1.1
KESLOC Max = 178.8
0.2
Residuals
R2 = 92% 0
SE = 528 PM
PRED = 55%
−0.2 .
.
0 0.5 1 1.5 2
Log KESLOC
10
.
1 10 100
KESLOC
Data Points = 14
KESLOC Min = 0.8
KESLOC Max = 193.0
0.2
Residuals
2
R = 86%
0
SE = 346 PM
PRED = 43% −0.2
.
.
0 0.5 1 1.5 2 2.5
Log KESLOC
100
10 .
1 10 100
KESLOC
Data Points = 13
KESLOC Min = 10.7
KESLOC Max = 842.1
0.4
Residuals
R2 = 85% 0.2
SE = 941 PM 0
PRED = 31%
−0.2 .
.
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
Log KESLOC
1000
. .
P M = 7.93 · KESLOC 0.89
. .
± Standard Error
Person-Months
100
10
.
1 10 100
KESLOC
.
Cost Estimating Relationships 99
Data Points = 10
KESLOC Min = 0.7
KESLOC Max = 330.0
0.4
0.2
Residuals
R2 = 96% 0
SE = 328 PM
PRED = 50% −0.2
.
−0.4 .
0 0.5 1 1.5 2 2.5
Log KESLOC
. .
P M = 8.09 · KESLOC 1.05
. .
± Standard Error
1000
Person-Months
100
10
.
1. 10 100
KESLOC
Data Points = 14
KESLOC Min = 10.6
KESLOC Max = 74.7
0.2
Residuals
R2 = 78%
SE = 149 PM 0
PRED = 43%
−0.2 .
.
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9
Log KESLOC
. .
P M = 7.81 · KESLOC 1.10
100 . .
± Standard Error
Person-Months
10
.
1 10 100
KESLOC
.
Cost Estimating Relationships 101
Data Points = 10
KESLOC Min = 1.1
KESLOC Max = 86.7
0.2
Residuals
2
R = 95%
SE = 85 PM 0
PRED = 70%
−0.2 .
.
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Log KESLOC
100
10
.
1 10 100
KESLOC
FIGURE 5.38:
. VPAV Dataset and CER Summary
102 Software Cost Estimation Metrics Manual for Defense Systems
by the DoD on past projects is captured using these two measures. While con-
troversy exists over whether or not ESLOC / PM is a good measure, consistent
use of this metric (see Metric Definitions) provides for meaningful comparisons
of productivity.
Table 5.6 shows the coverage by the number of data points analyzed by Op-
erating Environment and Application Type. A minimum of 10 or more projects
were required to derive a productivity benchmark. Groups with smaller sample
sizes weren’t considered large enough to draw conclusions from. The produc-
tivity results contain the statistics defined in Table 5.11.
Statistic Description
N Number of data points
Q1 Numerical value for the lower 25% of ranked data (1st Quar-
tile), i.e., the value half way between the lowest value and
the median in a set of ranked values
Productivity (ESLOC/PM)
OpEnv N LCI Mean UCI SE SD Q1 Mdn. Q3
AV 80 118.9 137.6 156.3 9.4 84.1 77.7 117.6 172.0
GF 133 186.5 208.2 230.0 11.0 126.8 118.2 192.0 280.0
GV 26 110.2 140.6 171.0 14.8 75.3 89.9 121.0 169.5
MV 42 138.9 163.0 187.2 12.0 77.5 88.1 178.8 217.3
OV 25 82.8 122.5 162.1 19.2 96.2 59.1 95.4 161.4
Figure 5.39 shows that while the operating environments are physically
distinct, the productivities are indistinguishable. By this, productivity is not
influenced by the operating environment. There are two caveats to this con-
clusion:
1. There is the lack of data for the space vehicle, SV, environment. Initial
indications are the SV environment has the lowest productivity.
2. There was not enough data to separate each environment into manned
and unmanned sub-environments. Some cost estimators feel the manned
environment has a lower productivity that an unmanned one.
AV
GF
GV
MV
OV .
.
0 200 400 600 800 1,000
ESLOC/PM
Productivity (ESLOC/PM)
AppType N LCI Mean UCI SE SD Q1 Mdn. Q3
C&C 33 120.5 140.7 160.8 9.9 56.8 103.1 128.2 177.8
CAS 16 309.6 353.4 396.9 20.5 82.2 292.1 323.0 406.6
COM 47 167.8 189.5 211.2 10.8 74.0 139.6 185.0 243.1
MP 20 263.4 335.0 406.3 34.2 153.0 207.5 328.7 427.1
RTE 57 125.1 142.7 160.2 8.7 66.1 84.0 141.1 171.6
S&S 17 159.6 211.5 263.1 24.5 100.9 129.5 209.8 259.9
SCP 36 51.6 60.2 68.8 4.2 25.5 40.1 55.7 79.5
SYS 27 196.3 230.8 265.2 16.8 87.2 162.8 235.4 298.5
TMDE 11 88.3 160.5 231.9 32.4 107.5 83.7 118.3 205.6
VC 27 94.5 115.2 135.9 10.1 52.4 70.2 110.1 126.4
VP 18 68.0 88.5 108.8 9.7 41.1 43.0 90.9 119.5
C&C
CAS
COM
MP
RTE
S&S
SCP
SYS
TMDE
VC
VP .
.
0 100 200 300 400 500 600 700 800
ESLOC/PM
Aerial Vehicle
RTE
SCP
VC
VP
Ground System
C&C
CAS
COM
MP
RTE
SCP
SYS
Ground Vehicle
VC
Maritime Vehicle
COM .
.
0 100 200 300 400 500 600 700 800
ESLOC/PM
Productivity (ESLOC/PM)
Subgroup N LCI Mean UCI SE SD Q1 Mdn. Q3
Aerial Vehicle (AV)
RTE 23 102.1 133.7 165.2 15.2 73.1 79.6 124.0 164.7
SCP 11 42.3 60.1 77.7 8.0 26.5 41.0 51.2 94.0
VC 10 82.2 122.2 161.6 17.7 55.9 76.4 110.9 169.3
VP 10 75.3 99.7 123.8 10.8 34.1 80.8 92.7 121.7
effort and therefore cost. Development time can be shortened within reason
with more people working on the project. Future work will focus on developing
SERs to show a nominal duration for a nominal effort estimate and the impact
on effort when duration is shortened.
The set of CERs presented are based on software size expressed as esti-
mated SLOC. As discussed in Chapter 1, these CERs would be most useful in
the early acquisition phase of a program. Therefore it would be useful to use
a size metric that is available in the early phases such as requirements counts.
Future work will investigate the use of requirements counts, as reported in the
initial SRDR, as a size metric in CERs.
110 Software Cost Estimation Metrics Manual for Defense Systems
Chapter 6
Modern Estimating Challenges
Several trends present significant future challenges for the sizing and cost
estimation of 21st century software systems. Prominent among these trends
are:
• Rapid change, emergent requirements, and evolutionary development
• Net-centric systems of systems
• Model-Driven and Non-Developmental Item (NDI)-intensive systems
• Ultrahigh software system assurance
• Legacy maintenance and brownfield development
• Agile and Kanban development
This chapter summarizes each trend and elaborates on its challenges for
software sizing and cost estimation.
111
112 Software Cost Estimation Metrics Manual for Defense Systems
use of code counters able to count numbers of SLOC added, modified, and
deleted during development [37] .
If such data is unavailable, the best one can do is to estimate ranges of
requirements volatility . For uniformity, Table 6.1 presents a recommended
set of Requirements Volatility (RVOL) ranges over the development period
for rating levels of 1 (Very Low) to 5 (Very High), such as in the DoD SRDR
form [44].
In the best case, there would be 20% more effort (from above -
20+20+10+10); for a 4-build system, the IDPD would be 6%. In the worst
case, there would be 85% more effort (from above 40+25+25-5); for a 4-build
system, the IDPD would be 23%.
With fixed staff size, there would be either a schedule increase or incom-
plete builds in any case. The difference between 6% and 23% may not look
too serious, but the cumulative effects on schedule across a number of builds
is very serious.
A simplified illustrative model relating productivity decline to number of
builds needed to reach 4M ESLOC across 4 builds follows. Assume that the
two-year Build 1 production of 1M SLOC can be developed at 200 SLOC /
PM for a total of 5000 PM. This means it will need 208 developers (5000 PM
/ 24 Months), assuming a constant staff size for all builds.
The analysis shown in Figure 6.1 shows the impact on the amount of
software delivered per build and the resulting effect on the overall delivery
schedule as a function of the IDPD factor. Many incremental development
cost estimates assume an IDPD of zero, and an on-time delivery in 4 builds.
However, as the IDPD factor increases and the staffing level remains constant,
the productivity decline per build stretches the schedule out to twice as long
for an IDPD of 20%.
Thus, it is important to understand the IDPD factor and its influence
114 Software Cost Estimation Metrics Manual for Defense Systems
4M
Cumulative ESLOC 3M
. .
0% productivity decline
2M
. .
10% productivity decline
. .
15% productivity decline
. .
20% productivity decline
1M .
.
1 2 3 4 5 6 7 8
Build
Single Step
C
E T
I
Prespecified Sequential
C1 C2 C3
E1 T1 T2 T3 ...
I1
Evolutionary Sequential
C1 C2 C3
E1 T1 E2 T2 E3 T3 ...
.I1 I2 I3
Evolutionary Overlapped
C1
E1 T1
I1
C2
E2 T2
I2
C3
E3 T3 ...
I3
Evolutionary Concurrent
C1 C2 C3
E1 T1 T2 T3 ...
I1
I2 E2 I3 E3 I4 E4
Table 6.4 provides criteria for deciding which of the five classes of incre-
mental and evolutionary acquisition (EvA) defined in Table 6.3 to use, plus
the choice of non-incremental, single-step development.
Pre- Yes No - -
specified
Sequential
Evolutionary No No Yes -
Sequential
Evolutionary No No No Yes
Overlapped
Evolutionary No No No No
Concurrent
7.1 Overview
The software estimation process described in this chapter is based on
the U.S. Government Accountability Office Cost Estimating and Assessment
Guide [18]. The recommended phases and steps within each phase are ex-
plained in terms of software cost estimation. Not all of the steps are described,
as some of the steps are specific to how an organization organizes, executes
and presents estimates. Where applicable, references to other sections of this
manual are used to provide examples of employing metrics data assessment
and analysis.
A system level cost estimate involves many cost elements, and the software
cost estimate is only a part. This chapter discusses a software estimation
process in the context of a system estimate. The following generic system cost
element list shows where this software estimation process applies:
Elements covered by this estimation process:
125
126 Software Cost Estimation Metrics Manual for Defense Systems
Determine Identify
Define the the Esti- Ground
Program mating Rules and Update the
Develop Conduct a Present
Define the Structure Assumptions Estimate to
the Conduct Risk and Document Estimate to
Estimate’s Reflect
Estimating Sensitivity Uncertainty the Estimate Management
Purpose Develop the Point Actual
Plan Analysis for Approval
Obtain Estimate and Compare it costs/changes
the Data to an Independent Cost
Estimate
Estimation Process
1. Define the estimate purpose. The purpose of the estimate defines the
scope of the estimate, i.e., what is in and what is out of scope. More on
this is in Section 7.2.
2. Develop the estimating plan. This step defines the estimation team, the
schedule/timeline of estimation activities, the estimation methodology
and the alternative methodology to be used. This step is organization
specific and is not discussed here.
7.1.1.2 Assessment
The steps in cost assessment are iterative and can be accomplished in
varying order or concurrently. These steps are:
4. Obtain the data. Estimates should be based data either collected imme-
diately from past project data (if the estimate is an update to an ongoing
project) or from historical data from similar projects. The SRDR data
discussed in Chapter 2 of this manual is an example of the latter. More
on this is in Section 7.5.
This is an important stage where the relevant cost modeling method(s) are
chosen before the estimates are calculated. Simple or detailed CERs such as
those provided in this manual may apply here, depending on the program
context and acquisition phase.
7.1.1.3 Analysis
1. The software projects acquisition lifecycle stage. See Figure 1.2 on the
acquisition lifecycle. Early lifecycle stage estimates will rely mostly on
analogous projects. A detailed estimate will be difficult to create with
early lifecycle stage projects. Later lifecycle stage estimates will have
historical data on which to base the estimate providing more insight
into development activity cost and durations.
2. The timeframe covered by the estimate. Different timeframes include:
The technical details also need to provide the estimator with enough in-
formation to understand the software application boundaries and interfaces.
Application boundaries are one part of defining the estimation scope. Known
risks to software development should be collected, e.g.,
of the estimate be presented with the estimation scope. This will serve to
validate and verify the software estimate.
Some of this information may only be available from the Program Office. If
this is the case, during the data collection step discussed in Section 7.5, the
missing information should be collected.
Receiver
Transmitter
Comm/ID CSCI 1...n
Radar Antennae Build 1
Guidance &
Navigation CSCI-CSCI Int
Platform Radar
Mission Int. Software
Airframe CSCI 1...n
Computer Int, Test &
SEPM Build 2
Display & Checkout CSCI-CSCI Int
Avionics
Control
Sys T&E
SEPM Fire Control
. Aerial Training
Vehicle
SYS T&E Survivability
Data
Automatic
Data
Fight Ctl Support
Equipment
Training
Initial
Repair Parts
Radar Software
• Build-1
– CSCI-1 Control Unit (activity estimation for Requirements,
Architecture, Design, Implementation and CSCI testing)
– CSCI-2 Item Processing
– CSCI-3 Track Database
– CSCI-CSCI Integration
– Hardware Installation and Checkout
– Acceptance Testing
• Build-2
– CSCI-1 Control Unit
– CSCI-2 Item Processing
– CSCI-4 Display Manager
– CSCI-5 Built-In-Test
– CSCI-CSCI Integration
– Hardware Installation and Checkout
– Acceptance Testing
134 Software Cost Estimation Metrics Manual for Defense Systems
• All of the data not found during the Program Definition step
• Software size from previous builds or releases.
• Staffing levels and/or effort for each build or release
• Software build or release durations with start/end dates
• Document the start/end criteria for each build or release
• Cost model parameters, such as those in Appendix A, if they are
going to be used in creating the estimate
• Other cost model calibration data if required
• Average labor rate ($) to convert estimated effort to dollars
• Number of labor hours in a year
• Software risks, e.g., requirements stability, algorithm maturity.
1. Historical data from this program. This is the best source of data. The
size, effort and duration data show actual development performance.
2. Similar historical SRDR data for each CSCI’s application type. This
manual discusses SRDR data in Chapter 2 and what is available.
• Use the size definition checklists in Tables 3.2 and 3.3 to collect size data
and normalize it to a logical count.
• Use the definition of labor activities in Table 3.9 and the guidelines in
section 3.4 to document the data collected. SRDR activities and labor
categories are discussed in Section 4.5.2.
• Match duration with effort activities above, e.g. requirements, architect-
ing, detailed design, implementation, etc.
Analyze the data for anomalies and trends. Compare results against the
application type benchmarks in section 5.5.1 provided in this manual. Finally,
store the collected data for model calibration and for future estimates.
Estimation Process 135
100%
90%
80%
70%
Probability
60%
50%
40%
30%
20%
10%
0% . .
0 100 200 300 400 500
Person-Months
Uniform
A uniform distribution represents a range of equally likely outcomes with
an equal number of measures in each interval. As shown in Figure 7.4,
all values in between the range endpoints of a and b are equally likely.
It can be used as an initial model for a quantity that is felt to be ran-
domly varying between a and b but about which little else is known. It
can be used:
f (x) f (x)
1 2
(b−a) (b−a)
. .
a b x a c b x
Uniform Triangle
f (x) f (x)
. ..
µ x x
Normal Lognormal
Triangular
The triangular distribution is used when the minimum, maximum and
140 Software Cost Estimation Metrics Manual for Defense Systems
most likely values of a random variable are known but no other infor-
mation is available. It is characterized by three points, can be skewed or
symmetric and is easy to understand because it is intuitive. A triangular
distribution is often used as a rough model in the absence of data. It ac-
counts for a tapered distribution with the values being centered around
the c location parameter, the most likely value. The limiting cases where
c = b and c = a are called right triangular and left triangular distribu-
tions respectively.
The triangular distribution is commonly used to express technical uncer-
tainty in software cost estimation because of its use of minimum, most
likely and maximum inputs. It is often used as an initial rough model
when the minimum, most likely and maximum are known but no other
distribution shape data is known. Software cost drivers, particularly size,
are frequently represented with triangular distributions.
Normal
A normal distribution is symmetric around the mean and bell-shaped
(also called a bell curve) in which most measures occur in the closest
to the center of the distribution and fewer in the intervals farther from
the center. Figure 7.4 shows a normal distribution centered around it’s
mean µ.
The symmetric normal distribution is used for outcomes likely to occur
on either side of the average value. For software these may include
• personnel factors representing a normal spread of capability
• size, effort, complexity, other project characteristics
Besides technical uncertainty it is used to assess the uncertainty of cost
estimating relationships, as presented in Chapter 5.
Lognormal
The lognormal is a continuous distribution positively skewed with a
limitless upper bound and known lower bound. It is skewed to the right
to reflect the limitless upper bound.
In the skewed distribution the measurements cluster around a certain
value, but that value is not in the center of the distribution. In the log-
normal distribution ln(x) is normally distributed. The distribution mean
is the mean of ln(x), and the standard deviation is the standard devi-
ation of ln(x). Figure 7.4 shows a sample lognormal distribution. The
dispersion around the mean is characterized by the standard deviation.
The lognormal distribution is often a good one to model the overall size
or complexity of a software project, as one tends to underestimate the
maximum possible values. It can be used:
• for uncertainty in system size, effort, complexity
Estimation Process 141
One drawback of a lognormal function is its extremely long tail. For this
a truncated lognormal function bounds the distribution to more realistic
end values. The truncated lognormal prevents non-positive values or
other inconsistent values from a standard lognormal (e.g. when the mean
is close enough to zero that the spread goes negative).
The lognormal function can take on shapes similar to the gamma func-
tion or the Weibull distribution (the Rayleigh curve is actually a special
case of the Weibull distribution). The lognormal is also used characterize
uncertainty in nonlinear cost estimating relationships.
See [18] for additional probability distributions, their descriptions and
typical applications.
5. Identify the probability associated with the point estimate. The output
from the Monte Carlo simulation will produce a cost cumulative prob-
ability distribution, see Figure 7.3. Locate the point estimate on the
cumulative curve.
40%
30%
Probability
20%
10%
0% .
0 25 50 75 100 125 150 175 200
KESLOC
The RTE CER is computed many times at each random value of KESLOC
drawn from the normal distribution in Figure 7.5. The Monte Carlo simulation
results are based on 1000 runs. The probability distribution function shows
the simulated effort intervals in Figure 7.6, and the frequencies are summed
for increasing size in the cumulative distribution function in Figure 7.7.
The smoothed line in Figure 7.7 is the continuous CDF corresponding to
earlier Figure 7.3 where the probability of achieving a given estimate can be
determined. For example, a safe 80% confidence level estimate corresponds to
about 700 Person-Months.
200
150
Frequency
100
50
0. .
200 300 400 500 600 700 800 900 1,000
Person-Months
100%
90%
80%
Probability 70%
60%
50%
40%
30%
20%
10%
0% .
200 300 400 500 600 700 800 900 1,000
Person-Months
A.1 Introduction
This appendix summarizes and compares the parametric software cost
models most frequently used in the DoD. Transformations between the re-
spective models are provided so projects can be represented in all models in
a consistent manner and to help understand why estimates may vary. These
descriptions are subject to change, and the reader should check for updates
and more complete details as necessary.
The cost models used in sea, space, ground, and air platforms by the ser-
vices are generally based on the common effort formula shown in Equation
A.1. Size of the software is provided in a number of available units, cost fac-
tors describe the overall environment and calibrations may take the form of
coefficients adjusted for actual data or other types of factors that account for
domain-specific attributes [31], [32]. The total effort is calculated and then de-
composed by phases or activities according to different schemes in the models.
where
• Effort is in Person Months
• A is a constant derived from historical project data
• Size is software size in source lines of code or other size measures
• B is a scale factor
• EM is an effort multiplier from cost factors.
The models can use size expressed as lines of code, function points, object-
oriented metrics and other measures. Each model has its own respective cost
factors for the linear effort multiplier term, and each model specifies the B scale
factor in slightly different ways (either directly or through other factors). Some
models use project type or application domain to improve estimating accuracy.
Others use alternative mathematical formulas to compute their estimates.
Sizing for the models is summarized in Table A.1. A comparative analysis of
cost model factors is listed in Table A.2. The model WBS phases and activities
are in Tables A.3 and A.4 respectively.
145
146 Software Cost Estimation Metrics Manual for Defense Systems
A.2.1 COCOMO II
The COCOMO (COnstructive COst MOdel) cost and schedule estimation
model was originally published in [5] and the model continues to be updated at
USC. The COCOMO II model defined in [8] has three submodels: Applications
Composition, Early Design and Post-Architecture. They can be combined in
various ways to deal with different software environments. The Application
Composition model is used to estimate effort and schedule on projects typi-
cally done as rapid application development. The Early Design model involves
the exploration of alternative system architectures and concepts of operation.
Typically, not enough is known to make a detailed fine-grained estimate. This
model is based on function points (or lines of code when available) and a set
of five scale factors and seven effort multipliers.
The most frequently used is the Post-Architecture model for when top level
design is complete and detailed information about the project is available and
the software architecture is well defined. It uses Source Lines of Code and\or
Function Points for the sizing parameter, adjusted for reuse and breakage; a
set of 17 effort multipliers and a set of five scale factors that determine the
economies\diseconomies of scale of the software under development. The effort
formula is:
∏
N
Ef f ort = A · SizeB · EMi (A.2)
i=1
Appendix A - Cost Model Descriptions 147
Where
A.2.3 SEER-SEM
SEER-SEM is a product offered by Galorath, Inc. This model is based on
the original Jensen model [26], which derives from COCOMO and other mod-
els in its mathematical formulation. However, its parametric modeling equa-
tions are proprietary. SEER-SEM estimates can be used as part of a composite
modeling system for hardware/software systems. Descriptive material about
the model can be found in [17].
The scope of the model covers all phases of the project life-cycle, from
early specification through design, development, delivery and maintenance. It
handles a variety of environmental and application configurations, and mod-
els different development methods and languages. Development modes covered
148 Software Cost Estimation Metrics Manual for Defense Systems
include object oriented, reuse, COTS, spiral, waterfall, prototype and incre-
mental development. Languages covered are 3rd and 4th generation languages
(C++, FORTRAN, COBOL, Ada, etc.), as well as application generators.
The SEER-SEM cost model allows probability levels of estimates, con-
straints on staffing, effort or schedule, and it builds estimates upon a knowl-
edge base of existing projects. Estimate outputs include effort, cost, sched-
ule, staffing, and defects. Sensitivity analysis is also provided as is a risk
analysis capability. Many sizing methods are available including lines of code
and function points. For more information, see the Galorath Inc. website at
http://www.galorath.com.
A.2.4 SLIM
The Software LIfecycle Management ( SLIM) model is offered by Quanti-
tative Software Management. It was developed by Putnam based on a Nor-
den/Rayleigh manpower distribution and his finding in analyzing many com-
pleted projects [46]. The central part of Putnam’s model called the software
equation is:
1 4
S = Ck · Ef f ort 3 · td3 (A.3)
Where
COCOMO II
The COCOMO II size model is based on SLOC or function points con-
verted to SLOC, and can be calibrated and used with other software size units.
Examples include use cases, use case points, object points, physical lines, and
others. Alternative size measures can be converted to lines of code and used
directly in the model or it can be independently calibrated directly to different
measures.
COCOMO II uses Unadjusted Function Points for sizing, and applies its
reuse factors, cost drivers, and scale drivers to this sizing quantity to account
for the effects of reuse, distribution, etc. on project effort. The COCOMO II
procedure for determining Unadjusted Function Points follows the definitions
in [22] in both the Early Design and the Post-Architecture models. The Un-
adjusted Function Points are converted to ESLOC for the effort and schedule
formulas using default or user-supplied conversion ratios [8].
SEER-SEM
In SEER-SEM several sizing units can be used alone or in combination.
It can use SLOC, function points and custom proxies. SEER provides several
variations of function point counts. Its Function-Based Sizing is consistent
with IFPUG counting rules, with the addition of Internal Functions for algo-
rithmic processes. It also has proxy sizing for Mark II Function Points and
Function Points for direct input of a total function point count.
SEER allows custom proxies as a flexible way to estimate software size.
Any countable artifact can be established as a measure. Custom proxies can
be used with other size measures in a project.
150 Software Cost Estimation Metrics Manual for Defense Systems
SEER converts all size data into internal size units, also called effort units,
Users can combine or select a single metric for any project element or for the
entire project.
The SEER function-based sizing uses traditional function point types de-
scribed in Section 3.3.1:
• External Inputs (EI)
• External Outputs (EO)
• Internal Logical Files (ILF)
• External Interface Files (EIF)
• External Inquiries (EQ)
• Internal Functions (IF) any functions that are neither data nor trans-
actions.
Additional pre-defined proxy measures for size include:
• Web Site Development
• Mark II Function Points
• Function Points (for direct IFPUG-standard function points)
• Object-Oriented Sizing.
COTS sizing elements available in SEER are in section A.3.1.6.
True Planning
The True Planning software cost model size measures may be expressed in
different size units including source lines of code (SLOC), function points, pre-
dictive object points (POPs) or Use Case Conversion Points (UCCPs). True
Planning also differentiates executable from non-executable software sizes.
Functional Size describes software size in terms of the functional requirements
that you expect a Software COTS component to satisfy. The True Planning
software cost model size definitions for all of the size units are listed below.
SLIM
SLIM uses effective system size composed of new, modified and reused
code. Deleted code is not considered in the model. If there is reused code than
the Productivity Index (PI ) factor may be adjusted to add in time and effort
for regression testing and integration of the reused code.
SLIM provides different sizing techniques including:
• Sizing by history
• Total system mapping
• Sizing by decomposition
• Sizing by module
• Function point sizing.
Alternative sizes to SLOC such as use cases or requirements can be used in
Total System Mapping. The user defines the method and quantitative mapping
factor.
Appendix A - Cost Model Descriptions 151
New Software
New Size New Size New Size
New Size
Non-executable
Modified Software
Adapted Size Pre-exists Size Adapted Size
Adapted Size
Non-executable
Amount of
Modification %
% Design Modified Redesign Required % % of Design Adapted
% Code Modified Reimplementation % of Code Adapted
Required %
% Integration Retest Required % % of Test Adapted
Required
Assessment and - -
Assimilation
Software - -
Understanding
Programmer - -
Unfamiliarity
- Deleted Size Deleted Size
Code Removal
Complexity
Reused Software
Reused Size Pre-exists Size Reused Size
Reused Size
Non-executable
- Redesign Required % % of Design Adapted
- Reimplementation % of Code Adapted
Required %
(continued )
152 Software Cost Estimation Metrics Manual for Defense Systems
Code Removal
Complexity
Generated Software
- - Auto Generated Code
Size
COCOMO II
The COCOMO II treatment of software adaptation includes a nonlinear
estimation model with the following parameters [8]:
• Software Understanding (SU) is an effort increment as a percent-
age based on the software structure, application clarity and self-
descriptiveness.
• Unfamiliarity (UNFM) is the programmer’s relative unfamiliarity with
the software which is applied multiplicatively to the Software Under-
standing increment.
• Assessment and Assimiliaton (AA) measures how much relative effort is
needed to determine whether a reused software module is appropriate to
the application, and to integrate its description into the overall product
description. AA is expressed as an effort percentage increment.
The overall Adaptation Adjustment Multiplier (AAM) in COCOMO II uses
the factors for AAF, SU, UNFM and AA as:
AA + AAF (1 + .02 · SU · U N F M )
AAM = , for AAF ≤ 50%
100
AA + AAF + SU · U N F M
AAM = , for AAF > 50%
100
SEER
The software adaption parameters in SEER are applied to the category
Pre-Existing software which is modified to fit into a new system. There are
two categories of pre-existing software:
• Pre-existing, Designed for Reuse
• Pre-existing, Not Designed for Reuse.
Each category is then composed of:
With these additional inputs SEER will automatically assign lower rework
percentages to software that is designed for reuse. The adaption parameters
applied to the pre-existing software to determine equivalent size are:
True Planning
The True Planning software adapted size parameters are detailed below.
• Adapted Code Size - The amount of existing code that must be changed,
deleted, or adapted for use in the new software project. When the value
is zero (0.00), the value for New Code Size or Reused Code Size must
be greater than zero.
• Percent of Code Adapted - The percentage of the adapted code that must
change to enable the adapted code to function and meet the software
project requirements.
• Percent of Test Adapted - The percentage of the adapted code test ar-
tifacts that must change. Test plans and other artifacts must change to
ensure that software that contains adapted code meets the performance
specifications of the Software Component cost object.
• Reused Code Size - The amount of pre-existing, functional code that
requires no design or implementation changes to function in the new
software project. When the value is zero (0.00), the value must be greater
than zero for New Code Size or Adapted Code Size.
• Reused Size Non-executable - The percentage of the Reused Code Size
that is non-executable (such as, data statements, type declarations, and
other non-procedural statements). Typical values for fourth generation
languages range from 5% to 30%. If a value cannot be obtained by any
other means, the suggested nominal value for non-executable code is
15%.
• Equivalent Source Lines of Code - The ESLOC ( Equivalent Source
Lines of Code) value describes the magnitude of a selected cost object
in equivalent Source Lines of Code size units. True Planning does not use
ESLOC in routine model calculations, but provides an ESLOC value for
any selected cost object. Different organizations use different formulas
to calculate ESLOC. The True Planning calculation for ESLOC is
SLIM
SLIM uses effective system size composed of new, modified and reused
code. Modified software designates changed software and Reused is unchanged.
The calculations for effective size used in SLIM involve the PI factor to adjust
for the relative adaptation effort. If there is reused code than the Productivity
Index (PI ) factor may be adjusted to add in time and effort for regression
testing and integration of the reused code.
156 Software Cost Estimation Metrics Manual for Defense Systems
SEER
Generated software is not designated as a separate entity in SEER. The
generator statements are counted as new lines of code. In maintenance, the
generated code may be used instead according the rules in Section Error! Ref-
erence source not found. for maintenance sizing. Function-Based Sizing is also
available in SEER to handle generated software.
True Planning
In True Planning, the parameter Auto Gen Size Non-executable represents
the percentage of the Auto Generated Code Size that is non-executable (such
as, data statements, type declarations, and other non-procedural statements).
Typical values for fourth generation languages range from 5% to 30%. If a
value cannot be obtained by any other means, the suggested nominal value for
non-executable code is 15%. Auto Generated Code Size describes the amount
of code generated by an automated design tool for inclusion in a component.
SLIM
Generated code is not treated as a separate category in SLIM. It could be
improvised through a user-defined size measure and gearing factor.
SEER
Translated code is not covered in SEER.
True Planning
In True Planning, Auto Trans Size Non-executable is the percentage of the
Auto Translated Code Size that is non-executable (such as, data statements,
type declarations, and other non-procedural statements). Typical values for
fourth generation languages range from 5% to 30%. If a value cannot be ob-
Appendix A - Cost Model Descriptions 157
tained by any other means, the suggested nominal value for non-executable
code is 15%. Auto Translated Code Size describes the amount of code trans-
lated from one programming language to another by using an automated
translation tool (for inclusion in a component). Auto Translation Tool Effi-
ciency is the percentage of code translation that is actually accomplished by
the tool. More efficient auto translation tools require more time to configure
the tool to translate. Less efficient tools require more time for code and unit
test on code that is not translated.
SLIM
Translated code is not covered in SLIM.
COCOMO II
COTS is not directly represented in the COCOMO II model. However,
COTS can be treated as reused software or be used in conjunction with the
COCOTS model. See further guidance for COTS estimation in [8].
SEER-SEM
COTS Elements available for sizing in SEER include:
• Quick Size
• Application Type Parameter
• Functionality Required Parameter
• Features
• Number of Features Used
• Unique Functions
• Data Tables Referenced
• Data Tables Configured
True Planning
The COTS estimation model in True Planning uses the following:
• Glue Code Size - The amount of glue code that will be written. Glue
Code holds the system together, provides interfaces between Software
COTS components, interprets return codes, and translates data into
the proper format. Also, Glue Code may be required to compensate
for inadequacies or errors in the COTS component selected to deliver
desired functionality.
SLIM
COTS is not explicitly modeled in SLIM.
Scale Drivers
Precedentedness none none
Development none Operating
Flexibility Specification
Architecture/Risk none none
Resolution
Team Cohesion none Development Team
Complexity
Process Maturity none 1 Organization
Productivity
- CMM Level
Product Attributes
Required Software Specification Level - Operating
Reliability Reliability Specification
Data Base Size none Code Size non
Executable
Product Complexity - Complexity (Staffing) Functional Complexity
- Application Class
Complexity
Required Reusability - Reusability Level Design for Reuse
Required
- Software Impacted
by Reuse
Documentation Match none Operating
to Lifecycle Needs Specification
Platform Attributes
Execution Time Time Constraints Project Constraints
Constraint - Communications and
Timing
Main Storage Memory Constraints Project Constraints
Constraint - Memory and
Performance
Platform Volatility - Target System Hardware Platform
Volatility Availability
(continued )
160 Software Cost Estimation Metrics Manual for Defense Systems
Personnel Attributes
Analyst Capability Analyst Capability Development Team
Complexity
- Capability of
Analysts and
Designers
Programmer Programmer Development Team
Capability Capability Complexity
- Capability of
Programmers
Personnel Continuity none Development Team
Complexity
- Team Continuity
Application Application Development Team
Experience Experience Complexity
- Familiarity with
Platform
Platform Experience - Development System Development Team
Experience Complexity
- Familiarity with
- Target System Product
Experience
Language and Toolset Programmer’s Development Team
Experience Language Experience Complexity
- Experience with
Language
Project Attributes
Use of Software Tools Software Tool Use Design Code and Test
Tools
Multi-site Multiple Site Multi Site
Development Development Development
Required Development none Start and End Date
Schedule
Appendix A - Cost Model Descriptions 161
Model Phases
COCOMO II Inception
Elaboration
Construction
Transition
Maintenance
SEER-SEM Management
Software Requirements
Design
Code
Data Programming
Test
CM
QA
Model Categories
COCOMO II Software Engineering Labor
B.1 Overview
The Work Breakdown Structures were adapted from MIL-STD-881C to
assist in identifying the appropriate Application Type (AT). Each System
from 881C is listed with the associated one of more Metrics Manual Operating
Environments. Within the environments, look through the Subsystems to find
one that matches the component being estimated. Each Subsystem or Sub-
Subsystem has a matching AT.
165
166 Software Cost Estimation Metrics Manual for Defense Systems
• Air Vehicle
• Avionics
– Communication / Identification
∗ Intercoms →RTE
∗ Radio System(S) →RTE
∗ Identification Equipment (IFF) →RTE
∗ Data Links →RTE
– Navigation / Guidance
∗ Radar →SCP or RTE depending on decomposition
∗ Radio →SCP or RTE depending on decomposition
∗ Other Essential Nav Equipment →RTE
∗ Radar Altimeter →SCP
∗ Direction Finding Set →RTE
∗ Doppler Compass →RTE
– Mission Computer / Processing →MP
– Fire Control
∗ Search, Target, Tracking Sensors →SSP
∗ Self-Contained Navigation →RTE
∗ Self-Contained Air Data Systems →RTE
∗ Displays, Scopes, Or Sights →RTE
∗ Bombing Computer →MP
∗ Safety Devices →RTE
– Data Display and Controls
∗ Multi-Function Displays →RTE
Appendix B - MIL-STD-881C WBS Mapping to Application Types 167
• Air Vehicle
168 Software Cost Estimation Metrics Manual for Defense Systems
– Vehicle Subsystems
∗ Propulsion →VC
∗ Flight Control Subsystem →VC
∗ Auxiliary Power Subsystem →VC
∗ Hydraulic Subsystem →VC
∗ Electrical Subsystem →VC
∗ Environmental Control →VC
∗ Subsystem Fuel Subsystem →VC
∗ Landing Gear →VC
∗ Rotor Group →VC
∗ Drive System →VC
– Avionics
∗ Communication / Identification →RTE
∗ Navigation / Guidance →RTE
∗ Automatic Flight Control →VC
∗ Health Monitoring System →SYS
∗ Stores Management →VP
∗ Mission Processing →MP
∗ Fire Control →RTE
• Payload
• Munition
– Guidance
∗ Seeker Assembly →SCP
Appendix B - MIL-STD-881C WBS Mapping to Application Types 169
• Launch System
• Air Vehicle
170 Software Cost Estimation Metrics Manual for Defense Systems
– Guidance
∗ Seeker Assembly →SCP
∗ Guidance Software →RTE
– Navigation
∗ Sensor Assembly →SCP
∗ Navigation Software →RTE
– Payload
∗ Target Defeat Mechanism →RTE
∗ Target Detection Device →SCP
∗ Fuze →SCP
∗ Payload-specific software →VP
– Power and Distribution
∗ Primary Power →VC
∗ Power Conditioning Electronics →VC
∗ Power and distribution software →VC
– Communications
∗ Antenna Assembly →SCP
∗ Communications software →RTE
– Propulsion Subsystem
∗ Motor Engine →VC
∗ Thrust Vector Actuation →VC
∗ Attitude Control System →VC
∗ Fuel / Oxidizer Liquid Management →VC
∗ Arm / Fire Device →VC
∗ Flight Termination/Mission Termination >> RTE
∗ Propulsion software →VC
– Controls
∗ Controls software →VC
– Reentry System →VC
– Post boost System →VC
– On Board Test Equipment →TST
– On Board Training Equipment →TRN
– Auxiliary Equipment →SYS
– Air Vehicle Software →VC or MP depending on decomposition
• Encasement Device
• Launch Vehicle
– Stage(s)
∗ Propulsions System →VC
∗ Reaction Control System →VC
∗ Recovery System →VC
∗ Environmental Control System →VC
∗ Stage Peculiar Avionics →RTE
– Avionics
∗ Guidance Navigation and Control →RTE
∗ Power →VC
∗ Data Acquisition and Telemetry →RTE
∗ Range Tracking & Safety (Airborne) →RTE
∗ Flight Software →VC
• Flight Operations
– Real-time mission control
∗ Telemetry processing →RTE
∗ Communications →RTE
∗ Data reduction and analysis →IIS
• Ship
– Command, Communication & Surveillance
172 Software Cost Estimation Metrics Manual for Defense Systems
• Maritime Vehicle
• Payload
– Survivability Payload →VP
– Intelligence, Surveillance Reconnaissance Payload →VP
– Armament / Weapons Delivery Payload →VP
– Mission Payload →VP
• Bus
– Structures & Mechanisms (SMS) →VC
– Thermal Control (TCS) →VC
– Electrical Power (EPS) →VC
– Attitude Control (ACS) →VC
– Propulsion →VC
– Telemetry, Tracking, & Command (TT&C) →RTE
– Bus Flight Software →VC
• Payload
174 Software Cost Estimation Metrics Manual for Defense Systems
• Primary Vehicle
– System Survivability →RTE
– Turret Assembly →RTE
– Suspension / Steering →RTE
– Vehicle Electronics
∗ Computers And Other Devices For Command And Control
→RTE
∗ Data Control And Distribution →MP
∗ Controls And Displays →RTE
∗ Power Distribution And Management →VC
∗ Health Management Systems →VC
– Power Package / Drive Train
∗ Controls And Instrumentation →VC
∗ Power Transmission, Final Drivers, And Power Takeoffs →VC
∗ Brakes And Steering When Integral To Power Transmission
→VC
∗ Hybrid Electric Drive Systems →VC
∗ Energy Storage Systems →VC
– Fire Control
∗ Radars And Other Sensors →SCP
∗ Controls And Displays →RTE
∗ Sights Or Scopes →RTE
∗ Range Finders, Gun Drives And Stabilization Systems →VP
– Armament
∗ Main Gun And Secondary Guns →VP
∗ Missile Launchers →VP
∗ Non-Lethal Weapons →VP
176 Software Cost Estimation Metrics Manual for Defense Systems
C.1 Overview
Nomograms can be used for rapid, graphical computation of cost models
without computers or manual calculations. They are the most concise repre-
sentation to visualize and quantify CER model relationships. They provide
instant results when approximate answers are appropriate and useful. The
graphs can be also used as crosschecks of other estimation methods and tools,
or help flag their erroneous inputs. A couple examples for the types shown in
this appendix are illustrated.
An example of using a simple nomogram is demonstrated in Figure C.1
for the Real Time Embedded - Aerial Vehicle CER. The corresponding effort
for any size on the left axis is adjacent on the right side.
KESLOC PM
250 245 1300
240 235 1250
230 225
220 215
1200
210 205
1150
200 195 1100
190 185 1050
180 175 1000
170 165 950
160 155 900
150 145 850
140 135 800
130 125 750
120 115 700
110 105 650
100 95 600
90 85 550
80 75 500
70 65 450
60 55 400
50 45 350
40 35
300
30 250
20
25 200
15 150
10 100
5 50
0 0
177
178 Software Cost Estimation Metrics Manual for Defense Systems
KSLOC EAF
250
PM 10
10000 8
200 7
6000
6
150 4000
5
3000 4.5
2000 4
100 3.5
1500
90 3
80 1000 2.5
70
600 2
60
400
50 1.5
45 300
40 200
35 150 1
30
100 0.8
25 0.7
60
20 0.6
40
0.5
30
15 0.4
20
0.35
15
0.3
10 10
0.25
KESLOC PM
250
245
1550
240
235 1500
230
225 1450
220
215 1400
210 1350
205
200 1300
195
1250
190
185 1200
180
175 1150
170 1100
165
160 1050
155
150 1000
145 950
140
135 900
130
125 850
120 800
115
110 750
105
700
100
95 650
90
85 600
80 550
75
70 500
65 450
60
55 400
50 350
45
40 300
35 250
30
25 200
20 150
15
100
10
5 50
0 0
KESLOC PM
250
245
240 950
235
230
225
220 900
215
210 850
205
200
195
190 800
185
180
175 750
170
165
160 700
155
150 650
145
140
135
600
130
125
120 550
115
110
105 500
100
95
450
90
85
80 400
75
70 350
65
60
55 300
50
45 250
40
35
200
30
25
150
20
15
100
10
5 50
0 0
KESLOC PM
250
245
240 1350
235
230 1300
225
220 1250
215
210 1200
205
200 1150
195
190
185 1100
180
175 1050
170
165 1000
160
155 950
150
145 900
140
135 850
130
125 800
120 750
115
110 700
105
100 650
95
90 600
85
80 550
75
70 500
65
450
60
55 400
50
45 350
40 300
35
30 250
25
200
20
15 150
10 100
5 50
0 0
KESLOC PM
250
245 2600
2550
240 2500
235 2450
230 2400
225 2350
220 2300
2250
215
2200
210 2150
205 2100
200 2050
195 2000
190 1950
185 1900
1850
180 1800
175 1750
170 1700
165 1650
160 1600
155 1550
150 1500
145 1450
140 1400
1350
135
1300
130 1250
125 1200
120 1150
115 1100
110 1050
105 1000
100 950
95 900
90 850
85 800
80 750
75 700
70 650
65 600
60 550
55 500
50 450
45 400
40 350
35 300
30 250
25 200
20 150
15 100
10 50
5
0 0
KESLOC PM
250
245
240 1350
235
230 1300
225
220 1250
215
210
205 1200
200
195 1150
190
185
180 1100
175
170 1050
165
160 1000
155
150 950
145
140
135 900
130
125 850
120
115 800
110
105 750
100
95 700
90
85 650
80
75 600
70 550
65
60 500
55
50 450
45
400
40
35 350
30 300
25
250
20
15 200
10 150
5
100
50
0 0
KESLOC PM
250 1750
245
240 1700
235 1650
230 1600
225
220 1550
215 1500
210
205 1450
200 1400
195
1350
190
185 1300
180 1250
175
170 1200
165 1150
160
155 1100
150 1050
145
1000
140
135 950
130 900
125
120 850
115 800
110 750
105
100 700
95 650
90
85 600
80 550
75
70 500
65 450
60 400
55
50 350
45 300
40
35 250
30 200
25
150
20
15 100
10 50
5
0 0
FIGURE C.8: Ground Site - Command and Control (C&C) CER Nomogram
186 Software Cost Estimation Metrics Manual for Defense Systems
KESLOC PM
250 750
245
240
235
230 700
225
220
215 650
210
205
200 600
195
190
185 550
180
175
170
165 500
160
155
150 450
145
140
135 400
130
125
120 350
115
110
105
100 300
95
90
85 250
80
75
70 200
65
60
55
150
50
45
40
35 100
30
25
20 50
15
10
5
0 0
FIGURE C.9: Ground Site - Custom AIS Software (CAS) CER Nomogram
Appendix C - CER Nomograms 187
KESLOC PM
250 1050
245
240
235 1000
230
225
220 950
215
210
205 900
200
195
850
190
185
180 800
175
170
165 750
160
155
150 700
145
140 650
135
130
125 600
120
115 550
110
105
100 500
95
90 450
85
80 400
75
70
65 350
60
55 300
50
45 250
40
35 200
30
25 150
20
15 100
10
50
5
0 0
KESLOC PM
250
245 700
690
240 680
235 670
230 660
225 650
640
220 630
215 620
210 610
205 600
590
200 580
195 570
190 560
185 550
540
180 530
175 520
170 510
165 500
490
160 480
155 470
460
150 450
145 440
140 430
135 420
410
130 400
125 390
380
120 370
115 360
110 350
340
105 330
100 320
95 310
90 300
290
85 280
270
80 260
75 250
240
70 230
65 220
60 210
55
200
190
180
50 170
45 160
40 150
140
35 130
120
30 110
25 100
90
20 80
70
15 60
50
10 40
30
5 20
10
0 0
KESLOC PM
250
245
240 1350
235
230 1300
225
220 1250
215
210 1200
205
1150
200
195
190 1100
185 1050
180
175 1000
170
165 950
160
155 900
150
145 850
140
135 800
130
125 750
120 700
115
110 650
105
100 600
95
90 550
85
80 500
75
450
70
65 400
60
55 350
50
45 300
40 250
35
30 200
25
150
20
15 100
10
50
5
0 0
FIGURE C.12: Ground Site - Real Time Embedded (RTE) CER Nomogram
190 Software Cost Estimation Metrics Manual for Defense Systems
KESLOC PM
250
245 2450
240 2400
235
230 2350
225 2300
220 2250
215
210 2200
205 2150
200 2100
195 2050
190 2000
185
1950
180
175 1900
170 1850
165 1800
160 1750
155 1700
150 1650
145
140 1600
135 1550
130 1500
125 1450
120 1400
115 1350
110 1300
105 1250
100 1200
95 1150
90 1100
85 1050
80 1000
75 950
70 900
65 850
60 800
55 750
50 700
45 650
40 600
550
35
500
30 450
25 400
20 350
15
300
250
10 200
150
5 100
50
0 0
FIGURE C.13: Ground Site - Sensor Control and Signal Processing (SCP)
CER Nomogram
Appendix C - CER Nomograms 191
KESLOC PM
250
245
1050
240
235
230 1000
225
220
215 950
210
205 900
200
195
190 850
185
180 800
175
170
165 750
160
155 700
150
145
140 650
135
130 600
125
120 550
115
110
105 500
100
95 450
90
85
80 400
75
70 350
65
60 300
55
50 250
45
40
35
200
30
150
25
20
15
100
10 50
5
0 0
KESLOC PM
250
245 3300
240 3200
235
230 3100
225 3000
220
2900
215
210 2800
205 2700
200
2600
195
190 2500
185
2400
180
175 2300
170 2200
165
2100
160
155 2000
150 1900
145
140 1800
135 1700
130
1600
125
120 1500
115
1400
110
105 1300
100 1200
95
90 1100
85
80 1000
75 900
70 800
65
60 700
55
600
50
45 500
40
35 400
30 300
25
20 200
15
10 100
5
0 0
KESLOC PM
250
245
240
235
230
225 3000
220
215
210
205
200
195
2500
190
185
180
175
170
165
160 2000
155
150
145
140
135
130
125 1500
120
115
110
105
100
95
90
85 1000
80
75
70
65
60
55
50 500
45
40
35
30
25
20
15
10
5
0 0
FIGURE C.16: Aerial Vehicle - Real Time Embedded (RTE) CER Nomo-
gram
196 Software Cost Estimation Metrics Manual for Defense Systems
KESLOC PM
250
245 3200
240
235 3100
230
225 3000
220 2900
215
210 2800
205
200 2700
195
2600
190
185 2500
180
175 2400
170 2300
165
160 2200
155
150 2100
145
140 2000
135 1900
130
125 1800
120 1700
115
110 1600
105
100 1500
95 1400
90
85 1300
80 1200
75
70 1100
65
1000
60
55 900
50 800
45
700
40
35 600
30 500
25
400
20
15 300
10 200
5 100
0 0
FIGURE C.17: Aerial Vehicle - Sensor Control and Signal Processing (SCP)
CER Nomogram
Appendix C - CER Nomograms 197
KESLOC PM
250 2650
245 2600
240 2550
235 2500
230 2450
225 2400
2350
220
215 2300
2250
210 2200
205 2150
200 2100
195 2050
190 2000
185 1950
180 1900
175 1850
170 1800
1750
165
1700
160 1650
155 1600
150 1550
145 1500
140 1450
135 1400
130 1350
125 1300
120 1250
115 1200
1150
110 1100
105
1050
100 1000
95 950
90 900
85 850
80 800
75 750
70 700
65 650
60 600
55 550
50 500
45 450
40 400
35 350
30 300
25 250
20 200
15 150
10 100
5 50
0 0
KESLOC PM
250
245 2000
240 1950
235
230 1900
225 1850
220 1800
215
210 1750
205 1700
200 1650
195
190 1600
185 1550
180 1500
175
1450
170
165 1400
160 1350
155
1300
150
145 1250
140 1200
135 1150
130
125 1100
120 1050
115 1000
110 950
105
100 900
95 850
90 800
85 750
80
75 700
70 650
65 600
60 550
55 500
50 450
45
40 400
35 350
30 300
25 250
20 200
15 150
10 100
5 50
0 0
KESLOC PM
250 1150
245
240 1100
235
230
225 1050
220
215 1000
210
205 950
200
195
190 900
185
180 850
175
170 800
165
160 750
155
150 700
145
140 650
135
130
125 600
120
115 550
110
105 500
100
95 450
90
85
400
80
75
350
70
65
60 300
55
50 250
45
40 200
35
30 150
25
20 100
15
10 50
5
0 0
KESLOC PM
250 2150
245
240 2100
235 2050
230 2000
225 1950
220 1900
215 1850
210 1800
205 1750
200 1700
195
1650
190
185 1600
180 1550
175 1500
170 1450
165 1400
160 1350
155
1300
150 1250
145
140 1200
135 1150
130 1100
125 1050
120 1000
115 950
110 900
105
850
100
95 800
90 750
85 700
80 650
75 600
70 550
65
60 500
55 450
50 400
45 350
40 300
35
250
30
25 200
20 150
15 100
10 50
5
0 0
KESLOC PM
250 1100
245
240
235 1050
230
225
220 1000
215
210 950
205
200 900
195
190
185 850
180
175 800
170
165
750
160
155
150 700
145
140 650
135
130
125 600
120
115 550
110
105 500
100
95
450
90
85
80 400
75
70 350
65
60 300
55
50 250
45
40 200
35
30 150
25
20 100
15
10 50
5
0 0
KESLOC PM
250
245
240 700
235
230
225
220 650
215
210
205 600
200
195
190 550
185
180
175
170 500
165
160
155 450
150
145
140
135 400
130
125
120 350
115
110
105 300
100
95
90
85 250
80
75
70 200
65
60
55
150
50
45
40
35 100
30
25
20 50
15
10
5
0 0
KESLOC PM
250 3200
245
240 3100
235
230 3000
225
220 2900
215
2800
210
205 2700
200
195 2600
190
185 2500
180 2400
175
170 2300
165
160 2200
155
2100
150
145 2000
140
135 1900
130 1800
125
120 1700
115
1600
110
105 1500
100
95 1400
90 1300
85
80 1200
75
1100
70
65 1000
60 900
55
50 800
45 700
40
600
35
30 500
25
400
20
300
15
10 200
5 100
0 0
FIGURE C.24: Sensor Control and Signal Processing (SCP) CER Nomo-
gram
206 Software Cost Estimation Metrics Manual for Defense Systems
KESLOC PM
250
245
240 1100
235
230 1050
225
220 1000
215
210
205 950
200
195 900
190
185 850
180
175
170 800
165
160 750
155
150 700
145
140
135 650
130
125 600
120
115 550
110
105
100 500
95
90 450
85
80 400
75
70 350
65
60 300
55
50 250
45
40
35
200
30
150
25
20
15
100
10 50
5
0 0
KESLOC PM
250
245
240 900
235
230
225 850
220
215
210 800
205
200
195 750
190
185
180 700
175
170 650
165
160
155 600
150
145
140 550
135
130
125 500
120
115
450
110
105
100 400
95
90
85 350
80
75
70 300
65
60 250
55
50
45 200
40
35 150
30
25
20 100
15
10 50
5
0 0
KESLOC PM
250 1350
245
240 1300
235
230 1250
225
220
215 1200
210
205 1150
200
195 1100
190
185 1050
180
175 1000
170
165 950
160
155 900
150
145 850
140
135 800
130
125 750
120
115 700
110
105 650
100
95 600
90
85 550
80
75 500
70 450
65
60 400
55
50 350
45
40 300
35 250
30
25 200
20 150
15
10 100
5 50
0 0
KESLOC PM
250
245
240 1100
235
230 1050
225
220 1000
215
210 950
205
200 900
195
190
185 850
180
175 800
170
165 750
160
155
700
150
145
650
140
135
130 600
125
120 550
115
110 500
105
100 450
95
90
85 400
80
75 350
70
65 300
60
55 250
50
45
200
40
35
150
30
25
20 100
15
10 50
5
0 0
KESLOC PM
250 1850
245
240 1800
235 1750
230 1700
225
1650
220
215 1600
210 1550
205
200 1500
195 1450
190 1400
185
1350
180
175 1300
170 1250
165
160 1200
155 1150
150 1100
145
140 1050
135 1000
130 950
125
120 900
115 850
110 800
105
100 750
95 700
90 650
85
80 600
75 550
70 500
65
60 450
55 400
50 350
45
40 300
35 250
30
25 200
20 150
15 100
10
5 50
0 0
KESLOC PM
250
245
2500
2450
240 2400
235
2350
230 2300
225 2250
220 2200
215 2150
210 2100
205 2050
200 2000
195 1950
190 1900
185 1850
180 1800
175 1750
170 1700
165 1650
160 1600
155 1550
150 1500
145 1450
140 1400
135 1350
130 1300
125 1250
120 1200
115 1150
110 1100
105 1050
100 1000
95 950
90 900
85 850
80 800
75 750
70 700
65 650
60 600
55 550
50 500
45 450
40 400
35 350
30 300
25 250
20 200
15 150
10 100
5 50
0 0
KESLOC PM
250 1950
245
240 1900
235 1850
230
225 1800
220 1750
215
210 1700
205 1650
200
195 1600
190 1550
185
180 1500
175 1450
170
165 1400
160 1350
155
150 1300
145 1250
140 1200
135
130 1150
125 1100
120
115 1050
110 1000
105 950
100
95 900
90 850
85
800
80
75 750
70 700
65 650
60 600
55
550
50
45 500
40 450
35 400
30 350
25 300
20 250
15 200
10 150
5 100
50
0 0
KESLOC PM
250
245 1250
240
235 1200
230 1150
225
220 1100
215
210 1050
205
200 1000
195
190 950
185
180 900
175
850
170
165 800
160
155 750
150
145 700
140
135 650
130
125 600
120
115 550
110
105 500
100 450
95
90
85 400
80 350
75
70
65 300
60 250
55
50
45 200
40
35 150
30
25 100
20
15 50
10
5
0 0
P M = 2.94·KESLOC 1.0997
KSLOC
1000
900
800
700 PM
600 60000
500 40000
450 30000
400 25000 EAF
20000 10
350
15000
300 8
10000 7
250 8000
6
6000
200 5
4000 4.5
3000 4
150 2500 3.5
2000
3
1500
100 2.5
90 1000
800 2
80
600
70
400 1.5
60
300
50 250
45 200 1
40 150
35 0.8
100 0.7
30 80
0.6
60
25
0.5
40 0.45
20 30 0.4
25 0.35
20
15 0.3
15
0.25
10
8 0.2
10
9 6
8 4 0.15
7 3
6 2.5
2 0.1
5 1.5
4.5
4 1
3.5
3 P M = 2.94 ∗ KSLOC 1.0997 ∗ EAF
2.5
D.1 Overview
Unified CodeCount (UCC) is a source code counting and differencing tool
[41]. It allows the user to count, compare, and collect both physical and logical
differentials between two versions of the source code of a software product.
The differencing capabilities allow users to count the number of added/new,
deleted, modified, and unmodified physical and logical source lines of code
(SLOC) of the current version in comparison with the previous version. With
the counting capabilities, users can generate the physical, logical SLOC counts,
and other sizing information, such as comment and keyword counts, of the
target program.
The tool can be compiled using a C/C++ supported compiler. It is run by
providing files of filenames to be counted or providing the directories where
the files reside. It can be downloaded from http://csse.usc.edu/research/
CODECOUNT/.
Sample output is shown below in Figure D.34.
RESULTS SUMMARY
Total Blank Comments Compiler Data Exec. Number File SLOC
Lines Lines Whole Embedded Direct. Decl. Instr. of Files SLOC Type Definition
11833 1140 1620 328 60 496 8517 22 9073 CODE Physical
11833 1140 1620 328 60 496 6434 22 6983 CODE Logical
The SLOC count in this summary is the total of 6983 Logical SLOC con-
sisting of 496 data declarations and 6434 executable instructions. This is the
software size to be used for estimation, measurement of actuals, and model
calibration.
217
218 Software Cost Estimation Metrics Manual for Defense Systems
Appendix E
Acronyms
AV Aerial Vehicle
219
220 Software Cost Estimation Metrics Manual for Defense Systems
EI External Inputs
EIF External Interfaces
EO External Outputs
EQ External Inquiries
EKSLOC Equivalent Thousands of Source Lines of Code
ESLOC Equivalent Source Lines of Code
FPA Function Point Analysis
FPC Function Point Count
GAO U.S. General Accounting Office
GS Ground Site
GSF Ground Site Fixed
GSM Ground Site Mobile
GUI Graphical User Interface
GV Ground Vehicle
GVM Ground Vehicle Manned
GVU Ground Vehicle Unmanned, e.g., Robot vehicles
HOL Higher Order Language
HWCI Hardware Configuration item
IDPD Incremental Development Productivity Decline
IFPUG International Function Point User’s Group
IIS Intelligence and Information Software
ILF Internal Files
IM Integration Modified Percentage
IRS Interface Requirement Specification
IS Information System
KESLOC Thousands of Equivalent Source Lines of Code
KSLOC Thousands of Source Lines of Code
LCC Life Cycle Cost
Appendix E - Acronyms 221
MP Mission Processing
MV Maritime Vessel
OO Object Oriented
OV Ordnance Vehicle
PC Process Control
Pr Productivity
SU Software Understanding
SV Space Vehicle
VP Vehicle Payload
WBS Work Breakdown Structure
Bibliography
[2] Air Force Cost Analysis Agency (AFCAA). Cost Risk and Uncertainty
Analysis Handbook. United States Air Force Cost Analysis Agency,
Hanscom AFB, MA, 2007.
[7] B. Boehm. Future challenges for systems and software cost estimation
and measurement. In Proceedings of the 13th Annual Practical Software
Measurement (PSM) Conference, 2009.
[9] B. Boehm and V. Basili. Software defect reduction top 10 list. IEEE
Computer, January 2001.
223
224 Software Cost Estimation Metrics Manual for Defense Systems
[13] M. Broy. Seamless Method- and Model-based Software and Systems En-
gineering, in The Future of Software Engineering. Springer, 2011.
[14] M. Cohn. Agile Estimating and Planning. Prentice Hall PTR, Upper
Saddle River, NJ, 2005.
[15] E. Colbert and B. Boehm. Cost estimation for secure software & systems.
In Proceedings of ISPA / SCEA 2008 Joint International Conference,
June 2008.
[17] D. Galorath and M. Evans. Software Sizing, Estimation, and Risk Man-
agement. Taylor & Francis Group, Boca Raton, FL, 2006.
[18] United States Government Accountability Office (GAO. GAO Cost Esti-
mating and Assessment Guide. United States Government Accountability
Office (GAO, Washington, D.C., 2009.
[20] G. Gill and M. Iansiti. Microsoft corporation: Office business unit. Har-
vard Business School Case Study 691-033, 1994.
[23] R. Hopkins and K. Jenkins. Eating the IT Elephant: Moving from Green-
field Development to Brownfield. IBM Press, 2008.
[24] ISO. ISO JTC 1/SC 27, Evaluation Criteria for IT Security, in Part 1:
Introduction and general model. ISO, Geneva, Switzerland, 1999.
AAF, 25, 26, 41–42 COTS, 13, 20, 23, 25, 114, 115, 123,
Activities, 16, 17, 29–30, 134, 144 131, 132
Adaptation Adjustment Factor, see CSDR, 9, 17
AAF Custom AIS Software (CAS), 53, 78,
Adapted software, 20, 23, 25–26, see 201
also Modified software and
Reused software DACIMS, 2, 4, 10
Aerial Vehicle (AV), 47, 56, 71, 184, DAMS, 2, 3
194 Data assessment, 6, 32–43
Application Type, 4, 5, 7, 13, 48–56, Data Dictionary, 11, 16, 34, 38
128 Data normalization, 1, 5, 134, 136,
Auto-generated software, 15, 35, 36, 144
42 Data quality, 33, 36–38
Data segmentation, 56
Blank lines, 22 DCARC, 9, 17
Declarations, 21, 22
Defects, 16
Carryover code, 15 Deleted software, 15
CER, vii, 1–7, 33, 44–109, 135 Design modified (DM), 25, 41–42, 112
COCOMO, 116, 117, 119, 146, 147, DoD, vii, 1–4, 10–11, 17, 126
149, 152, 153, 156–158, 161– Duration, 31, 33, 34, 134–136, 144, see
164, 213 also Schedule
Code counting, 7, 15, 111
Code modified (CM), 25, 41–42, 112 Effort, 1, 4, 6, 15, 29, 33, 35, 36, 38,
Command and Control (C&C), 50, 39, 134–136, 144–150, 153–
201 157, 161
Command and Control (CC), 77 Enterprise Information Systems (EIS),
Comments, 22 54
Communication (COM, 79 Enterprise Service Systems (ESS), 53
Communications (COM), 50, 201 Equivalent size, 4, 13, 20, 23–26, 33,
Compiler directives, 22, 23 35, 37, 39, 40, 42, 112, 117,
Converted software, 20, 22, 25 149, 152, 153, 155, see also
Cost, 1, 4, 5 ESLOC
Cost Estimating Relationships, see Equivalent Source Lines of Code, see
CER ESLOC
Cost estimation process, 3, 7 ESLOC, 24, 36, 112, 113
Cost model, 3, 5, 7, 145–161, 213 Executables, 21, 22
229
230 Software Cost Estimation Metrics Manual for Defense Systems