Working on a large project with many applications (or maybe a product
line)? Try the Advanced "ReuCalc" Calculator
!
Explanation of Reuse Metric Terms
Additional Development Cost (ADC)
The cost your organization incurred by writing reusable software for use
by other organizations or projects. We calculate ADC by multiplying the
historical cost to develop new code by the amount of code written for reuse
and adjusting based on the RCWR. For example, with an RCWR = 1.5,
the ADC represents an additional cost of 50% over new development.
Cost Avoidance
The financial benefit resulting from not having to expend resources. By
reusing software, an organization avoids a cost proportional to the cost
of having to develop that software new.
Cost Avoided by Others (ORCA)
The total financial benefit that other organizations experience by reusing
your software.
Cost per Error
Your organization's historical cost to fix errors after releasing new software
to the customer, in dollars per error. We recommend obtaining this value
from your contracts or financial planning group; otherwise use $10,000/error
as a default value. Uses dollars ($) for units.
Development Cost Avoidance (DCA)
The cost your organization avoided during the development phase of the
project by reusing software. DCA combines with Service Cost Avoidance
to equal the total Reuse Cost Avoidance (RCA) for your organization.
We calculate DCA by multiplying the historical cost to develop new code
by the amount of reused code (RSI) and adjusting based on the RCR. For
example, with an RCR = 0.2, the DCA represents an 80% savings over
new development. Uses dollars ($) for units.
Error Rate
The historical error rate in new software developed by your organization,
in errors per thousand lines of code. We recommend obtaining this value
from your contracts or financial planning group; otherwise use 0.5 errors/kLOC
as a default value. Uses errors per thousand lines of code (errors/kLOC)
for units.
External Reuse
Use of software from another organization or application; we count external
reuse in our economic models.
Internal Reuse
Use of software within an organization; a normal procedure in software
development that does not count as reuse.
Lines of Code (LOC)
(1) A logical line of code in a programming language source file, informally
counted by the number of semi-colons in the code and formally counted according
to rules established by organizations or code analysis tools. (2) An indicator
of overall effort on a program.
New or Changed Source Instructions
The amount of software your organization actually wrote or modified for
use only on this application (do not include Source Instructions Written
for Reuse by Others). Uses lines of code (LOC) for units.
New Development Cost (Cost/LOC)
The historical cost to develop new software in your organization, in dollars
per line of code. We recommend obtaining this value from your contracts
or financial planning group; otherwise use the industry average of $100/LOC
as a default value. Uses dollars ($) for units.
Organization (of people)
A programming team, department, or other autonomous group with software
development responsibility. Many organizations may contribute to software
development on a large project.
Organizational ROI
The total financial benefit to the project due to your organization's reuse
effort. We calculate Organizational ROI by subtracting your Additional
Development Cost (ADC) from your Reuse Cost Avoidance (RCA).
Uses dollars ($) for units.
Productivity Index
A metric that shows how an organization changes productivity through reuse
relative to an organization that does not participate in reuse, which has
a productivity index equal to 1.
Project
A large software development effort, typically made up of many organizations.
Reengineering
The use of existing software in a new application, after modifying the
software.
Relative Cost of Reuse (RCR)
The portion of the effort that it takes to reuse a component without modification
versus writing it new. The RCR can vary depending on several factors and
range from about .03 up to about 0.4. We recommend an RCR = 0.2,
which means that it takes about 20% of the effort to reuse software as
it takes to write it new.
Relative Cost of Writing for Reuse (RCWR)
The portion of the effort that it takes to write a reusable component versus
writing it for one-time use only. The RCWR can vary depending on several
factors and can range from about 1.0 up to about 2.2. We recommend an RCWR
= 1.5, which means that it takes about 50% additional effort to write
reusable software.
Reusability
The attributes or characteristics of software that affect a developer's
ability to reuse the software. This calculator does not address software
reusability.
Reuse
The incorporation into an application of unmodified software components
obtained from other programs external to the application. These external
sources typically include other applications, other organizations, and
reuse libraries.
Reuse Cost Avoidance (RCA)
The total financial benefit to an organization resulting from reuse
of software obtained from someplace else. Since your experience benefits
both during development (because you don't have to write the code) and
during maintenance (because you don't have to fix errors in the code) the
RCA equals the sum of Development Cost Avoidance (DCA) and Service
Cost Avoidance (SCA). Uses dollars ($) for units.
Reuse Level
The portion of a program coming from reused software, generally expressed
as a percent of the total source lines for the program.
Reuse Leverage
An indicator of the multiplier effect of reuse, used as a productivity
index.
Reuse%
The indicator of reuse level based on the definition of RSI.
Reused Source Instruction (RSI)
Software that complies with the reuse definition (counting rules) adopted
by IBM, etc. See the reference below for a detailed discussion. Uses lines
of code (LOC) for units.
Reuse Value Added (RVA)
A productivity index based on both the amount of reuse achieved by an organization
and the amount of the organization's software actually reused by
other organizations. We calculate the RVA by dividing the total amount
of an organization's software in service by the amount of software the
organization maintains.
Service Cost Avoidance (SCA)
The cost your organization avoided during the maintenance phase of the
project by reusing software. SCA combines with Development Cost Avoidance
(DCA) to equal the total Reuse Cost Avoidance (RCA) for your
organization. We calculate SCA by multiplying your organization's historical
error rate by the historical cost to fix those errors and by the amount
of reused code (RSI). Uses dollars ($) for units.
Source Instructions Reused by Others (SIRBO)
The total amount of software produced for reuse by your organization that
other organizations actually reuse. Calculated by taking the sum of your
Source Instructions Written for Reuse by Others over every occurrence of
its use. Uses lines of code (LOC) for units.
Source Instructions Written for Reuse by Others (WRO)
The amount of software your organization wrote for reuse (reusable code).
This software took extra effort to write, and therefore represents an investment
in reuse. Uses lines of code (LOC) for units.
Total Source Instructions
The total number of lines of code in the application delivered by your
organization. Calculated by taking the sum of New or Changed Source Instructions,
Reused Source Instructions (RSI), and Source Instructions Written for Reuse
by Others. Uses lines of code (LOC) for units.