Object-oriented software architectures, such as design patterns and frameworks, have Sound extensive use in software industry. Their implementation in traditional object-oriented programming languages, however, is often difficult, since no support for the explicit specification of software architectures is provided. In. this paper, we develop the notion of architectural fragments, i.e. reusable architectural specifications that describe a design pattern, or a framework architecture. An architectural fragment describes the structure of an architecture in terms of its components (roles), the architect architecture-specific behaviour of the components and the architecture-specific interaction between the components. Fragments can be composed with each other and with reusable components. To illustrate the use of fragments, we describe the role and architecture language constructs in the layered object model ((LOM)-O-AY) and present examples.