Você está na página 1de 8

Universidade Estadual de Campinas – UNICAMP

Faculdade de Tecnologia – FT

Avaliando a capacidade do ChatGPT desenvolver um sistema de


informação real

Projeto de Iniciação Científica

Aluno: Heitor Pavani Nolla

h173233@dac.unicamp.br

Orientador: Prof. Plínio Roberto Souza Vilela, Dr.

prvilela@unicamp.br

Limeira, 8 de maio de 2023


Universidade Estadual de Campinas – UNICAMP

Faculdade de Tecnologia – FT

Título do Projeto: Avaliando a capacidade do ChatGPT desenvolver um sistema de


informação real
Estudante beneficiário: Heitor Pavani Nolla
Orientador Responsável: Prof. Dr. Plínio Roberto Souza Vilela
Instituição Sede: Faculdade de Tecnologia - Universidade Estadual de Campinas

Resumo

Desde a estreia do ChatGPT no fim de 2022, o programa impressiona e assusta


com suas capacidades sem precedentes. Profissionais de diversas áreas temem ter seus
empregos ameaçados pelo recente boom da inteligência artificial, que tende a se
desenvolver e aprimorar cada vez mais conforme o passar dos anos.
Uma das áreas abaladas por essa questão é a área da tecnologia. Pela habilidade
impressionante do ChatGPT em manter diálogos quase humanos, muitos sentem que ele
pode vir a substituir programadores no futuro, sendo capaz de compreender problemas e
gerar códigos que resolvam as demandas propostas.
Apesar disso, são poucas e insatisfatórias as conclusões formais sobre suas
capacidades que fujam de achismos. Não há, atualmente, nenhum estudo que comprove
que o ChatGPT pode substituir um programador humano. Por isso, nesse projeto, será
avaliada a capacidade da inteligência artificial desenvolver um sistema de informação
completo, com base em prompts que representam requisitos do sistema.
Ao final do projeto, serão obtidas conclusões sobre as habilidades do ChatGPT no
desenvolvimento de sistemas, sendo possível avaliar se a preocupação com suas
habilidades é justificada. O objetivo principal do projeto é determinar se, com o mínimo de
programação humana, o ChatGPT é capaz de gerar um sistema de informação completo.
Como objetivo secundário, o projeto visa determinar uma metodologia que permita a um
programador humano extrair o máximo de proveito dos recursos do ChatGPT.

1
Universidade Estadual de Campinas – UNICAMP

Faculdade de Tecnologia – FT

Sumário

Resumo................................................................................................................................1
1 - Introdução e justificativa.............................................................................................. 2
2 - Objetivos........................................................................................................................ 4
3 - Métodos.......................................................................................................................... 5
4 - Cronograma de atividades............................................................................................6
5 - Referências bibliográficas............................................................................................ 7

1 - Introdução e justificativa

O ChatGPT é, basicamente, um robô virtual no estilo chatbot, com um algoritmo


baseado em inteligência artificial. Sua principal funcionalidade é atender às demandas do
usuário, podendo essas serem perguntas, tarefas, pedidos, entre outras. O robô tem a
capacidade de atender, em poucos segundos, solicitações extravagantes como “gere uma
letra de música no estilo dos Mamonas Assassinas”, mesmo que com qualidade
questionável. Apesar de seu formato já ter sido visto anteriormente em chatbots famosos,
como o Google Assistente, Siri e Cortana, o ChatGPT demonstrou um grande salto
evolutivo quando comparado a outras opções no ramo, pela sua habilidade de gerar
conteúdo extremamente coerente com o contexto da conversa, tornando-o “mais
humano”. O mérito para essa coerência impressionante vem de sua arquitetura, baseada
na rede neural Transformer, projetada especialmente para lidar com textos. Assim, o
modelo de inteligência artificial tem várias camadas que permitem à plataforma prestar
atenção nas palavras-chave, ao contexto e aos diferentes significados que as palavras
podem ter. Com essas habilidades, o robô já assustou muitos profissionais, não apenas
da área da tecnologia, mas de outras áreas, principalmente baseadas em texto e
comunicação, como jornalismo, tradução, educação, psicologia, design, finanças, etc.
Aparecendo pela primeira vez dia 30 de novembro de 2022 e desenvolvido pela
gigante de inteligência artificial OpenAI, as habilidades demonstradas pelo programa até o

