Formalising system structure

Darwin is a language designed for configuring distributed systems. A system is modelled as a decompositional hierarchy of components with interfaces. Connections are represented as bindings between interfaces. Darwin programs define component types. Configurations of a system are obtained by instantiating these types. Configurations have to comply with a number of constraints on the system structure. It is therefore intuitive to express these constraints in the domain of configurations rather than on the language level. To succeed in this endeavour we need to precisely express the relation between Darwin programs and configurations. We do this in terms of a first order logic theory of Darwin programs and configurations. Models of the theory provide a straightforward mapping from Darwin programs to configurations and vice versa. Most of the constraints on configurations as well as structural transformations can be specified by adding just a few axioms to the theory. Also the theory enables us to generate Darwin programs from configurations thus allowing for the inclusion of existing systems into new programs.

[1]  Mario Barbacci,et al.  Durra: a structure description language for developing distributed applications , 1993, Softw. Eng. J..

[2]  David Garlan,et al.  Software architecture: practice, potential, and pitfalls , 1994, Proceedings of 16th International Conference on Software Engineering.

[3]  Robin Milner,et al.  The Polyadic π-Calculus: a Tutorial , 1993 .

[4]  Henson Graves Lockheed environment for automatic programming , 1992, IEEE Expert.

[5]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[6]  S. Eisenbach,et al.  What Do You Get From a calculus Semantics , 1994 .

[7]  Susan Eisenbach,et al.  Semantics of a Higher-Order Coordination Language , 1996, COORDINATION.

[8]  Susan Eisenbach,et al.  pi -calculus semantics for the concurrent configuration language Darwin , 1993, [1993] Proceedings of the Twenty-sixth Hawaii International Conference on System Sciences.

[9]  James M. Purtilo,et al.  The POLYLITH software bus , 1994, TOPL.

[10]  David Garlan,et al.  Formalizing Architectural Connection , 1994, ICSE.

[11]  Norman E. Fenton,et al.  Systems Construction and Analysis: A Mathematical and Logical Framework , 1992 .

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

[13]  Morris Sloman,et al.  Configuring object-based distributed programs in REX , 1992, Softw. Eng. J..

[14]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[15]  Michael D. Rice,et al.  A Formal Model for Module Interconnection Languages , 1994, IEEE Trans. Software Eng..

[16]  David Garlan,et al.  Formalizing architectural connection , 1994, Proceedings of 16th International Conference on Software Engineering.

[17]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[18]  Naranker Dulay,et al.  Structuring parallel and distributed programs , 1993, Softw. Eng. J..

[19]  Susan Eisenbach,et al.  What Do You get From a Pi-Calculus Semantics? , 1994, PARLE.