Formal and informal methods for describing software architectures traditionally focus on a system’s components and the interfaces
between these components. They assume a design process in which the architect basically defines the architecture of a single product. If variants of this product are required, they are either handled implicitly or are defined at a later stage. Since industrial development
processes which result in families of products are becoming increasingly common, there is a need for architectural models
and notations in which diversity is modelled as an explicit and integral part of the architecture definition process. We believe that the use of such models can promote the overall optimisation of product families and can facilitate validation
of architectural decisions. This paper presents a model which can be used to describe and manage architectures in a number
of product family-oriented design processes
Parts of this work have been performed within the ESPRIT project 20477, ARES: Architectural Reasoning for Embedded Systems