This document discusses component-based development. It presents on software reuse, separation of concerns, and component-based software engineering. The key aspects covered are defining, implementing, verifying, validating and delivering components. Classification and retrieval of components from a library is also addressed.