Language and tool support for precise interface control (environments, programming languages, module interconnection)
Alexander L. Wolf · 1985
As software systems become larger and more complex, interface control becomes an increasingly important aspect of software development. Interface control is control over the interactions among entities in different software modules, where entities are those language elements that are given names, such as subprograms, data objects, and types. Unfortunately, existing languages typically permit the relationships among a software system's components to be described with only limited accuracy and tools capable of performing a thorough analysis of those relationships are seldom available. Even in relatively small programs, precise interface control could help to eliminate errors and greatly simplify maintenance. In large software systems, stringent and accurate control over the interactions among entities in different modules is critical. This dissertation undertakes a systematic treatment of the issues involved in providing improved support for interface control in large software systems. A formal model is defined to help characterize the concerns of interface control and provide a means for rigorously describing and evaluating interface control mechanisms. A new approach to interface control is developed that consists of both langauge features and analysis tools tailored to support a genuinely incremental view of the software development process. The language features constitute a framework from which precise interface control mechanisms can be derived. The framework provides a module structure that imposes a strict separation of interface control information from algorithmic detail and includes features that, in conjunction with this module structure, provide for precise interface control. While the syntax would certainly vary, the language features could be employed in most any language of the software lifecycle, from a graphical specification language to a textual implementation language. The descriptive capabilities of the language features are exploited by the analyses, which provide developers with feedback about the interface relationships of a software system. To illustrate this new approach to interface control, the dissertation presents an Ada-like design language that incorporates the language features and presents the detailed designs for the basic analyses appropriate to that language.