The Return on Investment on Commercial off-theshelf (COTS) Software Components
Preliminary Study Results

Date:
Author:August 27, 2002

Chris Brooke, ComponentSource

www.componentsource.com
Email: saveit@componentsource.com
US Headquarters

European Headquarters

ComponentSource
3391 Town Point Drive NW
Suite 350
Kennesaw, GA 30144-7079
USA

ComponentSource
30 Greyfriars Road,
Reading,
Berkshire RG1 1PE
United Kingdom

Tel: (770) 250-6100
Fax: (770) 250-6199
International: +1 (770) 250-6100

Tel: 0118 958 1111
Fax: 0118 958 9999
International: +44 118 958 1111

Copyright 1996-2003 ComponentSourceContents

Introduction
Why did we conduct this study?
What benefits does this bring?
How did we obtain and compile this data?

1
1
1
2

Key Assumptions
Measuring ROI on COTS components
Source Lines of CodeFunction Points
Interface Points

2
2
2
3
3

Methods Used to Determine ROIDevelopment Time
Development Cost
Reuse Utilization

4
4
4
4

AnalysisTable of sample data from study

55Conclusion

6

 ComponentSource 1996-2003

ROI on COTS Components

Page 1Introduction
Corporate IT departments are under growing pressure to cut costs and speed development of their software
applications while consistently improving quality. Increasingly, they are looking to reuse initiatives to help makethis happen. The internal reuse of software assets brings many advantages to the table, including reduced
redundancy by not “reinventing the wheel”. However, the reuse of internally developed components does not go
far enough to solve one of the most significant software development challenges: leveraging your developers’core competency – or, more accurately, requiring developers to venture outside of their core competency bylearning how to code functionality that is already available via tried, tested and debugged third-party
components.
For years now, the supply of commercial off-the-shelf software (COTS) components has grown significantly,
with thousands of COTS components available today on the open market. These components allow developers
to integrate complex functionality into their applications without requiring a steep learning curve. They are built
on the same industry standards that developers use to create components internally, and as such, can beeasily integrated into an organization’s applications. In the past the return on investment (ROI) value of COTS
components has been elusive to purchasers. This study for the first time shows how investing in an expert-built
COTS component or Web service – which range in price from several hundred to several thousand dollars on
the open market – may offset the development costs of applications to the tune of millions of dollars.
Why did we conduct this study?
While it seems obvious that the price paid for a COTS component ought to be less than the cost of equivalent
in-house development, the actual cost of COTS components in terms of effort to develop and encapsulate has
never been clear. Until now, the metrics for COTS Components has normally been hidden from purchasers.
This provides tremendous value to the end user and industry and offers the measurable business rationale for“buy before you build”, from a COTS component perspective. This is the first time that a study of this kind has
ever been undertaken. Our relationship with component vendors internationally, places ComponentSource in aunique position to be able to conduct it.
We are publishing the raw data on our public marketplace for our half a million strong developer user base sothat they are able to justify the buy versus build decision to management.
This data, moreover, is of importance to our SAVE-IT™1 customers who need to be able to justify theacquisition and reuse of COTS components. The same metrics may be used to assign value to their internallybuilt components and they are able to forecast cost savings/cost avoidance from reusing software assets fromboth internal and external sources.
What benefits does this bring?
Component usage is fundamentally a supply-driven process. However, until a sufficient supply of internallysourced components becomes available within an organization, COTS component content can be critical toreuse adoption, hitting your project’s early financial targets, and sustaining that effort over time.
The timeframe to stockpile the necessary critical mass of component content from internal efforts can stall
reuse behavior, and prevent the required time-to-market and cost avoidance gains needed to achieve shortterm ROI. Historically, reuse initiatives fall short of breakeven for the first 18 to 24 months. Because of
economic pressure, shifts in priorities, and changes in policy it is difficult to sustain the reuse efforts that occur
beyond these early timeframes. By supplementing internal components with COTS components, reuse efforts
can reach breakeven or positive ROI within a shortened financial horizon. This is because of the relative ComponentSource 1996-2003

