Patterns for Software Architectures
Date of Original Version
Abstract or Description
Software designers rely on informal patterns, or idioms, to describe the architectures of their software systems - the configurations of components that make up the systems. My purpose here is to reflect on the role these patterns play in software design. I am particularly interested in the ways that informal patterns shape the configurations. These patterns, or idioms, determine how separate parts are combined, or "woven together." The resulting organization is often called the architecture of the system. Current programming languages do not support these patterns; indeed, the patterns address problems that lie outside the scope of conventional programming languages. This paper describes the character of these architectural patterns and the status of work on models and tools to support them.