Recommended Reuse Metrics

JavaScript enabled browser required!

Basic "ReuCalc" Calculator                                                                                                       

To find your level of reuse and estimate the benefits to your organization, simply enter the amount of your new and modified software, the amount of software you reused, and the amount of software you wrote for others to reuse. The table contains recommended default values for most information. Push calculate when you finish. Click on highlighted terms for help.

2. Push:  


 

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.


Reference:

Poulin, Jeffrey S. Measuring Software Reuse: Principles, Practices, and Economic Models. Addison-Wesley (ISBN 0-201-63413-9), Reading, MA, 1997.

<hr size=2 width="100%" align=center>


Jeff Poulin owns this page.