Guilherme Lacerda
Palestra: Analisando a qualidade do código com DR-Tools Suite
Como você mede a saúde do seu código? Você conhece as métricas apresentadas em ferramentas como o SonarQube? Como eu analiso as métricas de forma conjunta? Se eu baixar um projeto do GitHub, onde estão os principais problemas? Todas essas perguntas serviram de inspiração para a criação do DR-Tools Suite.
Nesta palestra, vamos apresentar o DR-Tools Suite, atualmente composta por ferramentas abertas de métricas e de visualização, com o intuito de ajudar na saúde e bem estar do código, apoiando os desenvolvedores no seu trabalho diário, identificando códigos com possíveis sintomas que prejudicam a evolução do software. Vamos apresentar também todo o processo e insights usados na sua construção.
Tópicos abordados:
-
- O projeto nasceu da junção de experiências no mercado (mais de 20 anos atuando com desenvolvimento de software) e acadêmico (atualmente, estão sendo desenvolvidas pesquisas de doutorado que resultaram no estágio atual das ferramentas e na prospecção de outras, ainda em desenvolvimento).
- Uma das pesquisas relacionadas ao DR-Tools foi publicada recentemente no Journal of Systems and Software (link do artigo no final).
- Nossa intenção é desenvolver uma família de ferramentas open-source, desenhadas para ajudar o desenvolvedor no seu trabalho diário.
- O DR-tools-metric é a primeira ferramenta que desenvolvemos. Atualmente, a ferramenta analisa códigos Java.
- O DR-tools-metric é uma ferramenta simples, mas poderosa. Simples porque ela vai num caminho diferente do que outras ferramentas de métricas, como o SonarQube, no qual é necessário toda uma infraestrutura para suportá-la. A forma de execução do DR-tools-metric é por linha de comando, que nos permite fazer várias combinações de saída da informação (console e formatos CSV e JSON), ganhando em versatilidade. A simplicidade também está presente ao selecionar as métricas que, correlacionadas, podem nos dar alguns indicativos de sintomas de que algo não vai bem no código.
- O DR-tools-metric nos dá informações contextualizadas, em vários níveis (projeto/pacotes/classes/métodos), a partir da análise do código-fonte. Atualmente, a ferramenta nos dá informações de tamanho e complexidade, bem como informações sobre vários tipos de dependências (dependências de APIs externas e frameworks, dependências internas de classes do projeto, presença de dependência cíclica) e acoplamento (aferente, eferente, instabilidade e grau de abstração). Além de 33 métricas, definimos 32 heurísticas contextualizadas que apoiam a análise do código.
- Também criamos o DR-tools-visualization, ferramenta que permite a visualização dos dados gerados pelo DR-tools-metric, apoiando os devs e o time nas análises e revisões do código.
- Nesta apresentação, vamos mostrar todo o processo de construção das ferramentas, bem como executá-las em projetos reais ao vivo. Também discutiremos as perspectivas futuras da família DR-tools.
- Link do artigo: https://www.sciencedirect.com/science/article/pii/S0164121220300881
- Link do Projeto: http://drtools.site (materiais, documentação, exemplos de uso e links ao repositório do GitHub)
Importante: a palestra será ministrada em dupla, com Daniel Wildt (dwildt@gmail.com)
21 de agosto – 15h30 às 16h30 – Sala 2