High-quality software, delivered on time and budget, constitutes a critical part of most products and services. Today software engineers are faced with a demand for complex and powerful software systems. To be competitive in the market software engineers are forced to create software as quickly as possible. Software reuse or component-based development (CBD) is regarded as one of the most potent software technologies in order to reduce lead times, increase functionality, and reduce costs. In the region, CBD is still a process with lot of problems, not well defined either from theoretical or practical points of view. The lack of knowledge is probably the biggest problem. Our aim is to systemize the knowledge and understanding of CBD. This research is a literature review on the software reuse and the concepts behind it. It starts with an overview of software components and CBD, continues describing benefits and obstacles to software reuse. Nontechnical aspects like legal, economic and measurement issues are covered as well. Finally examples of successful software reuse and the state of practice are summarized.
software components, components based software development, reuse benefits, obstacles and metrics