For Further Reading
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].