Descrição do Curso¶
A Engenharia de Software Baseada em Busca (SBSE) representa uma revolução na forma como abordamos problemas complexos da engenharia de software. Este curso pioneiro explora a interseção entre técnicas clássicas de otimização e as mais modernas ferramentas de Inteligência Artificial, capacitando estudantes a projetar soluções automatizadas que otimizam desde a geração de testes até a detecção de vieses em sistemas de IA.
Em uma era onde a IA permeia todos os aspectos do desenvolvimento de software, este curso oferece uma visão única sobre como algoritmos de busca podem potencializar sistemas inteligentes e, reciprocamente, como LLMs podem revolucionar a formulação e solução de problemas de SBSE.
Carga Horária: 30 horas-aula
Modalidade: Laboratórios práticos com desenvolvimento de projeto final
Estrutura do Curso¶
📚 Módulos do Curso¶
| Módulo | Aulas | Tópico | Foco Principal |
|---|---|---|---|
| 1 | 1-2 | Fundamentos e a Nova Fronteira da SBSE | Construção de algoritmos genéticos do zero e contextualização na era da IA |
| 2 | 3-5 | Técnicas de Otimização e Sinergia com IA | Formulação de problemas e uso de LLMs como assistentes de otimização |
| 3 | 6-8 | SBSE Aplicada à Engenharia de Software | Teste baseado em busca e refatoração automatizada |
| 4 | 9-12 | SBSE para Sistemas de IA | Fairness testing, otimização de hiperparâmetros e especificação do projeto final |
| 5 | 13-14 | Tópicos Avançados e Ética | Otimização multi-objetivo e análise ética da otimização automatizada |
| 6 | 15-16 | Desenvolvimento do Projeto Final | Período para desenvolvimento autônomo e entrega |
🎯 Objetivos do Curso¶
Objetivo Geral: Capacitar o aluno a projetar, implementar e validar soluções automatizadas que integrem SBSE com Inteligência Artificial, criando sistemas mais robustos, eficientes e éticos.
Competências Desenvolvidas:
Formulação de problemas complexos de engenharia de software como problemas de busca
Implementação de algoritmos genéticos e otimização multi-objetivo usando DEAP e Pymoo
Integração de LLMs para auxiliar na formulação de funções de fitness e geração de heurísticas
Desenvolvimento de sistemas de fairness testing para detectar vieses em modelos de IA
Aplicação de técnicas de busca para otimização de prompts e hiperparâmetros
Análise ética das implicações da otimização automatizada
🛠 Ferramentas e Tecnologias¶
Core Technologies:
Python 3.12+ - Linguagem principal
DEAP - Framework para algoritmos evolutivos
Pymoo - Biblioteca para otimização multi-objetivo
OpenAI API / Ollama - Integração com LLMs
Ambiente de Desenvolvimento:
Jupyter Notebooks - Desenvolvimento interativo
VS Code - IDE principal
Google Colab - Execução em nuvem
NotebookLM - Assistente para documentação
Bibliotecas Complementares:
scikit-learn - Machine Learning
matplotlib/seaborn - Visualização
pandas/polars - Manipulação de dados
pytest - Testes automatizados
📋 Avaliação¶
| Componente | Peso | Critérios |
|---|---|---|
| Projeto Final Integrado | 100% | Formulação do problema, implementação técnica, integração SBSE+IA, validação experimental, documentação e apresentação |
Requisitos do Projeto:
✅ Resolver um problema real de engenharia de software usando SBSE
✅ Integrar LLMs ou técnicas de IA de forma fundamental (não cosmética)
✅ Implementação em Python com bibliotecas do curso
✅ Jupyter Notebook completo com análise de resultados
✅ Vídeo de apresentação (máx. 15 minutos)
🗓 Cronograma Detalhado¶
Módulo 1: Fundamentos (Aulas 1-2)¶
Aula 1: A Crise da Complexidade e SBSE como Solução
Aula 2: Laboratório - Construindo um Algoritmo Genético do Zero
Módulo 2: Sinergia com IA (Aulas 3-5)¶
Aula 3: Formulação de Problemas e Representações
Aula 4: Laboratório com DEAP
Aula 5: LLMs como Assistentes de Otimização
Módulo 3: Aplicações Tradicionais (Aulas 6-8)¶
Aula 6: Teste Baseado em Busca (SBST) - Teoria
Aula 7: Laboratório de SBST
Aula 8: Refatoração Baseada em Busca
Módulo 4: SBSE para IA (Aulas 9-12)¶
Aula 9: Fairness Testing em Modelos de ML
Aula 10: Laboratório de Fairness Testing
Aula 11: Otimização de Hiperparâmetros e Prompts
Aula 12: Especificação do Projeto Final
Módulo 5: Tópicos Avançados (Aulas 13-14)¶
Aula 13: Otimização Multi-Objetivo com Pymoo
Aula 14: Ética e o Lado Sombrio da Otimização
Módulo 6: Projeto (Aulas 15-16)¶
Período de desenvolvimento autônomo com suporte assíncrono
🚀 Como Utilizar Este Material¶
Estrutura de Diretórios¶
docs/aulas/
├── aula-01-introducao-sbse/ # Fundamentos da SBSE
├── aula-02-tecnicas-otimizacao-sbse/ # Algoritmos Genéticos na prática
├── aula-03-formulacao-problemas/ # Representações e fitness
├── aula-04-laboratorio-deap/ # Framework DEAP
├── aula-05-sinergia-ia/ # LLMs + SBSE
├── aula-06-teste-baseado-busca/ # SBST teoria
├── aula-07-sbst-lab/ # SBST laboratório
├── aula-08-refatoracao-busca/ # Refatoração automatizada
├── aula-09-fairness-testing-ml/ # Fairness em IA
├── aula-10-fairness-testing-lab/ # Laboratório fairness
├── aula-11-otimizacao-hiperparametros-prompts/ # Otimização IA
├── aula-12-projeto-final-especificacao/ # Projeto final
├── aula-13-otimizacao-multi-objetivo-pymoo/ # Multi-objetivo
├── aula-14-etica-lado-sombrio-otimizacao/ # Ética em SBSE
└── aula-15-16-projeto-final-desenvolvimento/ # DesenvolvimentoPara Educadores¶
Cada aula contém:
📄
README.md- Conteúdo teórico completo📓
workshop.ipynb- Laboratório prático📋
plano_aula.md- Objetivos e metodologia
Para Estudantes¶
Pré-requisitos: Python intermediário, conhecimento básico de ML
Setup: Instale as dependências com
pip install -r requirements.txtExecução: Execute os notebooks em ordem sequencial
Projeto: Desenvolva um projeto que integre SBSE + IA
📖 Bibliografia Essencial¶
Livros Fundamentais¶
Harman, M. & Jones, B.F. - “Search-Based Software Engineering”
Deb, K. - “Multi-Objective Optimization Using Evolutionary Algorithms”
Luke, S. - “Essentials of Metaheuristics”
Artigos Seminais¶
Harman, M. (2007). “The Current State and Future of Search Based Software Engineering”
McMinn, P. (2004). “Search‐based software test data generation: a survey”
Kessentini, M. et al. (2011). “Search‐based design defects detection and refactoring”
Recursos Modernos (SBSE + IA)¶
Zhang, J. et al. (2023). “Large Language Models for Search-Based Software Engineering”
Wang, S. et al. (2024). “Fairness Testing of Machine Learning Models with Search-Based Techniques”
Chen, L. et al. (2024). “Prompt Engineering Optimization using Evolutionary Algorithms”
🤝 Contribuições¶
Este é um projeto educacional aberto. Contribuições são bem-vindas!
Como Contribuir¶
Fork este repositório
Crie uma branch para sua feature (
git checkout -b feature/nova-aula)Commit suas mudanças (
git commit -am 'Adiciona nova aula sobre topic X')Push para a branch (
git push origin feature/nova-aula)Abra um Pull Request
Tipos de Contribuições¶
🐛 Correções de bugs nos notebooks
📚 Melhorias na documentação
🆕 Novas aulas ou laboratórios
🔧 Otimizações de código
🌐 Traduções para outras línguas
📜 Licença e Reúso¶
Licença¶
Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para detalhes.
Reúso do Material¶
Este material foi desenvolvido como uma evolução moderna dos fundamentos clássicos de SBSE, integrando as mais recentes técnicas de IA:
Inspirações e Referências:
🌟 Curso original de SBSE: https://
github .com /markuswagnergithub /SBSEcourse 👩🏫 Expertise acadêmica: Contribuições das Professoras Silvia Regina Vergilio e Aurora T. Ramirez Pozo
🔬 Pesquisa atual: Integração com literatura recente sobre SBSE + IA (2023-2025)
Política de Uso:
✅ Livre para uso educacional e comercial
✅ Modificações e redistribuições permitidas
✅ Atribuição requerida: Cite este repositório como fonte
✅ Contribuições encorajadas: Melhore o material para a comunidade
📞 Contato e Suporte¶
Autor Principal: Prof. Dr. Jackson Antonio do Prado Lima
Email: jacksonpradolima@gmail
GitHub: @jacksonpradolima
Para Dúvidas:
💬 Issues: Use as Issues do GitHub para dúvidas técnicas
📧 Email: Para questões acadêmicas ou colaborações
🐦 Discussões: Use as Discussions para compartilhar projetos
🌟 Agradecimentos¶
Agradecimentos especiais à comunidade internacional de SBSE e aos pioneiros que tornaram possível esta disciplina inovadora. Este curso representa um marco na educação em otimização de software, combinando tradição acadêmica com inovação tecnológica.
“Na interseção entre otimização clássica e inteligência artificial moderna, descobrimos novas fronteiras para resolver os problemas mais complexos da engenharia de software.”
🚀 Transformando Problemas Complexos em Soluções Otimizadas com IA 🤖