Abstract :
The historical development of the concepts of programming-in-the-large is surveyed, covering layered systems, inforniation hiding, languages for programming-in-the-large, object-oriented languages, and software configuration management. Large-scale reuse, stronger foundations and better tools, cataloguing of software architectures, and improved preparation of software engineers are identified as future directions.