A formal basis for architectural connection
- 1 July 1997
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Software Engineering and Methodology
- Vol. 6 (3), 213-249
- https://doi.org/10.1145/258077.258078
Abstract
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.Keywords
This publication has 15 references indexed in Scilit:
- Formalizing style to understand descriptions of software architectureACM Transactions on Software Engineering and Methodology, 1995
- Specification and analysis of system architecture using RapideIEEE Transactions on Software Engineering, 1995
- Abstractions for software architecture and tools to support themIEEE Transactions on Software Engineering, 1995
- Formal specification and analysis of software architectures using the chemical abstract machine modelIEEE Transactions on Software Engineering, 1995
- The POLYLITH software busACM Transactions on Programming Languages and Systems, 1994
- A theory of interfaces and modules I-composition theoremIEEE Transactions on Software Engineering, 1994
- Regular types for active objectsACM SIGPLAN Notices, 1993
- Statecharts: a visual formalism for complex systemsScience of Computer Programming, 1987
- Module interconnection languagesJournal of Systems and Software, 1986
- Petri NetsACM Computing Surveys, 1977