Aluno: | Francisco Zigmund Sokol |
---|---|
Orientador: | Marco Aurélio Georsa |
Co-orientador: | Maurício Finavaro Aniche |
Tema: | MetricMiner: uma ferramenta web de apoio à mineração de repositórios de software |
Mineração de repositórios é uma área da Engenharia de Software que estuda o processo de evolução de um software de forma empírica, por meio da análise dos artefatos envolvidos no seu desenvolvimento como código fonte, dados do sistema de controle de versão e sistemas de rastreamento de bugs [1]. Para desenvolver um trabalho na área, o pesquisador é obrigado a carregar diversos projetos em sua estação de trabalho e realizar uma série de cálculos sobre o código dos projetos e sobre os metadados de seu repositório. Esse processo requer a instalação de diversas ferramentas e bibliotecas localmente para reaproveitar as ferramentas desenvolvidas nessa área, tornando o processo trabalhoso e demorado.
Além de ser um processo complexo, esse tipo de pesquisa consome muitos recursos computacionais. Baixar os repositórios a serem minerados consome um volume considerável de banda. Depois, os dados devem ser processados e persistidos em um banco de dados, ocupando um grande volume de disco. Só então o pesquisador pode calcular métricas sobre esses dados, além de extrair relações entre os metadados do histórico do sistema de controle de versão, gastando uma quantidade grande de processamento de CPU. Só depois de passar por todas essas etapas, é possível extrair dados e avaliar hipóteses por meio de análises estatísticas.
Dessas dificuldades surgiu a motivação para o desenvolvimento do MetricMiner, uma aplicação web que realiza todas as etapas da mineração de um repositório de software. Essa ferramenta irá disponibilizar um grande volume de dados já processados prontos para serem extraídos e analisados pelo pesquisador, poupando tempo e recursos computacionais.
O objetivo do trabalho é desenvolver uma aplicação web capaz de realizar as etapas custosas da mineração de um repositório de software, possibilitando que pesquisadores realizem estudos em diversos projetos.
As ferramentas disponíveis foram analisadas e os requisitos para o desenvolvimento do MetricMiner foram levantados. O desenvolvimento da aplicação se iniciou com base no rEvolution, uma ferramenta de linha de comando desenvolvida por Mauricio Aniche. Foi criado um repositório público no GitHub, onde o desenvolvimento do software pode ser acompanhado. Foi configurado um servidor para hospedar a aplicação. Também foi escrito um artigo sobre o sistema que foi submetido à sessão de ferramentas do CBSoft 2012.
As principais funcionalidades implementadas até o momento foram:
Junho | Julho | Agosto | Setembro | Outubro | Novembro | Dezembro | |
---|---|---|---|---|---|---|---|
Desenvolvimento | X | X | X | X | |||
Validação da ferramenta | X | X | |||||
Monografia | X | X | X | ||||
Pôster/Apresentação | X | X |