Uso de Informações de Repositórios de Software no Processo de Desenvolvimento de Software
Desenvolvimento de software, mining software repositories, inteligência computacional.
É comum o uso de repositórios de dados no desenvolvimento de software, como por exemplo, o repositório para o código fonte de um projeto ou o repositório contendo todas as atividades realizadas durante um certo período de tempo. O que nem todos sabem é que além de serem ferramentas para auxiliar o processo de desenvolvimento, esses sistemas armazenam informações valiosas sobre um projeto e até mesmo sobre uma empresa. Essas informações podem ser utilizadas para apoiar diversas outras atividades também ligadas ao desenvolvimento, como por exemplo a manutenção de sistemas, aprimorar o design e reutilização do software, além de servir para, empiricamente, validar novas ideias ou técnicas. Neste trabalho é proposto o uso de informações de repositórios de dados ligados ao desenvolvimento para auxiliar em algumas etapas do próprio processo de desenvolvimento, no intuito de melhorar o processo como um todo, embora nesse momento sejam atacados pontos bem específicos. São propostas duas abordagens, cada uma ligada a uma área de atuação em particular. Na primeira abordagem é proposto a utilização das informações extraídas dos repositórios de software para auxiliar na estimação de tempo para realização de tarefas de desenvolvimento. No entanto, estimar o tempo de realização de uma tarefa é algo sensível a erros, uma vez que todas as técnicas possuem uma limitação prática de uso. Além dessa limitação a qualidade dos dados utilizados também influencia diretamente na qualidade nos resultados obtidos. Essa foi justamente uma das conclusões tomadas em uma avaliação experimental sobre o uso dessa abordagem em um cenário local. Uma outra abordagem desenvolvida no contexto de uso de repositórios de software foi a detecção de regiões do projeto que são “dominadas” por um único desenvolvedor. A identificação dessas regiões visa, principalmente, evitar que o conhecimento relacionado a ela fique em posse de um grupo restrito ou até mesmo de uma única pessoa, uma vez que isso pode gerar problemas de continuidade do projeto ou até mesmo declínio de qualidade. Foi desenvolvido um método para detectar tais problemas, mas que encontra-se em evolução, além de uma ferramenta para facilitar a visualização e identificação dessas regiões. Essa abordagem também foi avaliada de forma preliminar e seus resultados mostraram que seu uso pode trazer uma importante informação para os gerentes de projetos, de forma a direcionar sua atuação na condução das atividades ligadas ao desenvolvimento.