  Current models for software components have made component-based software
engineering practical. However, these models are limited in the sense that
their support for the characterization/specification of design components
primarily deals with syntactic issues. To avoid mismatch and misuse of
components, more comprehensive specification of software components is
required, In this paper, we present a contract-based approach to analyze and
model the both aspects (functional and non-functional) properties of design
components and their composition in order to detect and correct composition
errors. This approach permits to characterize the structural, interface and
behavioural aspects of design component. To enable this we present a pattern
contract language that captures the structural and behavioral requirements
associated with a range of patterns, as well as the system properties that are
guaranteed as a result. In addition, we propose the use of the LOTOS language
as an ADL for formalizing these aspects. We illustrate the approach by applying
it to a standard design