ROI on COTS Components

Page 2

cost/price advantage of bought versus built components.
In the long term, the marketplace at large will always possess an exponentially greater capacity to grow a
categorically broad and functionally rich component supply more rapidly than any single organization could with
its own resources. Structuring COTS component usage as an ongoing supplement to internal reuse efforts
leverages this supply of marketplace intellectual property, thus expanding the organization’s ability to deliver
solutions without increasing headcount.
Accurate measurement of ROI is a critical success factor for any reuse initiative. It is, therefore, vital thatorganizations be able to measure the impact that COTS components will have on their overall project costs andtime to market.
How did we obtain and compile this data?
As the market leader for reusable components, ComponentSource has partnerships with over 700 component
vendors. We have leveraged these partnerships to collect the source lines of code (SLOC) by development
environment behind each of their component products. Furthermore, a prerequisite information requirement for
new component vendors that we bring to the market is that they give a line of code count behind their products.
Using SLOC, we then apply industry metrics to estimate development time displaced in person months and cost
avoidance as a dollar amount.
This study is two-thirds complete, with data still being collected.
With over 9,000 reusable COTS components and Web services currently available on the open market, thisextensive study evolved as part of the work that ComponentSource was undertaking with corporate customers
of its large-scale reuse solution SAVE-IT, many of which apply the same metrics used to assign value to COTS
components to assign value to their internally-built components. This in turn enables them to forecast costsavings and cost avoidance from reusing software assets from both internal and external sources.

Key Assumptions
Measuring ROI on COTS Components (Metrics)
There are several methods used throughout the software development industry for measuring software
productivity and reuse effectiveness. Of these, the three most commonly used by organizations are:source lines of code (SLOC), function points, and interface points. In this section, we look at these threemethods and discuss how they are typically used.

a) Source Lines of Code (SLOC)
It is commonly accepted within the development community that for each development language,
there is a predictable cost for each line of source code completed, debugged, and integrated into an
application. When applied to COTS components, the data needed to determine value aredevelopment language and SLOC. The development language is readily known. As a matter ofsimple compatibility, vendors of COTS components include this information with their components
when they are placed onto the open market.
Until now, vendors have not made information on SLOC available. As discussed in the introductionof this white paper, ComponentSource is leveraging its relationships with over 700 component
 ComponentSource 1996-2003

ROI on COTS Components

Page 3vendors - whose products comprise over 9,000 “best-of-breed” components on the open market- tofill in this gap, thus enabling effective measurement of reuse ROI by consumers of COTS
components.
The following guidelines were used by the vendors for counting SLOC:•Count functioning lines of code.

•

Don’t count remarks/comments.

•

Don’t count resource files/interface definition files.

•

Don’t count conditional compilation lines that would not get compiled in the release
executable.

•

Don’t count standard header files provided by operating systems or the compiler.

•

Do include header files if they include macros for lines of code.

These guidelines provide a solid level of consistency, allowing credible comparisons between
multiple products from a variety of COTS component vendors.

b) Function Points
Function points were first utilized by IBM as a means to measure program volume2. Each function
point represents a unit of functionality. This can be anything from calculating simple interest in afinancial application, to performing complex parsing of data for formatting into a report. While thiscan be useful when measuring internal reuse - since the level of complexity for each function point
is known - it is difficult to determine the work displacement for a COTS component, where thecomplexity of each individual function point is not known. When trying to determine the suitability of
a component for use in an enterprise application, relying on function points is less than optimal.

c) Interface Points
Interface points represent specific interfaces that are exposed by the component and can be
executed from the parent application. These include properties, methods and events. Eachinterface point may contain several function points, each containing possibly hundreds of lines ofcode. As with function points, interface points can be very useful when applied to internallydeveloped components. However, since COTS components are generally designed for maximum
flexibility, interface points are not able to provide the appropriate level of granularity for effective
measurement.
Consider, for example, an enterprise business component that performs financial calculations. It
could very well have only a few interface points, with each one encapsulating complex operations
involving hundreds of lines of code. Conversely, it could expose individual methods to break thisfunctionality into smaller, more specific operations. The size of the component remains the same,
but its value in terms of work displaced would be considerably higher if packaged in this way.

 ComponentSource 1996-2003

