terça-feira, 10 de fevereiro de 2009

Reuso de Software - Algumas Vantagens

Iremos demonstrar alguns benefícios em introduzir o reuso de software em uma pequena empresa de desenvolvimento.

Podemos destacar alguns fatores que poderia contribuir para a agilidade, confiabilidade e redução de custos no gerenciamento do processo de criação do software.

1. Melhorias de qualidade:
- “Ajustes dos “bugs” são acumulados cada vez que um componente é reusado”: pelo fato do componente ser reutilizado, ou utilizado em vários projetos simultaneamente, o mesmo é aprimorado cada vez mais, pois como é bastante difundido e utilizado, a tendência é que os “bugs” surjam mais;
- “Ganho em produtividade pode ser alcançando devido ao fato de que menos código fonte deve ser desenvolvido, menor esforço de teste e projeto de software”: pelo fato de usarmos ou adquirirmos “módulos” prontos, a economia em desenvolvimento e confiabilidade do software aumentam bastante, principalmente, com o uso de soluções do tipo “Black Box”;
- “O uso de componentes bem testados aumenta a confiabilidade do software. O uso de componentes em vários sistemas aumenta a chance de detecção prévia de erros”: conforme citado anteriormente, quanto mais difundido o componente é, mas sujeito a testes e correção de falhas ele é.

Podemos notar com estes fatos, o quanto ganharemos de melhoria de qualidade no desenvolvimento do mesmo aplicativo.

2. Redução de esforço:
- Reuso de artefatos em várias fases do desenvolvimento de software;
- Reuso de documentação: apenas o que for desenvolvido do zero precisará de nova
Documentação;
- O tamanho da equipe pode ser reduzido e mesmo assim, aumentar a produtividade.

Alguns dados que reforçam os argumentos citados anteriormente:
– 40%-60% código é reutilizável {aplicações}
– 60% da arquitetura {aplicações de negócio}
– 75% das funções são comuns e podem ser reutilizadas em mais de um programa
– 15% código é útil
Fonte: Slide Aula 01 – pós-graduação em engenharia de software

Devemos levar em conta ainda, que além dos aspectos técnicos, temos que “implantar” uma cultura organizacional, no intuito de amenizar os impactos iniciais da implantação deste novo processo de gerenciamento de software.

- Falta de apoio da gerência: geralmente ao mudar um processo que os gerentes já dominam, eles se sentem ameaçados, por isso temos que mostrar que o novo processo está vindo para a melhoria da empresa, e que ele será uma peça de fundamental importância dentro da empresa, afinal ele é um líder;
- Complexidade relativo à gestão de vários projetos de software: todo projeto deve ter escopos bem definidos, afim de evitar desgastes à empresa, evitando assim a diminuição na credibilidade do novo processo;
- Estruturas organizacionais inadequadas: uma estrutura organizacional sem entraves, ou seja, enxuta, é de fundamental importância para a “oxigenação” do projeto (o ideal seria uma organização do tipo projetizada);
- Economia pode ser observada a longo prazo: ou seja, nada de “ver” economia no mês seguinte à implantação do projeto;
- Requer investimentos iniciais: por ser um tipo de gestão moderno, seu custo ainda é um pouco mais elevado dos que os métodos tradicionais, por isso requer um investimento inicial um pouco maior;
- Desenvolvimento para reuso é mais caro do que o desenvolvimento tradicional: conforme item anterior, este modelo de gestão tem requer um investimento maior;

E ainda, algumas dificuldades técnicas que devem ser lembradas antes da implementação do projeto:

- Dificuldade de busca e seleção eficiente de software reutilizável;
- Repositórios de componentes bem organizados são necessários;
- Acesso fácil a software existente não necessariamente aumenta o reuso de software;
- Reuso de software deve ser especificado, projetado, implementado e documentado;
- É difícil encontrar componentes que se adéquam exatamente a uma determinada necessidade;
- Modificações são necessárias para adaptá-los à realidade.

Adm. Edinaldo R. de Oliveira Junior
CRA/PE: 7521
edinaldo.junior@ig.com.br

Nenhum comentário: