This document discusses software reuse and its benefits and challenges. It describes different levels of reuse from whole application systems and components to objects and functions. Reusing software can increase dependability, reduce costs and risks, allow specialists to develop reusable assets, and accelerate development. However, reuse also poses challenges such as increased maintenance costs, lack of tool support, and difficulties finding, understanding and adapting reusable components.