ROI on COTS Components

Page 4

Methods Used to Determine ROI
Of the methods outlined above, ComponentSource’s study is based upon Source Lines of Code, as well as
industry averages3 for metrics such as person months to develop and deploy 1,000 lines of code by
development environment, the cost per month of a salaried developer inclusive of office overheads and –given the fact that most commercial off-the-shelf components are feature-rich – the estimated percentage ofa COTS component that may be used as part of an application. This study takes into account publishedwork from the Software Engineering Institute (SEI) and Cost Xpert. It also includes input from expert
organizations such as Software Productivity Research, Inc (SPR) which has specialized in Software
Metrics, Software Estimation and Industry Benchmarking over the past 18 years. SPR has an accumulated
knowledgebase of industry data and has studied over 10,000 projects of varying types.
The most important measurable statistic needed to perform an ROI analysis is the SLOC. From this we areable to use industry metrics to decipher the cost savings encapsulated in each component. The calculations
were based on the following metrics:
SLOC * %Used = SLOC Displaced
SLOC Displaced * .0035 = Time Avoided (Person Months)
Time Avoided (Person Months) * Developer Cost Per Month = Cost Avoided
Cost Avoided - Single Developer License Price Of COTS = ROI•••SLOC - Source Lines of Code of the COTS Component.
%Used - The percentage of the component that will actually be used (i.e. displace actual work).
Time Avoided (Person Months) - Based upon the industry average of 3.5 person months per 1,000
lines of code.

This formula is explained in further detail in the following sub-sections.

a) Development TimeFirst we estimate the person-months required to develop 1,000 lines of code. This varies according
to the development environment that you are in. The industry average is 3.5 person months todevelop 1,000 lines of code in VC++/C++. Most of the data collected so far is for components
developed in the VC++/C++ environment. This assumption may be changed according to thedevelopment environment.

b) Development Cost
The cost per month to employ one developer is around $10,000 – this is the overall cost to
business to keep a salaried developer employed with office overheads. This assumption may bechanged, for example a smaller organization may measure this cost at $5,000 per month.

c) Reuse Utilization
As these are feature-rich components, we assume 10 percent usage of a COTS component. For
example, a grid or reporting component may have a variety of optional features that wouldn’t
necessarily be used. On the other hand, certain granular components – such as e-mail address
validation or address de-duplication – are likely to have most or indeed all of their features utilized
in an application. The metrics allow for this to be changed to any percentage value. Even if
component usage is changed to 1 percent, savings are still very high.

 ComponentSource 1996-2003

ROI on COTS Components

Page 5

Analysis
Utilizing the methods described in our assumptions, reuse metrics may be applied to COTS components in our
public marketplace. The table below provides a subset of the components analyzed within the scope of thestudy, and demonstrates the consistency of the metric analysis across a range of products from different
vendors. Of particular interest is the diversity of functionality represented in the preliminary results. As illustrated
by the sample data below, a large percentage of these COTS components encapsulate specific businessprocesses that are in particular demand in enterprise applications today.
Table 1 - Sample of study results
SLOC
AvoidedTime
Avoided(PersonMonths)SLOC

Language%
Component
Used

31,000

VC++

10%

3,100

11

$108,500

$399

272

Component Type
Data Compression
Components

72,773

VC++

10%

7,277

25

$254,706

$300

849

Data Compression
Components

29,994

VC++

10%

2,999

10

$104,979

$249

422

Data Compression
Components

Desaware
StorageTools

131,000

C++,

10%

13,10046$458,500

$199

2,304

Data Storage
Components

Dart PowerTCP
Mail Tool

44,991

VC++

10%

4,499

16

$157,469

$499

316

Email Components

Xceed
Encryption
Library

42,338

VC++

10%

4,234

15

$148,183

$300

494

Encryption
Components

Dart PowerTCP
SSL Tool

123,843

VC++

10%

12,38443$433,451

