Analisador de código baseado na metodologia COCOMO II (Constructive Cost Model) que calcula complexidade, esforço, tempo e recursos necessários para desenvolvimento de software.
Interface TUI (Text User Interface) interativa para análise de múltiplos projetos com configuração personalizada de salário e geração automática de relatórios.
Características:
- Análise de múltiplos projetos em uma única execução
- Configuração de salário personalizada
- Geração automática de relatórios JSON com nome do projeto e data
- Suporte para análise COCOMO II simples ou integrada com Git
- Interface amigável com validação de entrada
Analisador de código que calcula métricas baseadas em COCOMO II.
Análise completa que cruza dados COCOMO II com histórico de commits Git.
- Análise estática de segurança:
- Identificação automática de vulnerabilidades
- Detecção de bad practices e anti-patterns
- Score de segurança de 0-100
- Classificação por severidade (Crítica, Alta, Média, Baixa, Info)
- Categorização (Segurança, Best Practices, Performance)
- Identificação de arquivos mais vulneráveis
- Mapeamento de CWE (Common Weakness Enumeration)
- Compatibilidade com OWASP Top 10
- Disponível via:
- Interface TUI (integrada automaticamente)
- Linha de comando (análise integrada)
- Relatórios PDF com seção dedicada de segurança
- Exportação JSON com métricas completas
- Análise profunda com IA da OpenAI:
- Avaliação do valor do código e qualidade
- Comparação com métricas de mercado
- Estimativa de valor de mercado do projeto
- Recomendações estratégicas (curto, médio e longo prazo)
- Indicadores chave (ROI, Time to Market, Risco Técnico)
- Oportunidades de monetização, expansão e otimização
- Disponível via:
- Interface TUI (aba "🤖 Insights IA")
- Linha de comando (
--ai-insights
flag) - Uso programático (módulo
ai_insights.py
)
📚 Ver documentação completa de Insights IA →
- Análise recursiva de diretórios e subdiretórios
- Exclusão automática de arquivos gerados por frameworks
- Exclusão de pastas de bibliotecas (.venv, node_modules, vendor)
- Suporte a múltiplas linguagens de programação
- Cálculo de métricas COCOMO II:
- Complexidade do código
- Tempo para recriar a codebase
- Quantidade de desenvolvedores necessários
- Equipe para manutenção
- Equipe para expansão
- Produtividade (LOC/pessoa-mês)
- Estimativa de custo em BRL
- Saída formatada e elegante com Rich
-
Análise Automática:
- Detecção de vulnerabilidades conhecidas
- Análise de código-fonte estático
- Regras automáticas baseadas na linguagem
- Suporte para múltiplas linguagens
-
Métricas de Segurança:
- Total de descobertas por severidade
- Problemas de segurança vs best practices
- Arquivos mais vulneráveis
- Tempo de scan
- Score de segurança (0-100)
-
Recomendações:
- Priorização de correções
- Best practices de segurança
- Integração CI/CD sugerida
-
Métricas Git:
- Total de commits e autores
- Inserções e deleções
- Commits por dia/mês
- Ranking de contribuidores
-
Indicadores de Commits:
- Linhas por commit
- Commits necessários para recriar codebase
- Percentual médio de mudança por commit
- Eficiência de commit (código útil vs retrabalho)
-
Análise de Velocidade:
- Velocidade real vs estimada COCOMO
- Razão de velocidade (real/estimado)
- Score de produtividade dos desenvolvedores (0-100)
-
Insights Automáticos:
- Avaliação de velocidade da equipe
- Análise de eficiência de commits
- Recomendações de tamanho de commits
- Avaliação geral de produtividade
-
Exportação:
- Exportar resultados em JSON
O script utiliza a metodologia COCOMO II para estimar:
- Orgânico (Baixa): Projetos até 50 KLOC
- Semi-Destacado (Média): Projetos entre 50-300 KLOC
- Embarcado (Alta): Projetos acima de 300 KLOC
- Esforço: E = a × (KLOC)^b pessoa-meses
- Tempo: T = c × (E)^d meses
- Pessoas: P = E / T
# Clone o repositório
git clone <repository-url>
cd analiser-cocomo2
# Instale as dependências usando uv
uv sync
# Ou usando pip
pip install -e .
./run_tui.sh
uv run python tui_analyzer.py
# ou
source .venv/bin/activate && python tui_analyzer.py
Fluxo de uso:
- Digite os caminhos dos projetos (um por vez)
- Pressione Enter sem digitar nada para finalizar a lista de projetos
- Configure o salário mensal (em R$)
- Escolha o tipo de análise (COCOMO II ou Integrado)
- Decida se deseja exportar relatórios JSON
- A análise será executada para todos os projetos
- Relatórios individuais serão gerados em
./reports/
com formato:relatorio_{projeto}_{data}_{hora}.json
Veja o guia completo: TUI_GUIDE.md
uv run python main.py
uv run python main.py /caminho/para/projeto
# Configure primeiro sua chave da OpenAI
export OPENAI_API_KEY="sk-proj-..."
# Execute com insights de IA
uv run python main.py --ai-insights
# Ou para um projeto específico
uv run python main.py /caminho/para/projeto --ai-insights
📚 Ver guia completo de Insights IA →
uv run python git_analyzer.py
uv run python git_analyzer.py /caminho/para/repositorio
uv run python git_analyzer.py . --export resultados.json
# Primeiro, gere o JSON
uv run python git_analyzer.py . --export relatorio.json
# Depois, gere o PDF (inclui seção de segurança automaticamente)
uv run python generate_pdf_report.py relatorio.json relatorio.pdf
uv run python git_analyzer.py --help
O script gera relatórios com:
-
Métricas de Código
- Total de arquivos
- Total de linhas
- Linhas de código
- Linhas de comentários
- Linhas em branco
-
Distribuição por Linguagem
- Quantidade de linhas por linguagem
- Porcentagem de cada linguagem
-
Resultados COCOMO II
- Nível de complexidade
- Esforço total (pessoa-mês)
- Tempo de desenvolvimento
- Pessoas necessárias
- Equipe de manutenção
- Equipe de expansão
- Produtividade
-
Estimativa de Custo
- Custo total estimado em BRL
- Baseado em R$15.000/pessoa-mês
-
Insights e Recomendações
- Análise automática dos resultados
- Sugestões baseadas nas métricas
O script gera relatórios expandidos com:
-
Resumo COCOMO II
- KLOC, complexidade, esforço, tempo, custo
-
Métricas do Repositório Git
- Total de commits, autores
- Idade do repositório
- Commits por dia
- Inserções e deleções totais
- Médias por commit
-
Top Contribuidores
- Ranking dos 10 principais autores
- Número de commits e porcentagem
-
Análise de Segurança (Semgrep)
- Score de segurança (0-100)
- Total de descobertas por severidade
- Problemas críticos e de alta prioridade
- Top 5 arquivos mais vulneráveis
- Distribuição por categoria
- Tempo de scan e arquivos analisados
-
Indicadores Integrados
- Linhas por commit
- Commits necessários para recriar
- Commits por mês
- Velocidade real vs estimada
- Razão de velocidade
- Eficiência de commit
- % média de mudança por commit
-
Score de Produtividade
- Pontuação de 0-100
- Baseado em velocidade, eficiência e complexidade
-
Insights Personalizados
- Avaliação de velocidade
- Análise de eficiência
- Recomendações de tamanho de commits
- Frequência de commits
- Avaliação geral
Total de linhas de código dividido pelo número de commits.
Interpretação:
- < 100 linhas: Commits pequenos e incrementais (ideal)
- 100-500 linhas: Commits de tamanho moderado
-
500 linhas: Commits grandes (considere dividir)
Estimativa de quantos commits seriam necessários para recriar a codebase.
Porcentagem média do código que é modificada em cada commit.
Interpretação:
- < 1%: Mudanças incrementais pequenas (ótimo)
- 1-5%: Mudanças moderadas (bom)
-
5%: Mudanças grandes (avaliar necessidade)
Relação entre código útil e churn (retrabalho).
Cálculo: (Linhas atuais / Total de mudanças) × 100
Interpretação:
-
50%: Alta eficiência, baixo retrabalho
- 30-50%: Eficiência moderada
- < 30%: Baixa eficiência, muito retrabalho
Velocidade real dividida pela velocidade estimada pelo COCOMO II.
Interpretação:
-
1.2: Equipe muito produtiva
- 0.8-1.2: Velocidade dentro do esperado
- < 0.8: Velocidade abaixo do esperado
Pontuação composta de 0-100 baseada em:
- Velocidade de desenvolvimento (até 25 pontos)
- Eficiência de commits (até 15 pontos)
- Complexidade do projeto (até 10 pontos)
- Base de 50 pontos
Interpretação:
- 75-100: Excelente produtividade
- 50-74: Boa produtividade
- < 50: Oportunidade de melhoria
- Python
- JavaScript/TypeScript
- Java
- C/C++/C#
- Go
- Rust
- PHP
- Ruby
- Swift
- Kotlin
- Scala
- R
- Shell
- SQL
- HTML/CSS
- Vue
- Dart
O analisador exclui automaticamente:
- node_modules
- .venv, venv, env
- vendor
- pycache
- .git, .svn, .hg
- dist, build, target, out
- .idea, .vscode, .vs
- bin, obj
- .gradle, .next
- coverage, .nyc_output
- .pytest_cache, .mypy_cache
- .tox, .eggs
- Arquivos compilados (.pyc, .class, .jar, .o)
- Arquivos minificados (.min.js, .min.css)
- Arquivos de lock (package-lock.json, yarn.lock, etc.)
- Bibliotecas compiladas (.so, .dll, .dylib)
O script git_analyzer.py pode exportar resultados em JSON com a flag --export
:
uv run python git_analyzer.py . --export resultados.json
Estrutura do JSON:
{
"cocomo": {
"kloc": 0.74,
"effort_person_months": 1.75,
"time_months": 3.09,
"people_required": 0.57,
"cost_estimate_brl": 26204.70,
"complexity_level": "Baixa"
},
"git": {
"total_commits": 100,
"total_authors": 5,
"authors_commits": {...},
"total_insertions": 10000,
"total_deletions": 2000,
...
},
"integrated": {
"lines_per_commit": 100.0,
"commits_needed_to_rebuild": 74,
"velocity_ratio": 1.2,
"commit_efficiency": 61.1,
"change_percentage_per_commit": 1.5,
"developer_productivity_score": 84.2
},
"security": {
"total_findings": 15,
"critical_findings": 2,
"high_findings": 5,
"medium_findings": 6,
"low_findings": 2,
"security_issues": 7,
"best_practice_issues": 8,
"files_scanned": 125,
"scan_duration_seconds": 45.3,
"findings": [...]
},
"generated_at": "2025-10-13T18:19:23.117434"
}
- Python >= 3.13
- rich >= 13.7.0
- pathspec >= 0.12.1
- inquirer >= 3.1.3 (para interface TUI)
- textual >= 0.47.0 (para interface TUI avançada)
- reportlab >= 4.0.0 (para geração de PDF)
- matplotlib >= 3.8.0 (para gráficos)
- openai >= 1.0.0 (para insights com IA - opcional)
- semgrep >= 1.86.0 (para análise de segurança)
Use o main.py
para estimar custo, tempo e recursos necessários para um projeto novo ou existente.
Use o git_analyzer.py
regularmente para:
- Monitorar velocidade da equipe
- Avaliar eficiência de commits
- Identificar gargalos de produtividade
Use os indicadores para:
- Identificar commits muito grandes
- Avaliar qualidade do código (eficiência)
- Comparar produtividade entre sprints
Use as métricas para:
- Estimar capacidade da equipe
- Prever tempo de entrega
- Alocar recursos adequadamente
Exporte os resultados em JSON para:
- Criar dashboards personalizados
- Integrar com ferramentas de BI
- Gerar relatórios periódicos
Use a análise de segurança para:
- Identificar vulnerabilidades antes da produção
- Avaliar o score de segurança do projeto
- Priorizar correções por severidade
- Identificar arquivos mais críticos
- Integrar análise de segurança no CI/CD
- Gerar relatórios de segurança para compliance
Use os insights de IA para:
- Avaliar o valor de mercado do projeto
- Obter recomendações estratégicas personalizadas
- Identificar oportunidades de monetização e expansão
- Comparar com benchmarks da indústria
- Avaliar riscos técnicos e ROI
📚 Ver guia completo de Insights IA →
- A análise Git requer que o diretório seja um repositório Git válido
- Estimativas COCOMO II são baseadas em modelos estatísticos e podem variar
- Detecção de comentários é simplificada e pode não capturar todos os casos
- Valores de salário são médias e podem variar por região e senioridade
Contribuições são bem-vindas! Sinta-se à vontade para:
- Fazer fork do projeto
- Criar uma branch para sua feature
- Commit suas mudanças
- Push para a branch
- Abrir um Pull Request
MIT License
Desenvolvido para análise de projetos de software usando metodologia COCOMO II integrada com análise de commits Git.
- COCOMO II Model Definition Manual
- Barry W. Boehm et al., "Software Cost Estimation with COCOMO II"
- Git Documentation