Desenvolvimento de Software com Agentes e IA Generativa

joaoarthurbm.github.io
Computação @ UFCG

Foto de Joao Arthur Brunet

Modelos de linguagem de grande porte e agentes de codificação (AI Coding Agents) construídos sobre eles já fazem parte do dia a dia de quem desenvolve software.

Nesta disciplina, vamos explorar, avaliar criticamente e integrar essas tecnologias às principais práticas de Engenharia de Software.

Vamos combinar discussão, experimentação prática e uso de ferramentas, explorando agentes de codificação e ambientes como o OpenCode para apoiar diferentes etapas do processo de desenvolvimento.

Objetivos

Ao final deste curso, o aluno será capaz de debater conceitos-chave como LLMs, Agentes, MCP, ferramentas, skills e spec-driven development, e conhecer o que a pesquisa e o mercado têm evidenciado sobre o uso desses modelos. Na prática, o foco é especificar agentes e skills, implementar servidores MCP e usar agentes de IA em tarefas reais do ciclo de desenvolvimento (implementação, testes, documentação, refatoração), sempre com postura crítica de engenheiro de software, controlando a qualidade e a padronização do código gerado. Por fim, vamos discutir o impacto desses modelos na prática de desenvolvimento: o papel do desenvolvedor, riscos, produtividade e ética.

Fases

Para atingir os nossos Objetivos de Aprendizagem, o curso é organizado em 3 fases bem claras: contexto, harness e ciclo de desenvolvimento.

  • No contexto, vamos falar sobre agentes, modelos, modelos generativos e agentes com modelos generativos, além de relembrar o ciclo de desenvolvimento de software. Também vamos ver o que a pesquisa em Engenharia de Software tem dito a respeito da área e discutir artigos e posicionamentos influentes.
  • Em harness, vamos nos aprofundar no que transforma modelos que só geram texto em agentes que executam tarefas: ambiente de execução, loop, gestão de contexto, memória, skills, ferramentas, MCP, tratamento de erros, guardrails, entre outros.
  • No ciclo de desenvolvimento, exploramos na prática, com agentes, cada uma das etapas do ciclo de desenvolvimento. Vamos utilizar agentes para entender, projetar, implementar, avaliar, implantar e operar.

Método

Vamos ler muito, experimentar muito e discutir muito! As leituras e discussões vão envolver artigos científicos e opinativos sobre o tema.

Vamos ter encontros com devs do Nubank, QuintoAndar, VTEX, entre outras empresas importantes de tecnologia. Nosso objetivo é ver como as coisas de fato estão sendo feitas na prática.

Temos dois tipos de atividade avaliativa:

  • Semanais (70%): majoritariamente práticas, com discussão de resultados. Vamos focar todos no mesmo projeto escolhido por mim para podermos comparar e discutir em sala de aula.
  • Projeto (30%): no último mês, individual e escolhido por você, com resultado concreto (software executando) e um relatório discutindo os conceitos vistos na disciplina.