Análise probabilística de impacto de mudanças baseada em históricos de mudanças do software. - HATTORI, Lile Palma. (2008)
Para atender à demanda contínua por evolução, sistemas de software estão sujeitos a constantes mudanças. Tanto durante o processo de desenvolvimento, quanto na manutenção de um sistema, há a necessidade de incorporar mudanças, que podem ter diversas causas como, por exemplo, uma alteração nos requisitos ou correção de erros de design. Para incorporar uma mudança no sistema, é preciso compreendê-lo e prever quais conseqüências essa mudança pode causar. Essa atividade é chamada de análise de impacto de mudanças. Informações extraídas da análise de impacto podem ser utilizadas para planejar e realizar mudanças, bem como rastrear os efeitos que elas podem causar. A análise de impacto pode ser aplicada após a realização de uma mudança para avaliar seus efeitos através das técnicas dinâmicas, baseadas nos rastros de execução do software. Porém, sua abordagem mais proativa é quando prevê os impactos de uma mudança antes de sua realização, através de técnicas estáticas. No entanto, ao avaliar uma mudança, as técnicas de análise de impacto estáticas identificam um grande número de impactos que não ocorrem de fato, chamados de falso-positivos. Neste trabalho, propomos e avaliamos uma técnica de análise de impacto probabilística, que identifica os impactos de uma mudanças antes de sua implementação e atribui probabilidades de ocorrência aos impactos através do uso de informação sobre o histórico de mudanças do software analisado. Assim, ela permite a ordenação dos impactos por probabilidade e a conseqüente redução do número de falso-positivos. Para avaliar nossa técnica, redefinimos duas métricas da recuperação de informação, chamadas precisão e revocação, que mensuram o número de falso-positivos e falso-negativos gerados. Falso-negativos são impactos que ocorrem de fato, mas não são identificados pela técnica. Os resultados da avaliação comprovam que nossa técnica foi capaz de reduzir o número de falso-positivos gerados e, assim, aumentar a precisão da análise de impacto realizada antes da implementação.