Reutilização de código, também chamada de reutilização de software, é o uso de software existente, ou do conhecimento de software, para a construção de um novo software.[1]
A reutilização de código ad hoc tem sido praticada desde os primeiros dias da programação. Os programadores sempre reutilizaram seções de código, modelos (templates), funções e procedimentos. A reutilização de software, como uma área reconhecida de estudo em engenharia de software, no entanto, data apenas de 1968, quando Douglas McIlroy da Bell Laboratories a propôs, baseando a indústria de software em componentes reutilizáveis.[2]
No que diz respeito a motivação e aos fatores de condução, a reutilização pode ser:
A reutilização pode ser mais categorizada:
Quanto à forma ou estrutura de reutilização, o código pode ser:
A reutilização bifurcada é muitas vezes desencorajada, porque é uma forma de duplicação de código, o que exige que cada erro seja corrigido em cada cópia, e melhorias feitas ao código reutilizado precisam ser mescladas manualmente em cada cópia, caso contrário tornam-se desatualizadas. No entanto, a reutilização bifurcada pode ter benefícios como o isolamento, a flexibilidade para alterar o código reutilizado, fácil empacotamento, gerenciamento de implantação e de versão.