As noted in the Prologue, the notion of multiple views as a way to partition descriptions of complex systems has been around for some time. Recently there has been considerable interest from the software engineering community in identifying mechanisms for combining those concerns in systematic ways. One branch of this subarea is sometimes referred to as "aspect-oriented programming" or "multi-dimensional separation of concerns." Work in this area is represented by [Kiczales+ 97]. A good source of current information is http://www.aosd.net.
In a similar vein, Michael Jackson's book on problem frames has a good chapter on combining multiple problems frames [Jackson 01]. Although it is cast in terms of the problem space, rather than the solution space of architectures, many of the ideas carry over.
A number of researchers have considered the question of how to define architectural styles formally. One of the first papers to address the issue is [PerryWolf 92]. Chapters 6 and 8 in [ShawGarlan 96] also tackle the problem, using formal specifications languages like Z and CSP. For examples of defining architectural styles in an object-oriented framework, consider [Buschmann+ 96] and [Schmidt+ 00].
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