Reutilização de código

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]

Visão geral editar

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]

Tipos de reutilização editar

No que diz respeito a motivação e aos fatores de condução, a reutilização pode ser:

  • Oportunista - Enquanto se prepara para iniciar um projeto, a equipe percebe que há componentes existentes que podem ser reutilizados.
  • Planejada - A equipe estrategicamente projeta componentes de modo que eles possam ser reutilizáveis em projetos futuros.

A reutilização pode ser mais categorizada:

  • Reutilização interna - Uma equipe reutiliza seus próprios componentes. Esta pode ser uma decisão de negócios, já que a equipe pode querer controlar um componente crítico para o projeto.
  • Reutilização externa - Uma equipe pode optar por licenciar um componente de terceiros. Licenciar um componente de terceiros normalmente custa ao time de 1 a 20 por cento do que custaria para desenvolver internamente. A equipe deve considerar também o tempo necessário para encontrar, conhecer e integrar o componente.

Quanto à forma ou estrutura de reutilização, o código pode ser:

  • Referenciada - O código do cliente contém uma referência ao código reutilizado, e, portanto, eles têm ciclos de vida distintos e podem ter versões distintas.
  • Bifurcada - O código do cliente contém uma cópia local ou privada do código reutilizado, e, portanto, eles compartilham um único ciclo de vida e uma única versão.

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.

Referências

  Este artigo sobre engenharia de software é um esboço. Você pode ajudar a Wikipédia expandindo-o.