2
Universidade Estadual de Campinas – UNICAMP

Faculdade de Tecnologia – FT

momento, e seu potencial de evolução, fascinam, mas também provocam medo em


muitos. Dada sua habilidade de compreender o contexto de uma conversa e conseguir
manter diálogos reais, sua competência em gerar códigos provoca questionamentos no
setor da programação.
Com essa questão estabelecida, esse medo no campo da tecnologia é justificado?
O ChatGPT é mesmo capaz de gerar códigos coerentes? Qual o tamanho dos programas
que ele consegue computar? Seus códigos são eficientes? Conseguirá gerar uma
interface gráfica? Gerar a persistência das variáveis em um banco de dados? Seus
códigos terão erros de sintaxe ou lógica? Se sim, qual deverá ser o nível de conhecimento
na área da programação e na linguagem escolhida para que possa consertá-los? E caso
as respostas para todos esses questionamentos venham a demonstrar que sim, o Chat
GPT realmente gera códigos de qualidade incontestável e tão bem quanto um humano,
como podemos manipulá-lo, para extrair dessa ferramenta o máximo possível?
Este projeto terá, como objetivo principal, analisar a capacidade do robô, em sua
versão GPT 3.5, gerar um sistema de informação completo em Java. Para o sistema ser
considerado completo, deverá possuir códigos de qualidade, persistência de dados e uma
interface gráfica, mesmo que simples. Como objetivo secundário, o projeto visa
determinar uma metodologia que permita que um programador humano use os recursos
fornecidos pelo ChatGPT para melhorar sua produtividade. Mais detalhes sobre a
metodologia a ser utilizada podem ser encontrados na seção 3 deste documento.
A expectativa é que, apesar de ser útil, o chatbot não consiga, por conta própria,
gerar sistemas funcionais sem que seu usuário possua um bom nível de conhecimento na
linguagem de programação escolhida. É esperado que o ChatGPT consiga gerar códigos
em um nível mediano de complexidade, com uma certa qualidade na persistência dos
dados, mas falhe na área da interface gráfica. Para garantir uma maior precisão na
conclusão, foi escolhida a linguagem Java. Como observação adicional o aluno
proponente deste projeto não possui no momento experiência com a linguagem Java e
desconhece sua sintaxe.

3
Universidade Estadual de Campinas – UNICAMP

Faculdade de Tecnologia – FT

2 - Objetivos

Este projeto de iniciação científica visa chegar a conclusões reais sobre as


habilidades do ChatGPT no campo da programação, acabando com especulações pouco
fundamentadas sobre suas capacidades. Enquanto algumas fontes dizem acreditar que
programadores devem se preocupar com o futuro da inteligência artificial e com a
possibilidade de perderem seus empregos para ela, poucos realmente experimentam com
a tão ameaçadora tecnologia buscando fatos que comprovem seu desempenho.
A professora da PUC-RS e SP Martha Gabriel, autora do livro Inteligência Artificial:
do Zero ao Metaverso, diz: "quando uma tecnologia passa a fazer algo melhor que um
humano, não adianta querer concorrer com ela nisso. A partir desse momento, as
habilidades humanas que passam a ter valor são: saber usar aquela tecnologia no seu
máximo potencial e fazer aquilo que a tecnologia não faz". Com base nessa afirmação,
esse projeto irá analisar a capacidade do ChatGPT gerar um sistema de informação
completo, abrangendo a lógica de programação, persistência de dados e interface gráfica,
com mínimo conhecimento na linguagem e pouco ou nada de programação da parte
humana. Além disso, o projeto busca elaborar uma metodologia que auxilie
programadores a usar o ChatGPT com mais eficiência. Ao fim do projeto, ele terá
respondido:
● O ChatGPT consegue construir um sistema de informação completo?
● Alguma programação humana será necessária para obter resultados
satisfatórios?
● É possível usar o ChatGPT para gerar códigos mesmo com pouco
conhecimento em uma linguagem?
● Qual a qualidade do código gerado pelo ChatGPT?
● Qual o tamanho dos códigos que ele consegue gerar?
● Qual será a influência dos prompts na estrutura do código?
● Como manipular essa ferramenta, para extrair dela o máximo possível?

4
Universidade Estadual de Campinas – UNICAMP

Faculdade de Tecnologia – FT

