Heterogeneous design idioms for software architecture

Software designers use a variety of structural patterns to specify system architectures. These patterns, or idioms, are currently used informally and imprecisely. Nevertheless, they provide a useful, broadly shared vocabulary. In practice, a given design often relies on several patterns. The paper reviews some common architectural idioms, shows several ways in which they are used heterogeneously, and discusses the benefits of making these idioms and their combinations more explicit and precise.<<ETX>>