Software Intelligence: ferramentas e técnicas para a qualidade de software

Software Intelligence é mais um termo recente no mundo da engenharia de software. Apesar de ser um termo recente, ele se refere a práticas aplicadas desde que os softwares começaram a ser desenvolvidos, embora neste momento o refinamento de Software Intelligence seja bem maior do que no passado. O termo vem ganhando alguma popularidade com abordagens ágeis de desenvolvimento.

Ainda é difícil encontrar referências aprofundadas sobre o tema, mas as suas práticas e ferramentas são disseminadas e fazem parte do âmago da maioria dos bons engenheiros de software. O termo se refere ao conhecimento do software que está sendo desenvolvido, ou seja, informações estratégicas sobre o desenvolvimento, e engloba práticas e ferramentas para obter e gerenciar estas informações.

As informações analisadas em software intelligence ajudam os envolvidos a entender o desenvolvimento em determinado momento. Geralmente o código fonte é monitorado e analisado por diversas ferramentas diferentes, os dados coletados nessas varreduras são compilados, sumarizados, catalogados… Estes dados são o insumo da Software Intelligence.

Uma prática muito comum é analisar a qualidade do código fonte com ferramentas como:

  • FindBugs: análise estática do código fonte em busca de bugs
  • CPD (Copy/Paste Detector): Detector de trechos literalmente copiados e colados ou variações, a fim de melhor implementar a orientação a objetos
  • Checkstyle: análise de padrões de codificação

São muitas as informações obtidas por meio destas verificações. É possível monitorar a qualidade do código fonte, problemas de performance e  problemas de complexidade de código a fim de refatorar para facilitar manutenções futuras.

Outras práticas também entram na disciplina de Software Intelligence, como testes automatizados e integração contínua.

Apesar de muitas destas práticas e ferramentas serem usadas a bastante tempo, acredito que agora, com um termo próprio, a prática de software intelligence se dissemine e amadureça ainda mais, propiciando ambientes cada vez mais informativos para o desenvolvimento de software com qualidade.

Leave a Reply

Your email address will not be published. Required fields are marked *