NIST Advanced Technology Program
Return to ATP Home Page Return to ATP Home Page
ATP FOCUSED PROGRAM: Component-Based Software

NOTE: From 1994-1998, the bulk of ATP funding was applied to specific focused program areas—multi-year efforts aimed at achieving specific technology and business goals as defined by industry. ATP revised its competition model in 1999 and opened Competitions to all areas of technology. For more information on previously funded ATP Focused Programs, visit our website at http://www.atp.nist.gov/atp/focusprg.htm.
  • Active or completed projects: 21
  • Estimated ATP funding: $ 43.3 M
  • Industry cost-share funding: $ 24.8 M

Potential for U.S. Economic Benefit. When the average person thinks of "software," they think of packaged, commodity software—accounting spreadsheet programs for home and office, PC-based word-processing programs, even entertainment software such as games. But all the shrink-wrapped packaging in neighborhood computer stores represents only a relatively small fraction—perhaps about 15 percent—of the domestic installed base of software. The vast majority of the work is in major custom applications for large customers: complete systems for financial services, manufacturing, or chemical processing, for example.

And this 85 percent of the software industry bears a strong resemblance to many industries of the early 19th century—virtually all of the products are expensive, hand-crafted, error prone, one of a kind. Large industrial software systems tend to be monolithic. In general, while there is an emerging trend toward incorporating customized versions of commercial applications in larger systems, this trend has only begun to affect a few key software pieces such as databases. As yet, individual pieces of a system cannot be reused easily (except perhaps in the same company) because of the close cooperation required between the programmer and the systems integrator. By most estimates, over half of all large application development projects in this industry end in failure—after all the time and money is spent, the product still cannot be used operationally.

The goal of the ATP Component-Based Software focused program is to develop the technologies needed to enable systematically reusable software components—relatively small, carefully engineered software elements suitable for a broad array of applications. These technologies would enable software companies to build specialized components that can be sold to systems integrators and custom builders, who would combine them with other, largely purchased, off-the-shelf components to create high-quality custom applications.

From the point of view of system integrators and custom end users, software tools would automatically match components to applications systems, ensuring compatibility and reliability. Numerous sources of cost and error in application development would be eliminated.

Major applications would no longer be large monolithic structures built from the ground up but rather assemblies of smaller components, competitively purchased from vendors who would have the specialized skills to concentrate on issues such as quality and reliability for the components they provide.

Far from relying on today’s profusion of software interface standards—which many times have life expectancies shorter than the standards-setting process—the proposed technology should make many existing software interface standards unnecessary.

Initial goals for the ATP Component-Based Software focused program— aspects that would be enabled in the next five to seven years—include:

• enabling automated assembly of software components, bringing greater quality and reliability, reduced time to develop and test new systems, and cost amortization from multiple use of software components, which would lead to increased productivity in software development;

• enabling increased productivity for software users, brought about by increased quality of components and dependability of systems; and

• enabling systematic reuse of components, increased interoperation of software, and easier adaptation of software for foreign markets, which may lead to expanded markets for U.S. software products.

In the longer run—perhaps 10 years after successful completion of the ATP focused program—an established software-components industry would provide a rapid, responsive channel for marketing software innovations, while constantly improving quality, reliability, and capability, in much the same fashion that the semiconductor component industry has constantly reduced cost and improved performance of computer chips since the invention of the integrated circuit, through rapid infusion of technical innovations.

Technology Challenge. The production of easily reusable software components has been the goal of a long stream of software innovations, including structured programming, object-oriented programming, and computer-assisted software engineering. Gains in productivity have remained elusive, however, particularly in the world of large, custom-built software systems.

Examples from the physical world often are invoked to explain software systems—in some systems, for example, standard software interfaces for network communications are called "sockets." The analogies are insidious, however, because the realm of software is nothing like the realm of physical objects. The idea of manufacturing only one kind of light bulb, which would be reconfigured automatically at the point of use to fit into any desired socket at any voltage, is absurd. But for software components, the idea is not only feasible—it could be the necessary enabling technology for the complex systems software needed for new, advanced information technology applications.

The ATP focused program in Component-Based Software will enable this sort of protean software by combining formal semantic methods, which are effective but difficult to use, with more innovative automated methods for software transformation and synthesis that would handle the actual composition of software systems from formal specifications of the desired product and the available components.

The technical goals of the ATP Component-Based Software focused program include:

• Enabling practical, automated composition of major software applications based on semantic analysis of independently produced components—thus enabling systematic reuse of the components.

• Developing automated tools and methods for component-based software to expand the portion of the process that can be automated and thus reduce the need for error-prone, handcrafted solutions.

• Developing necessary technologies to overcome other barriers to the widespread use and reuse of software components. This includes problems such as:

  • Revenue collection—how does the component vendor get paid?
  • Commercial security requirements.
  • Interoperation with existing systems.
  • New linguistic methods to allow for imprecise or incomplete specifications of functionality, performance, and other software characteristics.
  • Robustness—so that critical systems can continue to perform in the presence of errors.
  • Improved methods of confirming software dependability.

Industry Commitment. The ATP received over 100 "white papers" proposing program areas in various fields of software and information technology. More than half of these proposed programs contributed to this initiative. Five regional workshops on software technology conducted by the ATP confirmed broad general support for this focused program. Given the disaggregate nature of the U.S. software industry—roughly 4,500 firms with an average of fewer than 20 employees, and no broad-based industry associations—the majority of program participants are expected to be small companies with new and innovative approaches.

Significance of ATP Funds. The structure of the software industry and the nature of software itself provide strong reasons for ATP support of the Component-Based Software focused program:

• The Component-Based Software focused program addresses problems— including quality, cost, interoperation, labor-intensity, and the lack of a viable software-components industry—which are pervasive or affecting all large-scale software developments, but it involves broad-based solutions and significant technical risks that are beyond the scope of any one company or project.

• Any technology that addresses these pervasive problems can succeed only if it is used broadly throughout a market segment. This may require cooperation from competing companies to overcome non-technical barriers. Through the Component-Based Software program, the ATP creates a needed forum for many individual software firms to cooperate on problems.

• Software is a key element of the technology infrastructure, so ATP funds in this area are highly leveraged. The ATP Component-Based Software focused program, if successful, will enable important advances in many other economically significant areas, including manufacturing systems, healthcare information systems, and the National Information Infrastructure.

Additional Information. For information about eligibility, how to apply, and cost-sharing requirements, contact the Advanced Technology Program:

(800)-ATP-FUND (800)-287-3863
http://www.atp.nist.gov
email: atp@nist.gov
fax: (301) 926-9524
A430 Administration Building
National Institute of Standards and Technology
Gaithersburg, MD 20899-0001

For technical information, contact:
Barbara Cuthill, Group Leader, ITEO
(301) 975-3273
email: barbara.cuthill@nist.gov
fax: (301) 926-9524

Date created: January 1999
Last updated: April 12, 2005

Return to ATP Home Page ATP website comments: webmaster-atp@nist.gov   /  Technical ATP inquiries: InfoCoord.ATP@nist.gov

NIST is an agency of the U.S. Commerce Department
Privacy policy / Security Notice / Accessibility Statement / Disclaimer / Freedom of Information Act (FOIA) /
No Fear Act Policy / NIST Information Quallity Standards / ExpectMore.gov (performance of federal programs)
Return to NIST Home Page
Return to ATP Home Page Return to NIST Home Page Visit the NIST Web Site