The reapplication of a variety of kinds of knowledge about one system to another similar in order to reduce the effort of development or maintenance of that other systems
Productivity can be increased by software reuse
Software reuse can bring about a significant reduction in maintenance costs