What is Style?
Proceedings of Dagshtul Workshop on Software Architecture, February 1995.
A central aspect of architectural design is the use of recurring
organizational patterns and idioms- or architectural styles. Examples
include generic system organizations such as those based on dataflow
or layers, as well as specific organizational structures such as the
classical decomposition of a compiler, the OSI communication stack,
and the MVC user interface paradigm.
The principled use of architectural styles has a number of practical benefits. First, it promotes design reuse: routine solutions with well-understood properties can be reapplied to new problems with confidence. Second, it can lead to significant code reuse: often the invariant aspects of an architectural style lend themselves to shared implementations. Third, it is easier for others to understand a system's organization if conventionalized structures are used. For example, even without giving details, characterization of a system as a "client-server" organization immediately conveys a strong image of the kinds of pieces and how they fit together. Fourth,use of standardized styles supports interoperability. Examples include CORBA object-oriented architecture, and event-based tool integration. Fifth, by constraining the design space, an architectural style often permits specialized,style-specific analyses. For example, it is possible to analyze pipe-filter systems for schedulability, throughput, latency, and deadlock-freedom. Such analyses might not be meaningful for an arbitrary, ad hoc architecture - or even one constructed in a different style. Sixth, it is usually possible to provide style-specific visualizations: this makes it possible to provide graphical and textual renderings that match engineers' domain-specific intuitions about how their designs should be depicted.
|Architecture Design, Architecture Style|
Last modified: 10/15/2001. For comments and problems, contact firstname.lastname@example.org.