Prévia do material em texto
Erros e acertos no desenvolvimento de software Durante o ciclo de vida de um software, várias etapas precisam ser cumpridas para colocá-lo e mantê-lo em funcionamento. Independente da metodologia utilizada durante processo de desenvolvimento, o objetivo é sempre entregar um software de qualidade. Mas nenhum software está livre de falhas. Isto acontece porque elas são parte de qualquer atividade. Por exemplo, quando é lançado um novo aparelho eletrônico, a tendência é que seu índice da falhas seja relativamente alto no início de seu ciclo de vida devido a erros de fabricação e projeto. À medida que estes erros são corrigidos, o produto tende a chegar a um nível estável, dentro dos limites aceitáveis. No final do ciclo de vida, as falhas voltam a aumentar novamente por causa do desgaste causado pelo uso, acúmulo de poeira, variações de temperatura, entre outros. Por isso o hardware tende a se comportar assim: Curva de falhas do hardware – Fonte: PRESSMAN (2010) Diferente do hardware, um software não se desgasta ao longo do tempo por não ser um produto físico. É parte de um sistema lógico. Se um software é lançado sem erros, vai permanecer sem erros, desde que sejam mantidas as condições para o seu funcionamento. Então teoricamente a curva de falhas de um software deveria tender ao achatamento, estabilizando e reduzindo ao mínimo as falhas ao longo do ciclo de vida. Curva de falhas para o software (idealizada) – Fonte: PRESSMAN (2010) Mas na prática o software pode se deteriorar em função de erros introduzidos durante a sua manutenção. Alterações num software podem gerar novos erros antes mesmo da estabilização dos erros de alterações anteriores. Isto faz com que a curva de falhas de um software se pareça com esta: Curva real e curva idealizada de falhas de um software – Fonte: PRESSMAN (2010) Podemos ver que, a cada mudança, o índice de falhas tende a aumentar até se estabilizar novamente mas o índice real cresce ao longo do tempo. A curva real está bem acima da curva ideal porque toda vez que se faz uma mudança, mais erros aparecem. Quer dizer que não podemos fazer atualizações num software? Podemos e devemos. Temos que levar em conta que: Todo software útil passa por mudanças: um software que tem utilidade no mundo real sempre vai passar por atualizações; Mudanças são necessárias: quando falamos de softwares comerciais, um software atualizado pode representar um diferencial estratégico para o cliente. Ou continua estático e se torna obsoleto ou muda para se adaptar ao negócio; Estudos mostram que 60% a 80% do esforço gasto em um software acontece depois dele ter sido entregue pela primeira vez ao usuário, ou seja, na manutenção. Então não há meios de eliminar as falhas? Eliminar totalmente não, mas existem técnicas que, se aplicadas corretamente, podem ajudar a entregar um software de qualidade. Aliás, a qualidade não está associada somente às falhas, mas a outros fatores como desempenho, usabilidade, confiabilidade, satisfação do cliente, entre outros. Isto é uma preocupação da Engenharia de Software, disciplina que lida com todos os aspectos e etapas da produção de software e que tem como objetivo fornecer métodos para construir softwares de alta qualidade. Para que isso seja conseguido é necessário: Aplicar teorias, métodos e ferramentas nas situações apropriadas nas diversas etapas do desenvolvimento; Trabalhar de acordo com as restrições organizacionais e financeiras procurando soluções que estejam dentro dessas restrições; Gerenciar os projetos de software para que o resultado final esteja dentro do escopo, custo e prazos planejados; Adotar uma abordagem sistemática e organizada para produzir software de qualidade de maneira mais eficaz. Fonte/Referências: Engenharia de Software – Roger Pressman