Reuso de Software e Linha de Produto de Software (LPS)
João Amado Alves da Rosa
Reuso de Software
Definição
Abordagem de desenvolvimento com o objetivo de maximizar o uso de software pré-existente. (Sommerville)
Histórico
Foi inspirado na noção de reuso das engenharias tradicionais, e teve formação do fim dos anos 60 no meio acadêmico, mas foi aplicada por fábricas de softwares japonesas nos anos 80 ainda de forma primitiva, utilizando apenas reuso de objetos e funções. Nos últimos 20 anos foram desenvolvidas muitas técnicas e ferramentas para incentivar o reuso de software, como frameworks e bibliotecas.
Tipos de Reuso
Reuso de sistema da aplicação.
Ex: Um sistema pode ser reusado por incorporação à outro sistema, sendo necessário alguma customização.
Componentes de Software
Ex: Utilização de pequenos subsistemas.
Objetos e funções
Ex: utilização de uma biblioteca ou API.
Prós
●
●
●
●
●
Redução do tempo e do custo.
Confiança no software aumentada.
Risco global do processo de desenvolvimento reduzido.
○ A tendencia é que o projeto seja cumprido sem maiores imprevistos, além da facilidade de estimar o preço de um software que já está desenvolvido.
Uso eficiente de especialistas.
○ Os especialistas podem se focar no domínio do projeto, e não vão precisar reinventar a roda voltando as atenções para as particularidades e customizações necessárias.
Adequação aos padrões
○ Ao reutíliziar o código é importante manter a conformidade com os padrões já estabelecidos.Além da conformidade com o padrão de escrita de código, podemos ter padrões que sejam refletidos também na experiência do usuário se for o caso.
Contras
●
●
●
Possíveis custos de manutenção do software.
○ Componentes reusados podem se tornar incompatíveis em versões futuras. Pode ser caro manter uma biblioteca para reuso.
○ Isso pode variar de acordo com a maturidade dos processos da empresa. Procura, compreensão e adaptação de