Formal Connectors
Robert Allen and
David Garlan.
Technical report, CMU-CS-94-115, Carnegie Mellon University, School of Computer Science, March 1994.
Online links:
Abstract
As software systems become more complex the overall system structure -- or software architecture -- becomes a central design problem. An important step towards an engineering discipline of software is a formal basis for describing and analyzing these designs. In this paper we present a theory for one aspect of architectural description: the interactions between 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: Formal Methods, Software Architecture.
@TechReport{Allen94ConnectorsTR,
AUTHOR = {Allen, Robert and Garlan, David},
TITLE = {Formal Connectors},
YEAR = {1994},
MONTH = {March},
KEY = {Allen},
NUMBER = {CMU-CS-94-115},
INSTITUTION = {Carnegie Mellon University, School of Computer Science},
PS = {http://reports.adm.cs.cmu.edu/usr/anon/1994/CMU-CS-94-115.ps},
ABSTRACT = {As software systems become more complex the overall system structure -- or software architecture -- becomes a central design problem. An important step towards an engineering discipline of software is a formal basis for describing and analyzing these designs. In this paper we present a theory for one aspect of architectural description: the interactions between 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 = {Formal Methods, Software Architecture} }
|