In computer programming, reusability describes the quality of a software asset that affects its ability to be used in a software system for which it was not specifically designed. An asset that is easy to reuse and provides utility is considered to have high reusability. A related concept, leverage involves modifying an existing asset to meet system requirements.
The ability to reuse can be viewed as the ability to build larger things from smaller parts, and to identify commonality among the parts. Reusability is often a required characteristic of platform software. Reusability brings several aspects to software development that do not need to be considered when reusability is not required.