Component based development aims to reduce the cost of developing large distributed systems through programming by assembly rather than development. This involves using pre-existing software components that can be combined like manufacturing rather than custom developing each part, lowering skills requirements and allowing experts to focus on domain problems to improve software quality. Key aspects include the component execution model, business model, and Common Component Model (CCM) which defines object deployment and container concepts.