Abstract
The underlying model commonly used to describe an application domain is that of processing components, loosely coupled by communication streams for each of the different types of information produced or consumed. The underlying model used for implementing distributed and parallel systems is usually similar, consisting of distributable processes communicating by message passing. Why then should different models be introduced in the intervening phases of software development? Configuration programming advocates the use of the same underlying interconnected-component model throughout the software process, from requirements through design and construction to evolution. The description of system structure, as a set of components and their interconnections, is separated from the functional description of individual component behaviour. This general approach has been used in the Conic Environment for the development of distributable software. This has shown that the approach is readily usable, leads to clear and flexible designs, and produces systems which are comprehensible, maintainable and amenable to change. The approach is considered "constructive" since it emphasises the satisfaction of system requirements by composition of components. In this paper we describe the principles which underlie the configuration programming approach and illustrate their usefulness by describing examples of some of the features of the existing Conic environment. As an indication of the future research directions, we then describe the work of the REX project: a recent collaborative ESPRIT II project which is based on the principles of configuration programming, and which intends to improve and extend the supported facilities.

This publication has 32 references indexed in Scilit: