|
Technical Reports

USC-CSE-92-500
Barry Boehm, William L. Scherlis, "Megaprogramming," Proceedings of the DARPA Software Technology Conference, Los Angeles, California, April 28-30, 1992, Meridien Corp., Arlington, Virginia, 1992 (pdf)
"Megaprogramming" refers to the practice of building and evolving computer software component by component. Megaprogramming builds on the processes and technologies of software reuse, software engineering environments, software architecture engineering, and application generation in order to provide a component-oriented product-line approach to software development In the product line approach, management incentives and technology support can be structured to favor the aggregate return on investment over a set of related software products, even when certain portions of the investment-whose benefits are realized across the product line-may be higher than they would be if products were managed individually.
Particular aspects of the megaprogramming approach are in use in specific sectors, with significant impact. The merits of architecture-oriented design and reuse of software assets are well understood. Experience has been gained, starting in the 1950's with user-group component libraries such as the IBM SHARE (Society to Help Avoid Redundant Effort) library, and through seminal papers on mass-produced software components such as [McIlroy1968], to major publications summarizing the state of the art and state of the practice in software reuse [Freeman1987, Tracz1988, Biggerstaffl989, Cusumanol991, STARS-Reusel991].
More often than not, however, the potential of reuse and related practices and technologies has not been realized. Reuse has been discussed and attempted many times as a solution for software productivity and quality problems. Specific features have been distinguished that characterize successful reuse, and it is around these features that the megaprogramming approach is based. Megaprogramming is not a silver bullet; it is a coordinated approach to a broad range of management and technology facets of software engineering practice. This paper examines these management and technology facets in the light of an analysis of economic factors and incentives.
Added June 24th, 2008
Copyright 2008 The University
of Southern California
The written material, text,
graphics, and software available on this page and all related
pages may be copied, used, and distributed freely as long as the
University of Southern California as the source of the material,
text, graphics or software is always clearly indicated and such
acknowledgement always accompanies any reuse or redistribution
of the material, text, graphics or software; also permission to
use the material, text, graphics or software on these pages does
not include the right to repackage the material, text, graphics
or software in any form or manner and then claim exclusive proprietary
ownership of it as part of a commercial offering of services or
as part of a commercially offered product.
|
|