Component-based software engineering approach to software development employs the techniques of selecting reliable and reusable software components and assembling them within appropriate software architecture to form a robust software system. This approach is unique because it brings about designs that make a clear separation between the stable parts of the system from the specification of their composition. The rising need of software in 21st century is indeed of a great concern. In view of the increase in demand for software, software engineers need a proactive and pragmatic approach that will handle the situation on ground. Although object oriented approach helped in giving birth to software that reflect the object of the problem domain, the approach does not necessarily produce software architectures that can easily adapt to the changing requirements of users in this 21st century. In component-based software engineering, the software team will first establish requirements for the system to be built, the architectural design is made and detailed design omitted instead the team examines requirements to determine what subset is directly amenable to composition rather than construction. Component-based software engineering would help software developers to build high-quality, reliable and easily maintainable software that meets user’s requirements. It will also bring about significant reduction in the development cost and time since developers can quickly assemble such systems from a set of reusable software components rather than build everything from the scratch. Furthermore, it will lead to designs that will be easily adapted to meet the changing needs of users.