Home   Contact Us    
Center for Systems and Software Engineering

About us
News
History
People
Events
Upcoming
Highlights
Past
Tech. Report
By Author
Research
Projects
Tools
Courses
Education
Degrees
Admissions
Affiliates
List of Affiliates
Private Area
Other Resources


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.