The reader interested in finding out more about a particular style can look in one of the many style catalogs available. Style catalogs can be found in Shaw and Garlan [ShawGarlan 96], Buschmann et al. [Buschmann+ 96], and Schmidt et al. [Schmidt+ 00]. In addition, a description of blackboards can be found in Nii [Nii 86]. A description of communicating processes can be found in CSP [Hoare 85].
There is not widespread agreement about what to call styles or how to group them. While this might seem like an issue of importance only to the catalog purveyors, it has documentation ramifications as well. For instance, suppose you choose a client-server style for your system. In theory, that should free you of some documentation obligations, because you should be able to appeal to a style catalog for details. However, Shaw and Clements are able to identify not one but three different varieties of client-server style, and they assign each to a different style family [ShawClements 97].
Details of the PipeFilter system used in the example are described in [GarlanKompanek 00]. Acme is described in [Garlan+ 00]. Acme is representative of a family of architectural description languages that treat an architecture as an annotated graph of components and connectors. Other languages in the Acme family include ADML [OpenGroupADML 00] and xArch [Dashofy+ 01]. UML-RT is described in [SelicRumbaugh 98].
Software Architectures and Documentation
Part I. Software Architecture Viewtypes and Styles
The Module Viewtype
Styles of the Module Viewtype
The Component-and-Connector Viewtype
Styles of the Component-and-Connector Viewtype
The Allocation Viewtype and Styles
Part II. Software Architecture Documentation in Practice
Documenting Software Interfaces
Choosing the Views
Building the Documentation Package
Other Views and Beyond
Rationale, Background, and Design Constraints