To anyone who has had the slightest connection with the design and construction of large programs for digital computers, it is obvious that this is no trivial task. Many times the design of such programs is woefully inadequate, and the effort required to get them right is tremendous. The sometimes ruinous cost of such inadequate design is well-known.