DGERT   APCER
Relações de compromisso

Minimizar os Defeitos de Código Para Melhorar a Qualidade do Software e Reduzir os Custos de Desenvolvimento


News181

As organizações de desenvolvimento de software estão actualmente sob mais pressão do que nunca. Os custos de desenvolvimento continuam a aumentar. Existe cada vez maior necessidade de colocar rapidamente produtos no mercado, dando origem a períodos de desenvolvimento acelerados. As pressões para reduzir os custos estão a ter como consequência a redução dos recursos de desenvolvimento e uma maior adopção do outsourcing. Por outro lado, as aplicações estão a tornar-se cada vez mais complexas.

Todos estes factores podem fazer com que seja difícil manter a qualidade do código e reduzir ou manter os custos. A minimização dos defeitos é uma das formas mais eficazes de manter os custos de desenvolvimento baixos, algo que é uma prioridade para qualquer organização. Uma vez que o custo da resolução dos defeitos aumenta exponencialmente à medida que se avança no ciclo de vida de desenvolvimento, torna-se crítico identificar os defeitos o mais cedo possível. Os custos de descoberta dos defeitos após a disponibilização do software são significativos, podendo ser 30 vezes superiores ao que seriam se esses defeitos fossem identificados nas fases de desenho e arquitectura.

No entanto, os custos não são a única preocupação. Se disponibilizarmos software com bugs ou com problemas de desempenho, podemos ver a reputação da organização degradar-se e perder a confiança dos clientes. Por sua vez, a perda da confiança dos clientes pode provocar uma diminuição das receitas. Como tal, é importante seguir uma abordagem proactiva para melhorar a qualidade global do código, utilizando análise estática e dinâmica.

Melhoria proactiva da qualidade do código utilizando análise estática e dinâmica

No passado, os especialistas em desenvolvimento baseavam-se nas análises de código feitas por especialistas seniores para identificarem os defeitos e melhorarem a qualidade global. Actualmente, essas análises já não são suficientes. Por exemplo, com uma inspecção visual é difícil identificar problemas de qualidade que ocorrem quando a aplicação está a correr, nomeadamente alguns problemas de memória e de desempenho. Por outro lado, não parece ser muito eficaz em termos de custos colocar especialistas em desenvolvimento seniores a gastar tempo valioso na análise de código, quando poderiam estar a trabalhar em projectos com maior valor.

Vários estudos têm demonstrado que uma grande percentagem dos custos de software é imputável à identificação e correcção de defeitos. Como tal, fará todo o sentido investir em tecnologias que possam ajudar a reduzir esses custos. Os produtos automatizados podem reduzir a quantidade de tempo gasta com as análises do código, reduzindo assim os custos de desenvolvimento e aumentando ao mesmo tempo a rapidez de disponibilização do software ao mercado. Estes produtos também identificam facilmente problemas que possam ter passado despercebidos durante uma inspecção visual, aumentando assim a qualidade global do código e, consequentemente, a satisfação dos clientes.

Uma boa abordagem à detecção dos defeitos inclui a utilização de produtos automatizados ao longo do ciclo de vida de desenvolvimento ? durante as fases em que é desenvolvido código e após a sua conclusão ? para melhorar a qualidade global. A utilização de produtos de análise estática e dinâmica permite aos especialistas em desenvolvimento melhorar a qualidade do código ao longo do ciclo de vida do desenvolvimento de software.

Os produtos de análise estática examinam o código sem executarem o programa. Aplicam um conjunto de regras ao código que ajudam a identificar problemas de qualidade do mesmo nas primeiras fases do ciclo de vida do desenvolvimento. A análise estática pode ajudar-nos a identificar e a erradicar falhas durante a fase de codificação. Desta forma, permite um processo de resolução de problemas menos oneroso.

Os produtos de análise dinâmica monitorizam os programas enquanto estão a correr, permitindo identificar problemas run-time que não podem ser detectados quando se examina o código desenvolvido.

Baseado num documento intitulado ?Minimizing code defects to improve software quality and lower development costs?, publicado no site da IBM Rational.

Topo
Pesquisa
Agenda
Destaques