Walter Tichy

Software Development Control Based on System Structure Description Degree Type: Ph.D. in Computer Science
Advisor(s): Nico Habermann
Graduated: May 1980

Abstract:

Constructing large software systems is not merely a matter of programming but also a matter of human interaction. Problems arise because a number of people work on a joint project and need to cooperate. This dissertation discusses an integrated software development and maintenance environment that supports communication and cooperation among programmers.

The environment has three aspects: (1) Representation. A notation to describe the overall structure of a programmed system is the basis of the environment. This notation is a module interconnection language called INTERCOL. It can represent multiple versions and configurations, written in multiple programming languages. The notation contains enough information for automating interface control and version control. (2) Interface Control. The environment establishes consistent interfaces among separately developed software components and maintains this consistency when modifications are made. It automates the management of interface changes by determining the affected components, alerting the responsible programmers, and preventing the use of inconsistent components. (3) Version Control.

The environment coordinates the creation and change of source program versions and implements system generation in a multi-version, multi-configuration environment. In particular, the environment ensures that a system remains in a well-defined state by permitting only operations that are meaningful at a given state. It determines which versions of which components should be combined to form a particular version of a particular configuration. It handles compilation, recompilation and integration automatically. It manages the storage of derived objects like object modules and and partially linked subsystems and tries to optimize the space/time tradeoff of storing or regenerating them.

INTERCOL is presented in the form of a concise reference manual. It is accompanied by a design rationale, motivating the major design decisions. The suitability of INTERCOL is demonstrated by a number of examples.

We discuss design and implementation of interface control and version control in detail. To facilitate system generation, a flexible compilation/integration mechanism is developed that permits the total separation of logical and physical interfaces.

We describe a prototype implementation, running on a PDP11/40 under the UNIX operating system. The prototype is based on a simplified version of INTERCOL and provides full interface control. Two closely related programming languages, C and TC (type-checked C) may be used for programming. Version control is only partially implemented.

Thesis Committee:
Nico Habermann

Nico Habermann, Head, Computer Science Department