Fazer um TCC em Engenharia de Software envolve bem mais do que só codar: é preciso demonstrar domínio teórico, justificar escolhas técnicas e metodológicas, e apresentar resultados com rigor científico. Muitos estudantes já chegam cansados de provas e estágios, e acabam focando só na parte prática, esquecendo que o TCC exige fundamentação, método, análise e escrita formal. Este guia vai te ajudar,
1
1. Defina um tema relevante e delimitado
Escolha um tema que dialogue com as tendências atuais da Engenharia de Software e que seja viável para um trabalho de 50 páginas. Considere impacto, acesso a dados/código e possibilidade de análise científica.
- Avalie temas como Test-Driven Development (TDD), CI/CD em times remotos, análise de dívida técnica em sistemas legados, uso de DDD em aplicações empresariais, entre outros citados acima.
- Converse com professores/orientadores que atuam nas linhas de Engenharia de Software (ex: professora Simone Santos para TDD, prof. Fernando Castor para métricas de qualidade).
- Delimite o recorte: por exemplo, "Impacto do TDD na redução de defeitos em projetos Java open source".
- Cheque se existem bases de dados ou repositórios públicos que você pode analisar (GitHub, SourceForge, Requal, QualiSoft etc.).
Dica: Fuja de temas amplos como 'Desenvolvimento Web' ou 'Aplicações Móveis'. Quanto mais específico, melhor para análise profunda.2
2. Elabore o problema, objetivos e hipóteses
Descreva qual problema real você vai atacar e por que ele é relevante para a área de Engenharia de Software. Detalhe objetivos gerais e específicos. Se for pesquisa experimental, defina hipóteses claras.
- Escreva o problema em uma frase: 'Como a adoção de TDD influencia as métricas de qualidade em projetos Java?'.
- Objetivo geral: 'Avaliar o impacto do TDD sobre a qualidade de código em projetos Java open source'.
- Objetivos específicos: 'Selecionar projetos que usam TDD', 'Analisar métricas como cobertura, complexidade ciclomática e número de bugs'.
- Hipótese (se aplicável): 'Projetos que adotam TDD apresentam menor densidade de bugs e maior cobertura de testes'.
Dica: Consulte artigos recentes (IEEE Xplore, ACM Digital Library) para fundamentar o problema e evitar reinvenção da roda.3
3. Fundamente teoricamente com autores e normas da área
Este é o capítulo onde muitos erram: não basta citar livros genéricos, é preciso trazer autores e normas reconhecidos em Engenharia de Software.
- Aborde modelos de processo (RUP, XP, Scrum) citando Pressman, Sommerville, Larman, Beck, Fowler.
- Inclua normas como ISO/IEC 25010 (qualidade de software), ISO/IEC 12207 (processos).
- Para testes automatizados, fundamente com Kent Beck (TDD), Lisa Crispin (Agile Testing), Martin Fowler (Refactoring), e cite métricas como cobertura de código (Jacoco, Cobertura), complexidade ciclomática (McCabe), SonarQube.
- Inclua pesquisas de eventos como ICSE, SBES ou SBQS.
Dica: Use sempre referências atualizadas. Artigos de 5-10 anos são mais valorizados em TCC de Engenharia de Software.4
4. Escolha e justifique a metodologia com rigor
Explique por que escolheu experimento, estudo de caso, revisão sistemática ou análise comparativa.
- Se usar experimento controlado, detalhe variáveis, grupos, métricas (ex: comparar equipes usando e não usando TDD).
- Para análise de sistemas, explique critérios de seleção (ex: projetos Java no GitHub com mais de 500 commits).
- Descreva ferramentas (Jenkins para CI/CD, SonarQube para qualidade, JUnit para testes, GitHub Actions para automação, etc.).
- Justifique tudo com base em autores/metodologias da área (Kitchenham para experimentos, Wohlin para métodos empíricos, IEEE 829 para planos de teste).
Dica: Inclua limitações do método: dificuldade de controlar variáveis em sistemas legados, viés de seleção de projetos, etc.5
5. Desenvolva a parte prática com documentação
Se for produção de software ou análise de código, documente tudo: requisitos, arquitetura, código-fonte, testes, métricas. Use padrões de Engenharia de Software.
- Requisitos: use casos de uso, user stories, ou requisitos funcionais/não-funcionais (documente utilizando UML, BPMN ou ferramentas como Enterprise Architect, Lucidchart, Draw.io).
- Arquitetura: explique padrões utilizados (MVC, Microservices, Camadas), justificando com Clean Architecture (Robert C. Martin) ou SOLID (Martin, Fowler).
- Código-fonte: hospede em repositório público (GitHub, GitLab).
- Testes: documente com JUnit, PyTest, ou outra framework. Apresente métricas de cobertura (Jacoco, SonarQube).
Dica: Inclua apêndices com trechos de código, scripts de automação, screenshots de ferramentas.6
6. Analise e discuta resultados com foco em métricas e qualidade
Não basta mostrar que o software funciona. Analise qualidade usando métricas reconhecidas.
- Avalie código com métricas como: cobertura de testes, complexidade ciclomática, número de bugs/defeitos, acoplamento/cohesão (Ferramentas: SonarQube, Checkstyle, PMD, Understand).
- Se for experimento, use técnicas estatísticas simples (média, desvio-padrão, teste t), explicando limitações.
- Compare resultados com trabalhos publicados (SBES, ICSE, SBQS).
- Discuta possíveis ameaças à validade e limitações (viés de seleção, tamanho da amostra, etc.).
Dica: Use tabelas, gráficos e quadros para sintetizar dados. Ferramentas como Excel, R ou Python (matplotlib, pandas) ajudam muito.7
7. Estruture e revise o texto conforme normas acadêmicas
Siga as normas da sua instituição (geralmente ABNT: NBR 6023, 14724, 10520). Mantenha clareza, concisão e formalidade, mas sem enrolação.
- Capa, folha de rosto, sumário, lista de figuras/tabelas, resumo (em português e inglês), introdução, fundamentação teórica, metodologia, desenvolvimento/prática, resultados/discussão, conclusão, referências, apêndices/anexos.
- Use citações diretas e indiretas com autores da área (Pressman, Sommerville etc.).
- Releia, peça revisão para colegas e oriente-se por pareceres do orientador.
- Atenção à formatação: margens, espaçamento, fonte, legendas de figuras e tabelas.
Dica: Ferramentas como Mendeley, Zotero, LaTeX ou geradores automáticos de referência podem facilitar muito.8
8. Prepare a apresentação e defesa
Monte slides claros, objetivos e focados em resultados e aprendizados. Pratique explicando conceitos técnicos de forma acessível para a banca.
- Destaque motivação, método, diferenciais, resultados e limitações.
- Use gráficos e snapshots das ferramentas/código.
- Prepare-se para perguntas técnicas (ex: por que escolheu Jenkins? Como validou métricas de qualidade? Por que esse método?)
- Treine explicações para não especialistas (ex: professores de áreas correlatas como Banco de Dados ou Redes).
Dica: Ensaiar com colegas, orientador ou até gravar você mesmo falando ajuda muito a ganhar confiança e ajustar o tempo.
5 Erros Comuns (e Como Evitar)
❌ Achar que só desenvolver um sistema já é suficiente para um TCC de Engenharia de Software.
✅ Inclua fundamentação científica, análise comparativa, justificativas técnicas e métricas de qualidade.
❌ Escolher temas genéricos ou já saturados (ex: 'Sistema de cadastro de usuários').
✅ Foque em tópicos atuais e específicos, como teste automatizado, análise de dívidas técnicas, uso de CI/CD, etc.
❌ Usar metodologia sem justificar (ex: aplicar Scrum só porque é moda, sem explicar o porquê).
✅ Justifique com autores e normas da área, mostrando adequação ao problema/objeto de estudo.
❌ Relatar só testes funcionais, esquecendo métricas formais de qualidade.
✅ Inclua análise de cobertura de testes, complexidade ciclomática, bugs, acoplamento/cohesão, usando ferramentas reconhecidas.
❌ Citar livros ou materiais desatualizados (ex: Pressman de 2002, artigos antigos demais).
✅ Prefira artigos de eventos/congressos recentes, livros atualizados (edições novas), e normas atualizadas.
Perguntas Frequentes
- Sim, principalmente se for comparar processos ou avaliar impacto de práticas. Mas não precisa aplicar tudo ao pé da letra: justifique o que faz sentido para seu contexto, cite autores (Pressman, Sommerville) e documente adaptações.
- Use referências da ISO/IEC 25010, Pressman, Sommerville, ou artigos de SBES/ICSE. Explique por que escolheu cobertura de código, bugs, complexidade, etc. Mostre relação com objetivos do trabalho.
- Pode e deve! Só explique critérios de escolha, contexto dos projetos, e verifique se há documentação e histórico suficiente para análise. Cite autores que já usaram essa abordagem (Wohlin, Kitchenham, etc.).
- Para TCC, use estatística descritiva básica: média, desvio-padrão, gráficos. Se comparar grupos, pode aplicar teste t (Python, R, Excel ajudam nisso). Explique limitações dos dados.
- Depende da instituição, mas em Engenharia de Software é recomendável entregar ambos e documentar tudo (requisitos, arquitetura, testes, métricas). Hospede código em repositório público (GitHub) e inclua link no TCC.
Preciso realmente aplicar metodologia formal (RUP, XP, Scrum) no TCC?
Como justifico a escolha de métricas de qualidade de software?
Posso usar projetos open source do GitHub como base para análise?
Como faço a análise estatística dos resultados?
Preciso entregar só o texto ou também o código-fonte?
Um TCC de Engenharia de Software não é só "fazer um sistema" — é mostrar que você domina métodos, ferramentas e ciência por trás do desenvolvimento. Escolha um tema relevante, fundamente com autores certos, use métricas e ferramentas da área e, acima de tudo, documente e justifique cada passo. No TQ
Pronto para começar seu TCC?
A Olivia Academy cria o TCC completo em ABNT para você, com pesquisa, redação e formatação prontas.
Começar agora — é grátis