The primary 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, the maintenance and upgrading of systems by customising and replacing such parts. This paper defines current component-based software technologies used and their advantages and disadvantages