A formal basis for architectural connection

As software systems become more complex, the overall system structure—or software architecture—becomes a central design problem. An important step toward an engineering discipline of software is a formal basis for describing and analyzing these designs. In the article we present a formal approach to one aspect of architectural design: the interactions among components. The key idea is to define architectural connectors as explicit semantic entities. These are specified as a collection of protocols that characterize each of the participant roles in an interaction and how these roles interact. We illustrate how this scheme can be used to define a variety of common architectural connectors. We further provide a formal semantics and show how this leads to a system in which architectural compatibility can be checked in a way analogous to type-checking in programming languages.

[1]  Paola Inverardi,et al.  Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model , 1995, IEEE Trans. Software Eng..

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

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

[4]  D. Corkill Blackboard Systems , 1991 .

[5]  Mary Shaw Procedure Calls Are the Assembly Language of Software Interconnection: Connectors Deserve First-Class Status , 1993, ICSE Workshop on Studies of Software Design.

[6]  Dewayne E. Perry,et al.  Software interconnection models , 1987, ICSE '87.

[7]  Robert J. Allen A formal approach to software architecture , 1997 .

[8]  H. P Nii,et al.  Blackboard Systems , 1986 .

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

[10]  David Garlan,et al.  Acme: an architecture description interchange language , 1997, CASCON.

[11]  E. Clarke,et al.  Automatic Veriication of Nite-state Concurrent Systems Using Temporal-logic Speciications. Acm , 1993 .

[12]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.

[13]  Nancy A. Lynch,et al.  An introduction to input/output automata , 1989 .

[14]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[15]  Oscar Nierstrasz,et al.  Regular types for active objects , 1993, OOPSLA '93.

[16]  He Jifeng,et al.  Specification and design of the X.25 protocol: a case study in CSP , 1991 .

[17]  Marc H. Graham,et al.  The Domain-Specific Software Architecture Program , 1992 .

[18]  David Garlan,et al.  Formal Modeling and Analysis of the HLA RTI , 1997 .

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

[20]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[21]  Daniel M. Yellin,et al.  Interfaces, protocols, and the semi-automatic construction of software adaptors , 1994, OOPSLA 1994.

[22]  James L. Peterson,et al.  Petri Nets , 1977, CSUR.

[23]  Rubén Prieto-Díaz,et al.  Module interconnection languages , 1986, J. Syst. Softw..

[24]  Penny Nii The blackboard model of problem solving , 1986 .

[25]  John R. Cameron JSP and JSD - the Jackson approach to software development (2. ed.) , 1989 .

[26]  Gregory D. Abowd,et al.  Formalizing style to understand descriptions of software architecture , 1995, TSEM.

[27]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

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

[29]  Mary K. Vernon,et al.  SARA (System ARchitects Apprentice): Modeling, analysis, and simulation support for design of concurrent systems , 1986, IEEE Transactions on Software Engineering.

[30]  A. W. Roscoe,et al.  An Improved Failures Model for Communicating Processes , 1984, Seminar on Concurrency.

[31]  A. Udaya Shankar,et al.  A Theory of Interfaces and Modules I-Composition Theorem , 1994, IEEE Trans. Software Eng..

[32]  Steven P. Reiss,et al.  Connecting tools using message passing in the Field environment , 1990, IEEE Software.

[33]  David Garlan,et al.  Introduction to the Special Issue on Software Architecture , 1995, IEEE Trans. Software Eng..

[34]  Thomas Reps,et al.  The Synthesizer Generator: A System for Constructing Language-Based Editors , 1988 .

[35]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

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

[37]  Mary Shaw,et al.  Formulations and Formalisms in Software Architecture , 1995, Computer Science Today.

[38]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[39]  Martin Peschke,et al.  Design and Validation of Computer Protocols , 2003 .

[40]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..