Component- based software development is the most promising way of controlling the soaring complexity and cost of business information systems. It is also the best way to architect, design, implement, and deploy scalable systems that provide the flexibility and agility required by today’s enterprise environment (Herzum, 1999).
The main role of component-based software engineering is to address the development of systems as an assembly of parts “components”, the development of parts as reusable entities, and the maintenance and upgrading of systems by customising and replacing such parts. However, the component-based development is still a process with many problems, it is not well defined either from theoretical or practical point of view. This dissertation gives a brief overview of Component-Based Software development and starts with brief historical evolution followed by a general explanation of the method. This dissertation also describes the importance of reusable software and its architecture.
A detailed discussion of the underlying principles like components, component frameworks and component system architectures are then presented. Some real world component stand CORBA (Common Object Request Broker Architecture), CCM (CORBA component Model) and EJB (Enterprise Java Beans) are given in detail. Finally, simple file-sharing-program based on Apache's Avalon framework is developed as a case study.