Overview of software reuse; Introduction to Software Reuse, Approaches to Architecture Reuse, Examples of Software Component Reuse, Software Design Concepts for Reuse, Information Hiding, Modularity. Technical issues in large-scale software reuse. Topics include architecture, design for reuse, model-driven development, components, frameworks, software agents, library design, reuse tools, patterns. opportunistic and systemic reuse; Reuse process and artifacts; Reuse model and domain engineering; structural modeling and reusable components; Analysis and construction methods; Classification and integration; quality of the component; COTS issues and selection; Commercial components; Scale of software reuse; Storing and retrieving components; Component and connector types; Integration issues and solutions.