The Inscape Program Construction and Evolution Environment (NOT PUBLISHED)

23 March 1987

New Image

The Inscape Environment is an enviroment for constructing and evolving software systems and is based on the constructive use of formal module interface specifications. Inscape currently consists of four components: a module interface specification language (Instress), interactive program construction (Inform), interactive program modification (Infuse), and version control (Invariant). Instress extends Hoare's input/output predicates to describe the properties of data and the behavior of operations (for both successful and exceptional results). These predicates provide the basis of interconnection in the program construction process, with Inscape managing the details of interconnection and enforcing the consistent use of the fine grain of specifications according to a set of rules for program construction. The details of program construction form the basis for program modifications: because of the fine grain of semantic interconnections (logic predicates in addition to syntactic objects), the environment is able to determine the implications and ramifications of changes, interactively propagate the changes, and ensure the completeness and consistency of those changes. Further, these details of semantic interconnections enable us to define precisely the notions of version equivalence and compatability and to provide the notion of plug-compatable versions.