Desenvolvimento de Software Apoiado por IA
Horário
Terça e Quinta, [horário a definir].
Ferramentas
Assistentes de Código
Utilizaremos ferramentas como GitHub Copilot, Claude Code e Cursor ao longo da disciplina. Configuração e acesso serão tratados nas primeiras aulas.
Repositórios
Cada equipe manterá um repositório público no GitHub com histórico de desenvolvimento, documento de especificação e evals.
Objetivo
Capacitar o aluno a desenvolver software com o apoio de ferramentas baseadas em IA — compreendendo como LLMs, agentes e práticas como SDD (Specification-Driven Development) redefinem o ciclo de desenvolvimento, e identificando o que permanece como responsabilidade essencialmente humana.
Ementa
Fundamentos de LLMs para desenvolvedores. Codificação assistida por IA: geração, revisão e depuração de código. Agentes de software: arquiteturas, construção e benchmarks. Specification-Driven Development (SDD): especificação como guia de implementação com IA. Avaliação de sistemas baseados em IA: evals, benchmarks e métricas de qualidade. Produtividade e impacto empírico de IA no desenvolvimento de software. Skills e responsabilidades do engenheiro de software na era da IA.
Bibliografia
Spec-Driven Development
- VILAS BOAS, M. et al. (2026). One Developer Is All You Need: A Case Study of an AI-Augmented One-Person Squad in a Brownfield Enterprise. arXiv:2605.18461.
- PISKALA, D. B. (2026). Spec-Driven Development: From Code to Contract in the Age of AI Coding Assistants. AIWare 2026. arXiv:2602.00180.
- HILL, B. (2026). Does Spec-Driven Development Reduce Defects? An Empirical Test of Industry Claims Across 119 Open-Source Repositories. SSRN Working Paper.
Como desenvolvedores usam ferramentas de IA
- BARKE, S.; JAMES, M. B.; POLIKARPOVA, N. (2023). Grounded Copilot: How Programmers Interact with Code-Generating Models. OOPSLA 2023. arXiv:2206.15000.
- LIANG, J. T.; YANG, C.; MYERS, B. A. (2023). A Large-Scale Survey on the Usability of AI Programming Assistants: Successes and Challenges. ICSE 2023. arXiv:2303.17125.
Produtividade
- PENG, S. et al. (2023). The Impact of AI on Developer Productivity: Evidence from GitHub Copilot. arXiv:2302.06590.
Agentes e Skills
- JIANG, Y. et al. (2026). SoK: Agentic Skills — Beyond Tool Use in LLM Agents. arXiv:2602.20867.
- JIMENEZ, C. et al. (2024). SWE-bench: Can Language Models Resolve Real-World GitHub Issues? ICLR 2024.
Segurança e Qualidade do Código Gerado
- PEARCE, H. et al. (2022). Asleep at the Keyboard? Assessing the Security of GitHub Copilot’s Code Contributions. IEEE S&P 2022.
Survey Geral
- HOU, X. et al. (2024). Large Language Models for Software Engineering: A Systematic Literature Review. ACM TOSEM.
Leituras por unidade
Ver seção Leituras ao final.
Avaliação
- Atividades Práticas — AP (3 × 10 pts): 30 pontos
- Projeto Final (PF): 70 pontos
- Entrega Parcial (EP): 20 pontos
- Apresentação Final + Demo: 50 pontos
Atividades Práticas (AP)
Trabalho individual ou em dupla.
- AP1 (entrega: 24/09): Exploração de ferramenta — usar um assistente de código para resolver um problema real. Entregar: código produzido, histórico de interação com a IA e análise crítica do processo (o que funcionou, o que falhou, o que precisou de correção humana).
- AP2 (entrega: 22/10): Construção de agente — implementar um agente com tool use para uma tarefa definida. Entregar: repositório com código + relatório de decisões de design.
- AP3 (entrega: 19/11): Plano de avaliação — dado um sistema hipotético com LLMs, elaborar um plano de evals cobrindo pelo menos 3 dimensões (ex.: correção funcional, segurança, performance).
Projeto Final (PF)
Trabalho em trios. Cada equipe constrói um sistema de software usando práticas de desenvolvimento apoiado por IA. O problema pode ser escolhido livremente pela equipe ou proposto pelo professor.
Requisitos:
- O sistema deve ter funcionalidade demonstrável em uma demo ao vivo
- O desenvolvimento deve usar ao menos dois assistentes ou agentes de IA, com uso documentado
- Deve incluir um
SPEC.md: documento de especificação que guiou o desenvolvimento com IA - Deve incluir uma suite de evals ou testes automatizados
- Deve incluir um relatório de processo: o que a IA construiu, o que precisou de intervenção humana, o que falhou
Entregas:
- EP (15/12): Proof of concept demonstrável + repositório com
SPEC.mde evals iniciais - Apresentação Final (22/12): Demo ao vivo (10–15 min) + defesa das decisões de design e do processo de desenvolvimento com IA
Cronograma
Passível de alterações. Verificar calendário acadêmico oficial da UFPA para feriados estaduais e municipais.
| # | Data | Dia | Conteúdo |
|---|---|---|---|
| 1 | 25/08 | Ter | Apresentação da disciplina. IA no desenvolvimento de software: contexto e impacto |
| 2 | 27/08 | Qui | Como LLMs funcionam: o suficiente para usá-los bem |
| 3 | 01/09 | Ter | Prompt engineering para desenvolvedores |
| 4 | 03/09 | Qui | Mapa do ecossistema: copilots, chatbots, agentes e ferramentas |
| 5 | 08/09 | Ter | Geração de código: capacidades e limitações |
| 6 | 10/09 | Qui | Code review e debugging com IA |
| 7 | 15/09 | Ter | Confiança no código gerado: segurança, correção e manutenibilidade |
| 8 | 17/09 | Qui | Estudo de caso: GitHub Copilot em projetos reais |
| 9 | 22/09 | Ter | O que são agentes? Arquiteturas: ReAct, tool use, memória |
| 10 | 24/09 | Qui | Construindo agentes com LLMs — entrega AP1 |
| 11 | 29/09 | Ter | Multi-agentes: orquestração e padrões de comunicação |
| 12 | 01/10 | Qui | Agentes de engenharia de software: SWE-agent, Claude Code, Devin |
| 13 | 06/10 | Ter | Laboratório: construindo um agente simples — base para AP2 (Tool Use — Anthropic Courses) |
| 14 | 08/10 | Qui | Avaliando agentes: SWE-bench e benchmarks |
| 15 | 13/10 | Ter | SDD: especificação como fonte da verdade |
| 16 | 15/10 | Qui | Escrevendo specs que a IA consegue implementar |
| 17 | 20/10 | Ter | TDD com IA: testes como especificação executável |
| 18 | 22/10 | Qui | Laboratório SDD: do spec ao código — entrega AP2 |
| 19 | 27/10 | Ter | Avaliar o quê? Qualidade, segurança e performance em sistemas com IA — base para AP3 (Prompt Evaluations — Anthropic Courses) |
| 20 | 29/10 | Qui | Como construir evals para sistemas com LLMs — laboratório com automated evaluations cookbook |
| 21 | 03/11 | Ter | Métricas de produtividade: o que mudou com IA |
| 22 | 05/11 | Qui | Estudos empíricos: evidências sobre impacto de IA no desenvolvimento |
| 23 | 10/11 | Ter | Quais skills continuam sendo essenciais? |
| 24 | 12/11 | Qui | O que continua sendo responsabilidade humana? |
| 25 | 17/11 | Ter | Ética, viés e responsabilidade em sistemas com IA |
| 26 | 19/11 | Qui | O futuro do engenheiro de software: debates abertos — entrega AP3 |
| KO | 24/11 | Ter | Kickoff do Projeto Final: formação de equipes e definição de escopo |
| KO | 26/11 | Qui | Orientação: arquitetura, stack e plano de trabalho |
| — | 01/12 | Ter | Check-in 1: progresso e bloqueios |
| — | 03/12 | Qui | Check-in 2: revisão de design |
| — | 08/12 | Ter | SEM AULA (Nossa Senhora da Conceição) |
| — | 10/12 | Qui | Check-in 3: integração e testes |
| EP | 15/12 | Ter | Entrega Parcial: proof of concept + repositório |
| — | 17/12 | Qui | Feedback + ajustes finais |
| PF | 22/12 | Ter | Apresentações Finais |
Leituras
Módulo 1 — Fundamentos
- Hou, X. et al. (2024). Large Language Models for Software Engineering: A Systematic Literature Review. ACM TOSEM.
- Brown, T. et al. (2020). Language Models are Few-Shot Learners. NeurIPS 2020.
Módulo 2 — Codificação Assistida
- Chen, M. et al. (2021). Evaluating Large Language Models Trained on Code. arXiv:2107.03374. (paper do Codex/HumanEval)
- Vaithilingam, P. et al. (2022). Expectation vs. Experience: Evaluating the Usability of Code Generation Tools Powered by Large Language Models. CHI 2022.
- Peng, S. et al. (2023). The Impact of AI on Developer Productivity: Evidence from GitHub Copilot. arXiv:2302.06590.
- Pearce, H. et al. (2022). Asleep at the Keyboard? Assessing the Security of GitHub Copilot’s Code Contributions. IEEE S&P 2022.
Módulo 3 — Agentes
- Yao, S. et al. (2023). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR 2023.
- Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. NeurIPS 2023.
- Jimenez, C. et al. (2024). SWE-bench: Can Language Models Resolve Real-World GitHub Issues? ICLR 2024.
- Yang, J. et al. (2024). SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering. NeurIPS 2024.
- Anthropic (2024). Tool Use — Anthropic Courses. Notebooks práticos para implementação de agentes com tool use. Material de apoio para AP2.
Módulo 4 — SDD
- Antropic (2024). Claude Code: Best Practices for Agentic Coding. Documentação técnica. (exemplo de spec-first development com CLAUDE.md)
- Perry, N. et al. (2023). Do Users Write More Insecure Code with AI Assistants? CHI 2023. (base empírica para discutir qualidade de specs)
- A definir: artigos sobre requirements engineering e LLMs.
Módulo 5 — Avaliação
- Zheng, L. et al. (2023). Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena. NeurIPS 2023.
- Anthropic (2024). Prompt Evaluations — Anthropic Courses. Como escrever evals para produção: métricas, cobertura e automação. Material de apoio para AP3.
- Anthropic (2024). Automated Evaluations — Anthropic Cookbook. Notebooks com código pronto para evals automatizadas.
Módulo 6 — Skills e Futuro
- A definir: artigos de pesquisa em Educação em Engenharia de Software sobre o papel do desenvolvedor na era da IA.
Entrega atrasada
Entregas de trabalhos após o prazo serão aceitas mas os pontos referentes não serão contabilizados.
Política de plágio e uso de IA
O uso de ferramentas de IA é encorajado e esperado nesta disciplina. O que deve ser documentado e reportado, não ocultado. Submeter trabalho gerado por IA como próprio sem documentar o processo é considerado desonestidade acadêmica. Cópia de solução ou parte de solução entre equipes também configura plágio; na sua presença, os grupos envolvidos não receberão pontos da atividade.