Composition can take place during different stages of component life cycle. We identify two main stages : design phase - components are composed into composite components for reuse; deployment phase - components are compiled and the resulting binaries are assembled into executable systems. Ideally, the design phase composition should maximise component reuse. However, this ideal is not realised in current component-based development because they can not reuse composite components in design phase. In this paper, we propose a novel approach for composing components in design phase using exogenous connectors. In contrast to existing composition approaches, our approach allows composite components built in design phase to be further reusable in both design and deployment phases so as to achieve both component reuse and design flexibility. We demonstrate the feasibility of our approach in an industrial-strength case study - Automatic Train Protection system, and compare them with the clos...