Megaprogramming




This is a top-level view of the megaprogramming process.

Megaprogramming doesn't look at one problem/solution combination in isolation. Megaprogramming looks at a whole set of problem/solution combinations that are similar in some way. For now, we will call this set a problem area.

The purpopse of the step above the dotted line is to: (1) define the problem area; and (2) create software and documentation that can be used to create a solution for any particular problem in that problem area.

Everything above the dotted line is done once and then continually improved. Everything below the dotted line is done every time you have to solve a problem in that problem area.

A good analogy to megaprogramming is the building of computers. Most computer companies build several types of computers - for examples, desktop and laptop. They don't build all the individual chips and boards differently. They take existing parts and, based on their knowledge of how to build computers, assemble them in different ways depending on what they want to produce. Software developers, on the other hand, traditionally generate software from scratch each time. Megaprogramming is an attempt to allow software developers to do what hardware engineers do: use existing, proven components each time they build a product.

Unit 2 deals with this concept in more detail.


Review

  1. Does the megaprogramming alalogy for computers relate to the building of cars? When the automovile builder builds a car, do they build everything from scratch?
  2. Explain that megaprogramming deals with problem areas (a set of similiar problems and solutions) Megaprogramming deals with __________ __________ (sets of similar problems and solutions).

[Previous Page] {Exercises on This Unit] [Next Unit] Copyright (c) 1996, Software Productivity Consortium Inc.