Proposta de TCC

Complexidade Estrutural em Projetos Spring Boot

Métricas orientadas a objetos em repositórios públicos do GitHub

Aluno
Guilherme Augusto
Gabriel Ferreira
Orientadores
Cleiton Tavares
Leonardo Vilela
Danilo Maia
João Pedro

Contexto

Onde o trabalho se posiciona

💻

Área

Qualidade interna de software e métricas orientadas a objetos.

🧱

Objeto

Projetos Java com Spring Boot em repositórios públicos.

📐

Perspectiva

Acoplamento, complexidade e herança via métricas CK.

Problema

Problema de pesquisa

Faltam evidências empíricas sobre como projetos Spring Boot organizam acoplamento, complexidade e herança em larga escala.

Lacuna
Pouca

evidência empírica em Spring Boot.

Impacto
Alto

para diagnóstico arquitetural.

Justificativa

Por que investigar Spring Boot

  • • Framework dominante que molda decisões arquiteturais.
  • • Métricas estruturais revelam riscos de manutenção.
  • • 500 repositórios públicos disponíveis para análise quantitativa.

Objetivos · GQM

Objetivos da pesquisa

Objetivo geral

Caracterizar a complexidade estrutural de projetos Spring Boot por meio de métricas OO extraídas de repositórios públicos.

Pergunta 1

Acoplamento

Qual o nível de dependência entre classes (CBO, RFC)?

Pergunta 2

Complexidade

Métodos longos aumentam a complexidade estrutural (WMC)?

Pergunta 3

Herança

Hierarquias são rasas ou profundas (DIT, NOC)?

Trabalhos relacionados

Sun et al. (2022)

Impacto da injeção de dependência

Mostra que mecanismos de DI podem alterar a interpretação tradicional de métricas de acoplamento, especialmente em ecossistemas Java modernos.

Contribuição para este TCC

Reforça a necessidade de analisar Spring Boot considerando o papel arquitetural do framework.

Child, Rosner e Counsell (2019)

Variações da métrica CBO

Discute como diferentes definições e ferramentas podem produzir resultados distintos para acoplamento entre objetos.

Contribuição para este TCC

Justifica o uso explícito da ferramenta CK e a documentação clara das métricas adotadas.

Gregor, Schnappinger & Pretschner (2023)

Indicadores de manutenibilidade interclasses

Revisita métricas de acoplamento e coesão entre classes, avaliando quais indicadores realmente predizem esforço de manutenção em sistemas OO.

Contribuição para este TCC

Fundamenta a escolha de CBO e RFC como proxies de manutenibilidade e reforça a importância de avaliar relações interclasses.

Materiais e métodos

Como o estudo funciona

1

Coleta

500 repositórios Spring Boot via GitHub API com filtros de qualidade.

2

Extração

Métricas OO extraídas automaticamente de cada classe Java.

3

Análise

Consolidação via ETL e visualização de padrões por repositório.

Métricas analisadas

CBO
acoplamento
RFC
resposta
WMC
complexidade
LOC
tamanho
DIT
herança
NOC
filhos

Materiais e métodos

Fluxo metodológico do estudo (GQM)

Fluxo metodológico do estudo (GQM)

Materiais e métodos

Como respondemos cada questão

Pergunta 1

Acoplamento

Distribuição de CBO e RFC: mediana, dispersão e outliers.

Pergunta 2

Complexidade

Relação entre tamanho de métodos e WMC agregado.

Pergunta 3

Herança

DIT e NOC indicam hierarquias rasas ou profundas.

Resultado esperado

Caracterização quantitativa da estrutura de projetos Spring Boot com padrões úteis para diagnóstico e manutenção.

1