Lee Cooprider The Representation of Families of Software Systems Degree Type: Ph.D. in Computer Science Advisor(s): Nico Habermann Graduated: May 1979 Abstract: Programming languages are notations for the representation of algorithmic information, they are tools for programming-in-the-small DeRe76. System description languages are notations for programming-in-the-large. Because software systems often exist in several versions simultaneously, a system description language must accomodate parallel versions of systems and permit the natural expression of the information sharing among those versions. The construction of software systems involves sequences of construction processes such as text editing, compilation, document production, linkage editing, and cross-reference generation. Automation of these processes has been impeded by the use of inadequate models of software construction and maintenance. As a result, the enforcement of design decisions described in a system description language has been left to human agencies. Thesis Committee: Nico Habermann (Chair) Nico Habermann, Head, Computer Science Department