$999

434

Encryption
Components

Desaware File
Property
Component

11,000

C++

10%

1,100

4

$38,500$79

487

File Handling
Components

Data Dynamics#Grid

750,000

VC++

10%

75,000263$2,625,000$249

10,542

Grid Components

LEADTOOLSDocument
Imaging

2,466,899

C, C++

10%

246,690863$8,634,147$1,995

4,328

Imaging Components

Xceed Absolute
Packager

13,817Delphi

10%

1,382

5

$48,360$50

967

Component
Sax ActiveX Zip
Objects
Xceed Zip
Compression
Library
Dart PowerTCP
Zip
Compression
Tool

Cost Avoided

I
Developer
LicenseROI (x:1)

Dart PowerTCP
Emulation Tool

38,702

VC++

10%

3,870

14

$135,457

$499

271

Xceed Winsock
Library

79,998

VC++

10%

8,000

28

$279,993

$500

560

360,000

VC++

10%

36,000126$1,260,000

$599

2,104

Data Dynamics
ActiveCube
Data Dynamics
ActiveReports
Data Dynamics
ActiveSizer

690,000

VC++

10%

69,000242$2,415,000

$499

4,840

31,000

VC++

10%

3,100

11

$108,500

$99

1,096

Desaware NT
Services Toolkit

58,000

C++

10%

5,800

20

$203,000

$499

407

Installation Tools
InternetCommunication
Components
InternetCommunication
Components
NetworkCommunication
Components
On-Line Analytical
Processing
Components
Print & Preview
Components
ReportingComponents
Resizing Components
Security &Administration
Components

 ComponentSource 1996-2003

ROI on COTS Components

Page 6

SLOC
AvoidedTime
Avoided(PersonMonths)Component
Sax ActiveX
Comm Objects

SLOC

Language%
Component
Used

27,000

VC++

10%

2,700

9

$94,500$399

237

Farpoint Spread
Data Dynamics
ActiveBar

284,091

C, C++

10%

28,40999$994,319

$479

2,076

Component Type
Serial Communication
Components
Spreadsheet
Components

346,000

VC++

10%

34,600121$1,211,000

$479

2,528

Toolbar Components

DesawareActiveX
Gallimaufry

50,000

VB

10%

5,000

18

$175,000

$149

1,174

User Interface
Collections

Sax ActiveX
SmartUI

23,800

VB

10%

2,380

8

$83,300$399

209

User Interface
Components

Sax ActiveX
Basic Engine

65,000

VC++

10%

6,500

23

$227,500

$399

570

VBA and Scripting
Components

DesawareVersionStamper

214,000

C++, VB

10%

21,40075$749,000

$249

3,008

Version Control
Components

Desaware
SpyWorks
Professional

529,000

C++,
.NET

10%

52,900185$1,851,500

$379

4,885

Windows API
Components

VB,

Cost Avoided

I
Developer
LicenseROI (x:1)

Conclusion
When assessing the metrics for COTS components, one should also factor in the cost to evaluate and reuse
this functionality. Based on his analysis of a number of published studies, Jeffrey Poulin in his book “Measuring
Software Reuse” concludes that reusing software “takes 20% of the effort of new development”. Even given
Poulin’s assumptions, the study shows that using COTS components represents significant
ROI compared to the greater cost of creating the equivalent functionality from scratch.
The metrics supplied on COTS components indicate the potential cost and time avoidance relative to theapplication development effort, represented through the purchasing and deployment of mature, market proven,expert-built COTS components. Many of our SAVE-IT customers use the data supplied on COTS components
to justify their build vs. buy decisions, and cost forecast reuse savings and time to market benefits.
By applying industry averages to assign value to COTS components, companies can gain valuable informationon the benefits of reusing these components in addition to leveraging their internally created assets. This
information can be deployed at anytime during the development cycle of an application - from project planningto final revisions - to determine if the use of COTS components for specific functionality will be a cost-effective
solution to delivering better, faster, and cheaper solutions
We will be publishing the raw value data for COTS components collected on our public marketplace, this will
include the SLOC behind component products and person months displaced per development language.

