Component-based software development is a methodology to use and create software systems that consume and produce reusable software components. The components act as independent units that interact to form a functional system. This approach has the potential to overcome the overheads associated with monolithic software applications. The reliability of such a system is highly dynamic in real-time. Reliability of the software ensures that the program performs the specified function effectively and results in quality software. Through this paper an introduction of component based system with its reliability, performance factors and its advantages are provided. This paper also provides the related work carried out over the years by various researchers and the research gaps.