Current software component models insufficiently reflect the different stages of component life-cycle, which involves design, implementation, deployment, and runtime. Therefore, reasoning techniques for component-based models (e.g., protocol checking, QoS predictions, etc.) are often limited to a particular life-cycle stage. We propose modelling software components in different design stages, after implemenatation, and during deployment. We allow the ion of models of different development stages. Thus, abstract models for newly designed components can be combined with refined models for already implemented components. Furthermore, we propose explicit modelling of a component's context, which influences extra-functional properties, but should stay separated from component specifications. As a proof-of-concept, we have implemented the new modelling techniques as part of our Palladio Component Model (PCM). In this paper, we show how these techniques improve analysing a component-base...