From Wikipedia, the free encyclopedia.
In computer science and software engineering, reusability is the likelihood a segment of structured code can be used again to add new functionalities with slight or no modification. Reusable code reduces implementation time, increases the likelihood that prior testing and use has eliminated bugs and localizes code modifications when a change in implementation is required.
Subroutines or functions are the simplest form of reuse. A chunk of code is regularly organized using module or namespace. Proponets claim that Objectss and software components offer a more advanced form of reusability.
Software reusability more specifically refers to design features of a software element (or collection of software elements) that enhance its suitability for reuse.
Candidate design features for software reuse include:
- Adaptable
- Brief: small size
- Flexible
- Parameterization
- Generic
- fast
- Simple: low complexity
- Localization of volatile (changeable) design assumptions (David Parnas)