3 - Métodos

Para o fornecimento de todos os prompts ao ChatGPT, será utilizado o site da


OpenAI, disponível de maneira aberta e gratuita. Os códigos serão executados na IDE
Apache NetBeans 17, utilizando o Java 8 (disponível para download no site da Oracle).
Os pedidos feitos ao chatbot irão variar gradativamente em nível de dificuldade, indo de
métodos básicos, que não utilizem conceitos avançados de programação, a programas
que integram diversas classes.
Conforme o desempenho do ChatGPT nas tarefas, serão fornecidos requisitos
gradativamente mais complexos de serem implementados, ou feitas alterações nos
prompts, caso o desempenho seja insatisfatório. A qualidade do código gerado será
avaliada não apenas em corretude, mas também segundo alguns princípios de clean code
estabelecidos por Robert C. Martin, principalmente:
● Os nomes das variáveis devem ter significado e ser pronunciáveis.
● Os nomes devem ser pesquisáveis.
● Os nomes das funções devem dizer o que elas fazem.
● O robô deve, preferencialmente, usar getters e setters.
Conforme a complexidade do código aumentar, o ChatGPT também será avaliado
em sua capacidade de utilizar corretamente questões de herança, polimorfismo,
encapsulamento, e outros conceitos de programação orientada a objetos.
Também será avaliado o efeito de cada prompt no código gerado. Existem diversas
maneiras de solicitar que o ChatGPT gere o mesmo código. Qual deve ser o nível de
especificação da solicitação? O projeto irá avaliar se alguma maneira acaba produzindo
resultados melhores que outras, e por quê.
Finalmente, o projeto irá avaliar se o ChatGPT consegue gerar um sistema real e
funcional. Para isso, ele deve ser capaz de computar, além dos códigos, a permanência
dos dados em um banco de dados e uma interface gráfica, mesmo que minimamente.

5
Universidade Estadual de Campinas – UNICAMP

Faculdade de Tecnologia – FT

4 - Cronograma de atividades

O trabalho será iniciado com a instalação dos softwares básicos para a compilação
dos códigos. Imediatamente após, os primeiros prompts, mais simples, já serão
fornecidos ao ChatGPT, iniciando o processo de avaliação da inteligência artificial. A partir
disso, os prompts fornecidos a ele aumentarão gradativamente em dificuldade,
representando requisitos cada vez mais complexos, que se aproximem de requisitos que
seriam encontrados para sistemas de informação reais.
Na segunda fase, a capacidade do ChatGPT gerar um sistema de informação
completo será analisada. Ele será testado quanto à sua habilidade de integrar códigos a
uma interface gráfica e garantir a persistência dos dados inseridos, integrando o sistema
com um banco de dados. Ao final dessa fase, a inteligência artificial deve ter gerado um
sistema de informação com código de qualidade, persistência de dados e uma interface
gŕafica.
Ao término dessa fase, será analisada a influência dos prompts no código final. As
mesmas solicitações serão feitas, mudando apenas a maneira como foram escritas.
Com isso, o projeto caminhará para seu fim, onde será elaborada uma proposta de
metodologia para uso do ChatGPT no desenvolvimento de sistemas de informação. Essa
metodologia utilizará todos os resultados obtidos até o momento de sua elaboração para
determinar uma maneira de utilizar o ChatGPT como um recurso para programadores,
fazendo dele uma ferramenta que aumente a produtividade do programador e a qualidade
do código.

6
Universidade Estadual de Campinas – UNICAMP

Faculdade de Tecnologia – FT

5 - Referências bibliográficas

O que é ChatGPT e por que alguns o veem como ameaça. BBC News Brasil, 19 de
janeiro de 2023. Disponível em: https://www.bbc.com/portuguese/geral-64297796. Acesso
em 7 de maio de 2023.

GPT-4 Technical Report. OpenAI, 14 de março de 2023. Disponível em:


https://cdn.openai.com/papers/gpt-4.pdf Acesso em: 10 de maio de 2023.

Martin, Robert C. Código Limpo: Habilidades Práticas do Agile Software. Brasil: Alta
Books, 2 de março de 2020.

Gabriel, Martha. Inteligência Artificial: Do Zero Ao Metaverso. 1ª edição. Brasil: Atlas, 15


de junho de 2022.

Você também pode gostar