Component-Based Software Engineering is a reuse-based approach to defining and implementing loosely based approach to defining and implementing loosely coupled components into systems. It is a branch of software engineering that emphasizes the separation of concerns in respect of the wide-ranging functionality available throughout a given software system. It aims at reducing the cost of software production and improving the quality of a system by building it using selected components and integrating it together into one piece employing well-defined software architecture.