Configuration programming-a framework for the development of distributable systems

A brief description is given of the author's use of configuration programming in the conic environment, and an assessment is made of the benefits of such an approach. Based on this experience, the author extends the notions of configuration programming to cover many more aspects of the software development process. Emphasis is on the structural decisions and descriptions for each of the phases in the process, and on the need for compositionality. The configuration programming framework has been adopted as the basis of a recent ESPRIT II Project, REX, on reconfigurable and extensible parallel and distributed systems. This major project uses two large demonstrators in the telecommunication and CIM areas to act as a focus for the work and as a means for demonstrating the techniques and tools developed. A brief description of the development of REX work is used to indicate the general research direction in this field and to elucidate some of the issues and possible solutions.<<ETX>>

[1]  Gail E. Kaiser,et al.  Garp: Graph Abstractions for Concurrent Programming , 1988, ESOP.

[2]  Jeff Magee,et al.  Dynamic Configuration for Distributed Systems , 1985, IEEE Transactions on Software Engineering.

[3]  Heinz Mühlenbein,et al.  Network Programming with MUPPET , 1988, J. Parallel Distributed Comput..

[4]  Morris Sloman,et al.  The Conic toolkit for building distributed systems , 1987 .

[5]  Amnon Naamad,et al.  Statemate: a working environment for the development of complex reactive systems , 1988, ICSE '88.

[6]  Hassan Gomaa A software design method for distributed real-time applications , 1989, J. Syst. Softw..

[7]  A. Pnueli,et al.  STATEMATE: a working environment for the development of complex reactive systems , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[8]  Insup Lee,et al.  Partitioning of Massive/Real-Time Programs for Parallel Processing , 1986, Adv. Comput..

[9]  Dewayne E. Perry The inscape environment , 1989, ICSE '89.

[10]  Naranker Dulay,et al.  A configuration language for distributed programming , 1990 .

[11]  Pamela Zave,et al.  An Operational Approach to Requirements Specification for Embedded Systems , 1982, IEEE Transactions on Software Engineering.

[12]  Robert Balzer,et al.  A 15 Year Perspective on Automatic Programming , 1985, IEEE Transactions on Software Engineering.

[13]  Jeff Magee,et al.  Graphical configuration programming , 1989, Computer.

[14]  Joseph A. Goguen,et al.  Reusing and Interconnecting Software Components , 1986, Computer.

[15]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975 .

[16]  Larry Carter,et al.  Distrbution and Abstract Types in Emerald , 1987, IEEE Transactions on Software Engineering.

[17]  Harold Ossher A Case Study in Structure Specification: A Grid Description of Scribe , 1989, IEEE Trans. Software Eng..

[18]  Pamela Zave,et al.  A compositional approach to multiparadigm programming , 1989, IEEE Software.

[19]  M. Sloman,et al.  Configuration support for system description, construction and evolution , 1989, IWSSD '89.

[20]  Morris Sloman,et al.  Constructing Distributed Systems in Conic , 1989, IEEE Trans. Software Eng..

[21]  Bruce W. Weide,et al.  STILE: A Graphical Design and Development Environment , 1987, COMPCON.

[22]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[23]  Colin Potts,et al.  Tool support for requirements analysis , 1988, Softw. Eng. J..

[24]  Anthony Finkelstein,et al.  A constructive approach to the design of distributed systems , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[25]  Thomas J. LeBlanc,et al.  HPC: A model of structure and change in distributed systems , 1985, IEEE Transactions on Computers.

[26]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[27]  Morris Sloman,et al.  The CONIC toolkit for building distributed systems , 1985 .

[28]  Jeannette M. Wing,et al.  Programming at the processor-memory-switch level , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[29]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[30]  Glenn H. MacEwen,et al.  RNet: A Hard Real-Time Distributed Programming System , 1987, IEEE Transactions on Computers.

[31]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975, IEEE Transactions on Software Engineering.

[32]  J. Castro,et al.  Temporal-causal system specification , 1990, COMPEURO'90: Proceedings of the 1990 IEEE International Conference on Computer Systems and Software Engineering@m_Systems Engineering Aspects of Complex Computerized Systems.

[33]  Friedemann Mattern,et al.  Key Concepts of the INCAS Multicomputer Project , 1987, IEEE Transactions on Software Engineering.

[34]  Arthur B. Maccabe,et al.  The design of a programming language based on connectivity networks , 1982, ICDCS.

[35]  M. M. Lehman,et al.  Another look at software design methodology , 1984, SOEN.

[36]  Richard C. Waters,et al.  Automatic programming: myths and prospects , 1988, Computer.

[37]  Jeff Magee,et al.  The Evolving Philosophers Problem: Dynamic Change Management , 1990, IEEE Trans. Software Eng..