Correctness and composition of software architectures

The design of a large system typically involves the development of a hierarchy of different but related architectures. A criterion for the relative correctness of an architecture is presented, and conditions for architecture composition are defined which ensure that the correctness of a composite architecture follows from the correctness of its parts. Both the criterion and the composition requirements reflect special considerations from the domain of software architecture.The main points are illustrated by means of familiar architecture for a compiler. A proof of the relative correctness of two different compiler architectures shows how to decompose a proof into generic properties, which are proved once for every pair of architectural styles, and instance-level properties, which must be proved for every architecture.

[1]  Michael Jackson,et al.  Principles of program design , 1975 .

[2]  Herbert B. Enderton,et al.  A mathematical introduction to logic , 1972 .

[3]  Martín Abadi,et al.  Composing Specifications , 1989, REX Workshop.

[4]  Edward Yourdon,et al.  Structured design : fundamentals of a discip!ine of computer proqram and system desiqn , 1979 .

[5]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[6]  C. A. R. Hoare,et al.  Notes on Communicating Sequential Systems , 1986 .

[7]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.

[8]  Mark Moriconi,et al.  The PegaSys System: pictures as formal documentation of large programs , 1986, TOPL.

[9]  David C. Luckham,et al.  Partial orderings of event sets and their application to prototyping concurrent, timed systems , 1993, J. Syst. Softw..

[10]  Walter Mann,et al.  Correction to "Specification and Analysis of System Architecture Using Rapide" , 1995, IEEE Trans. Software Eng..

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

[12]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[13]  Bengt Jonsson,et al.  Refining Interfaces of Communicating Systems , 1991, TAPSOFT, Vol.2.

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

[15]  Xiaolei Qian,et al.  Correct Architecture Refinement , 1995, IEEE Trans. Software Eng..