The software architect is concerned with both functional and non-functional design. An important task in functional design is the adaptation of a components provided interface for use by other components. In non-functional analysis the focus is rather on the prediction and reasoning about reliability and performance properties. We present a method for automatic adaptation, based upon parameterised contracts. This concept extends the notion of design-by-contract from precondition, postcondition and invariant assertions on objects to dynamic protocol descriptions for required and provided interfaces of components. We introduce a novel state machine based model, called dependent finite state machines (DFSMs), and show how DFSMs provide a natural framework for both automatic component adaptation and computational reasoning about timing properties of components and architectures. We use the well-known production cell example for demonstrating our architectural description language.