|
|
|||||||||||||||||
|
|
|
|||||||||||||
| FY 1994 NIST Funding: $20 million | |
|---|---|
| Total FY 1994-98 NIST Funding: $150 million | |
| 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. Individual pieces of the system cannot easily be reused (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 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 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 Component-Based Software program -- aspects that would be enabled in the next five to seven years -- include:
In the longer run -- maybe 10 years after successful completion of the ATP 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 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 Component-Based Software program include:
|
| 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 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 -- we expect the majority of program participants 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 program:
|
Return to Brief Descriptions of Focused Programs
Go to List of ATP Awards for Component-based Software
Date created: 1994
Last updated:
April 12, 2005
| 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 Quality Standards / ExpectMore.gov (performance of federal programs) |