1 Introduction
Software reuse enables developers to leverage past accomplishments and facilitates significant improvements in software productivity and quality. There are several motivations for desiring software reuse, including gains in productivity by avoiding redevelopment and gains in quality by incorporating components whose reliability has already been established. Reuse-based software development emphasizes strategies, techniques, and principles that enable developers to create new systems effectively using previously developed architectures and components. Many research approaches contribute to advances in reuse-based software development, including creation of new reuse frameworks, processes, architectures, tools, and environments as well as formulation of new reuse ideas and concepts. This paper contributes to software reuse by addressing a pivotal research issue that underlies many software development approacheswhat factors characterize successful software reuse in large-scale systems?