Component Vendor Data Courtesy of:Dart Communications
Dart Communications was founded in 1994 to create quality components designed to support Internet
communication development. Dart's development teams carefully design each component for ease-of-use andmaximum range of effectiveness for both beginners and advanced developers alike. The results are tools thatfunction in many development environments, such as .NET, Visual Basic, Visual C++, PowerBuilder, ASP,
Delphi, C++ Builder and Office 97/XP.
Data Dynamics
Created in January 1996, Data Dynamics, Ltd., provides software tools and controls for application developers
 ComponentSource 1996-2003

ROI on COTS Components

Page 7using Microsoft design environments. The Company’s primary product focus is on Data Analysis andInformation Reporting. However, they also offer User Interface development products.
DesawareSince its inception in 1991 as one of the first third party Visual Basic component vendors, Desaware hasdeveloped innovative software products to assist developers in their programming efforts. Based on experience
going back to the days of Windows 1.0, the company understands the critical features needed by developers,
sometimes presenting a solution before developers are even aware of the problem.
FarPoint
FarPoint Technologies, Inc. was founded in 1991 and is located next to Research Triangle Park (RTP) in
Morrisville, North Carolina. The company develops and publishes professional components for Windows
development.
Their award-winning tools benefit corporations, software companies, and independent
consultants around the world as a cost-effective solution for building distributed enterprise-wide applications forcommercial or in-house use.
LEAD Technologies
LEAD Technologies has been producing imaging developer toolkits for the past 12 years. LEADTOOLS isdesigned to handle all imaging needs – from common loading, displaying and image processing, to complex
and high performance imaging demands of the document, medical and Internet industries. LEADTOOLS can
support projects requiring raster imaging, vector imaging or multimedia support, or even a combination of all
three.
Sax.NET
Sax.NET, formerly Sax Software, specializes in developing components for communications, data compression,
scripting, and user interfaces. Sax.NET was founded six years ago and is located in Eugene, Oregon.
Xceed Software Inc.
Xceed Software Inc. creates, markets and distributes software components for Microsoft Windows developers.
Since its launch in 1994, Xceed has been devoted exclusively to the Microsoft platform. The company's very
first product, Xceed Zip Compression Library, was built for Microsoft Visual Basic 3.0 and has been migrated toevery Microsoft platform since, including ActiveX and the .NET Framework.

Footnotes:
1

SAVE-IT consists of an enhanced and proven three-pronged commercial approach to establish the businessdrivers for reuse of software assets inside of an organization, and a scalable asset rich infrastructure to
institutionalize reuse. The customizable solution may be packaged according to a customer’s needs. It
differentiates itself in the market on three proven levels comprising: SAVE-IT™ Process™, SAVE-IT™
Catalog™, and SAVE-IT™ Content™.
2
Source: Cost Xpert Group, Estimating Software Costs, Author: William Roetzheim
3
ComponentSource has used industry averages to assign value to COTS components. For more informationon these please contact press@componentsource.com.
Revision History: First Published: August 27, 2002. May contain copyrighted data previous published andowned by ComponentSource.
About ComponentSource
ComponentSource is the world's largest marketplace and community for reusable software components for all platforms, and is first to
market as a Software Asset Value Provider with the launch of SAVE-IT, Software Asset Value Engineering in Information Technology. With
seven years’ experience at the helm of the component industry, ComponentSource is able to transfer its experience in running the world’s
largest reuse center on its public marketplace to the corporate environment. SAVE-IT is a mature three-pronged approach that establishes
effective enterprise-scale software reuse and is the backbone technology for the National Software Component Exchange and private
sector customers worldwide. The respected barometer for the component industry, ComponentSource pioneered the open market forreusable software components in 1995, and continues to drive the market through its award-winning e-business model and groundbreaking
work to establish the first widely accepted reusable component standard. A global e-business with customers in over 110 countries,
ComponentSource is headquartered in Atlanta and has offices in Reading, England. For more information, please visit
www.componentsource.com.

 ComponentSource 1996-2003