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

  1. Atividades Práticas — AP (3 × 10 pts): 30 pontos
  2. 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.md e 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

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.