20
Engenharia de Software
FIAP
26
Engenharia de Software
FIAP
12
Engenharia de Software
FIAP
3
Engenharia de Software
FIAP
26
Engenharia de Software
FIAP
26
Engenharia de Software
FIAP
20
Engenharia de Software
FIAP
7
Engenharia de Software
FIAP
3
Engenharia de Software
FIAP
18
Engenharia de Software
FIAP
Texto de pré-visualização
TRABALHO DA DISCIPLINA Título Análise Crítica e Experimental de Ferramentas Baseadas em Inteligência Artificial no Ciclo de Vida do Desenvolvimento de Software SDLC OBJETIVOS Geral Elaborar um relatório técnicocientífico formato de artigo curto que explore analise e demonstre o uso prático de ferramentas baseadas em IA no contexto da Engenharia de Software em uma das etapas do ciclo de vida de desenvolvimento de software análise codificação testes ou manutenção avaliando seu impacto na produtividade e na qualidade do produto final O trabalho deve abordar obrigatoriamente ferramentas ou técnicas que se enquadrem em pelo menos um dos seguintes eixos estudados na disciplina IA generativa e LLMs Uso de assistentes para escrita documentação e refatoração de código ex GitHub Copilot Amazon CodeWhisperer etc Manutenção Preditiva e Qualidade Uso de modelos de ML para predição de defeitos Defect Prediction detecção de code smells ou análise de severidade ex SonarQube etc Automação de testes Uso de IA para automação de casos de teste ou ferramentas de regressão visual ex Applitools Testim etc Sistemas autoadaptativos Investigação de mecanismos de Self Healing e autorreparo em produção Apresentar no relatório compreensão crítica sobre benefícios limitações riscos éticos e desafios técnicos dessas tecnologias Diretrizes para o Relatório Escolha uma ou duas ferramentas reais baseadas em IA voltadas para uma das etapas do ciclo de vida de desenvolvimento de software ex GitHub Copilot Amazon CodeWhisperer SonarQube com IA Testim Applitools Diffblue CodeScene etc Contextualize a ferramenta dentro de pelo menos um dos eixos da disciplina o Geraçãoassistência de código com LLMs o Geração ou otimização de casos de teste o Detecção preditiva de bugs ou code smells o Sistemas de autorreparo ou autoadaptação Analise criticamente o Como a IA é aplicada na ferramenta ex modelo utilizado tipo de dado abordagem técnica o Quais ganhos reais ela traz para a produtividade qualidade ou segurança do software o Quais são suas limitações riscos ex viés geração de código inseguro dependência excessiva ou desafios de adoção o Há implicações éticas ou de propriedade intelectual envolvidas Demonstração prática Inclua uma pequena demonstração prática ex uso do GitHub Copilot para gerar testes análise de relatório do SonarQube em um repositório público comparação de cobertura de teste comsem IA etc A demonstração prática pode ser baseada em um repositório público ex GitHub em um experimento controlado com código simples ou na análise de relatórios gerados por ferramentas gratuitas Não é necessário desenvolvimento de software complexo DESENVOLVIMENTO DO RELATÓRIO O relatório deve ser redigido em formato de artigo científico curto A estrutura deve contemplar cada item ser uma seção do artigo Introdução Contextualização da ferramenta no paradigma IAES IA na Engenharia de Software Explique em qual fase do SDLC ela se aplica Planejamento Teste Manutenção etc Fundamentação Teórica Breve explicação da tecnologia de IA utilizada Descrever sua contextualização no eixo da disciplina ex Ela utiliza Aprendizado Supervisionado Classificação ou Regressão É baseada em modelos Transformers etc Rigor acadêmico na citação de fontes e fundamentação dos conceitos discutidos no curso Análise Prática ou Estudo de Caso Descreva um cenário de uso real ou experimental Discussão sobre como a ferramenta altera a eficiência no ciclo de vida de desenvolvimento de software Descrever as respostas às questões levantadas na análise crítica Desafios e Ética Reflexão sobre as limitações da ferramenta e os desafios éticos de sua implementação em ambientes de produção Discuta os riscos de segurança vulnerabilidades no código gerado e privacidade de dados no uso dessas ferramentas Conclusão e argumentação sobre as tendências futuras da ferramenta escolhida Sintetize como a ferramenta altera o papel do Engenheiro de Software moderno como está transformando ou ainda falha em transformar a prática da Engenharia de Software Referências Cite as fontes utilizadas seguindo a norma ABNT FORMATO E DATA DE ENTREGA O artigo deve conter no máximo 8 páginas Ser entregue arquivo em formato PDF Entrega dia 19022026 ANÁLISE CRÍTICA E EXPERIMENTAL DE FERRAMENTAS BASEADAS EM INTELIGÊNCIA ARTIFICIAL NO CICLO DE VIDA DO DESENVOLVIMENTO DE SOFTWARE SDLC Seu nome Nome do professor 1 INTRODUÇÃO A Inteligência Artificial passou a ocupar um espaço relevante na Engenharia de Software não por modismo tecnológico mas pela pressão constante por produtividade confiabilidade e redução de falhas em sistemas cada vez mais complexos O aumento do volume de código a diversidade de linguagens e a necessidade de entregas rápidas criaram um ambiente propício para o surgimento de ferramentas que oferecem apoio direto ao trabalho do engenheiro de software Kaufman 2022 Dentro do Ciclo de Vida do Desenvolvimento de Software SDLC essas ferramentas passaram a atuar de maneira mais evidente na fase de codificação ainda que seus reflexos sejam percebidos em atividades de teste manutenção e documentação Carvalho Paiva 2025 Diferentemente de abordagens tradicionais de automação os sistemas baseados em modelos de linguagem produzem sugestões a partir de padrões aprendidos sem compreensão semântica plena do problema tratado Kaufman 2022 Nesse contexto o GitHub Copilot tornouse um dos exemplos mais conhecidos de aplicação prática de modelos generativos na Engenharia de Software isso por conta do aumento da utilização desta tecnologia nos ambientes acadêmicos e profissionais Copilot 2023 Diante dos argumentos supracitados a realização de uma análise cuidadosa que vá além do entusiasmo inicial vai de encontro com a temática deste artigo que apresenta uma avaliação experimental do Copilot além de discutir seus efeitos sobre o fluxo de trabalho a qualidade do código e os desafios técnicos e éticos associados ao seu emprego 2 2 FUNDAMENTAÇÃO TEÓRICA O GitHub Copilot é fundamentado em modelos de linguagem baseados na arquitetura Transformer originalmente proposta por Vaswani et al 2017 a qual ressalta que tais modelos são treinados com grandes volumes de dados textuais e códigofonte público permitindo a identificação de regularidades estatísticas em estruturas sintáticas comentários e padrões recorrentes de programação Do ponto de vista do aprendizado de máquina tratase de um modelo treinado majoritariamente por aprendizado não supervisionado com posterior ajuste voltado ao domínio da programação O sistema não executa inferência lógica no sentido clássico Ele estima a sequência mais provável de tokens com base no contexto fornecido o que explica sua capacidade de gerar código coerente e ao mesmo tempo cometer erros conceituais sutis Pressman Maxin 2016 Na Engenharia de Software esse tipo de tecnologia inserese no campo da Inteligência Artificial IA aplicada à assistência de programação uma subárea que vem sendo estudada desde os primeiros sistemas de apoio ao desenvolvimento ressaltandose que a diferença central desta tecnologia para as demais voltase à escala e à fluidez textual das respostas Carvalho Paiva 2025 Tais características alteram de forma significativa a interação entre humano e ferramenta entendendose segundo estudos de Carvalho e Paiva 2025 que tais sistemas reduzem o esforço cognitivo em tarefas massantes mas não substituem o conhecimento técnico necessário para avaliar correção desempenho e segurança 3 ESTUDO EXPERIMENTAL E ATIVIDADE PRÁTICA 31 Delimitação do cenário O experimento proposto adota um escopo simples e controlado adequado ao objetivo acadêmico do trabalho onde considerouse a criação de uma Python responsável por calcular a média aritmética de uma lista de valores numéricos acompanhada de testes unitários Tal função foi realizada em um ambiente real denominado GitHub Copilot onde pôdese sugerir tanto a estrutura da função quanto os testes a partir de comentários escritos em linguagem natural salientandose sobre tal escolha que ela 3 não reduz a validade da análise já que permite a observação clara sobre o papel da ferramenta em tarefas comuns do cotidiano do desenvolvimento de software 32 Código da funcionalidade principal A função apresentada para cálculo da média aritmética foi escolhida por representar um tipo de tarefa recorrente no desenvolvimento de software porém mesmo com tal simplicidade na aparência possui uma sensibilidade à erros quando não tratada de forma cuidadosa Sobre a criação desta convêm salientar que nos ambientes reais as funções semelhantes aparecem em módulos de validação de dados relatórios estatísticos sistemas financeiros e aplicações educacionais o que justifica sua relevância mesmo em um experimento de pequeno porte Pearce et al 2022 A estrutura da função evidenciou decisões técnicas que em contextos assistidos por ferramentas baseadas em modelos de linguagem costumam ser sugeridas automaticamente além disso percebese com a análise do código a seguir que a verificação explícita de lista vazia por exemplo não é apenas uma escolha defensiva Kaufmann 2022 Entendendose segundo Pressman e Maxinn 2016 que é considerada uma prática assertiva e alinhada às recomendações clássicas da Engenharia de Software que indicam a necessidade de tratar estados inválidos de entrada de forma previsível e controlada ainda sim é compreendido que a ausência dessa verificação poderia resultar em erros de execução difíceis de rastrear em sistemas maiores def calcularmediavalores Calcula a média aritmética de uma lista de números Parâmetros valores list Lista de valores numéricos Retorna float Média dos valores informados Exceções ValueError Caso a lista esteja vazia TypeError Caso algum elemento não seja numérico if not valores 4 raise ValueErrorA lista não pode estar vazia soma 0 quantidade 0 for valor in valores if not isinstancevalor int float raise TypeErrorTodos os elementos devem ser numéricos soma valor quantidade 1 return soma quantidade Outro ponto relevante diz respeito à validação do tipo dos elementos da lista A checagem explícita garante que apenas valores numéricos participem do cálculo evitando resultados silenciosamente incorretos onde as ferramentas como o GitHub Copilot tendem a sugerir esse tipo de estrutura quando o comentário da função descreve claramente o comportamento esperado demonstrando sua capacidade de reproduzir padrões consolidados presentes em bases públicas de código Github 2022 A decisão de incluir ou não essas validações permanece humana pois depende do contexto de uso da função contudo sob a perspectiva da IA aplicada à Engenharia de Software esse exemplo evidencia que a ferramenta oferece sugestões baseadas em recorrência estatística porém não possui entendimento sobre impacto funcional ou risco sistêmico Kaufman 2022 A clareza do código final portanto está diretamente relacionada à capacidade do desenvolvedor de formular comentários precisos e de revisar criticamente as sugestões recebidas conforme discutido por Pressman e Maxim 2016 e Ghai et al 2024 33 Análise dos testes unitários e da assistência por IA Os testes unitários apresentados seguem a estrutura clássica do framework unittest que é utilizado nos Python devido à sua simplicidade e integração nativa com a linguagem Desta forma compreendese que a sua escolha não foi aleatória Ocorrendo por conta de representar uma prática consolidada na validação de comportamentos esperados e que é recomendada como base de garantia de qualidade como ressaltam Pearce et al 2026 5 Cada caso de teste cobriu um cenário específico e claramente delimitado Havendo testes voltados ao comportamento esperado em condições normais bem como testes direcionados a situações de erro fator que não apenas melhorou a legibilidade do código como também facilitou a identificação de falhas durante manutenções futuras Em ambientes assistidos por IA como o replit onde ainda as ferramentas como o GitHub Copilot costumam sugerir automaticamente a estrutura desses testes incluindo métodos de verificação como assertEqual assertAlmostEqual e assertRaises import unittest from media import calcularmedia class TestCalcularMediaunittestTestCase def testmediacomvaloresinteirosself valores 10 20 30 selfassertEqualcalcularmediavalores 20 def testmediacomvaloresdecimaisself valores 15 25 30 selfassertAlmostEqualcalcularmediavalores 23333 places4 def testlistavaziaself with selfassertRaisesValueError calcularmedia def testlistacomtipoinvalidoself with selfassertRaisesTypeError calcularmedia10 texto 30 if name main unittestmain No entanto a definição de quais cenários deveriam ser testados não decorreu da ferramenta mas do conhecimento do desenvolvedor sobre o domínio do problema fator que tornou o assertivo o fato de que a IA está presente nos casos complexos aos comuns que são observados nas bases públicas Copilot 2023 Segundo Copilot 2023 isso ocorreu devido ao experimento realizado não possuir critérios próprios para avaliar a suficiência da cobertura de testes assim 6 como a IA o que reforça a ideia de que a ferramenta atua como apoio sintático não como agente responsável pela qualidade lógica do sistema Estudos empíricos demonstram que a geração automática de testes pode reduzir o tempo inicial de escrita mas não elimina a necessidade de revisão e ajuste fino como por exemplo a visão de Pearce et al 2022 Esses autores destacam que os testes sugeridos por assistentes baseados em modelos generativos podem falhar em capturar comportamentos de borda ou requisitos implícitos sobretudo em sistemas mais complexos como na Figura 1 Figura 1 Teste de funcionamento online Fonte Dados da pesquisa 2025 Assim a supervisão humana permanece indispensável para evitar uma falsa sensação de segurança compreendendose desta forma que os testes apresentados neste trabalho ilustram de forma concreta o papel da IA no apoio ao desenvolvimento acelerar tarefas repetitivas mantendo sob responsabilidade do engenheiro de software a avaliação crítica a ampliação da cobertura e a interpretação dos resultados 34 Discussão dos efeitos observados A principal contribuição do uso de uma ferramenta baseada em IA nesse cenário está relacionada à agilidade inicial A escrita da estrutura básica da função e dos testes ocorre de forma mais fluida No entanto a definição dos casos de erro a clareza das mensagens e a decisão sobre quais cenários testar permanecem sob responsabilidade do desenvolvedor Vaswani et al 2017 Esse aspecto evidencia que o valor da ferramenta está no apoio operacional e não na substituição do raciocínio técnico Pois ao ser utilizada sem senso crítico 7 a ferramenta induzirá à uma falsa sensação de correção especialmente em códigos mais complexos Copilot 2023 4 LIMITAÇÕES TÉCNICAS E QUESTÕES ÉTICAS Um dos principais riscos associados ao uso de assistentes baseados em modelos generativos está na possibilidade de sugestões que contenham falhas de segurança ou práticas inadequadas Como o sistema se baseia em padrões observados nos dados de treinamento ele pode reproduzir abordagens obsoletas ou frágeis caso essas sejam frequentes nos repositórios analisados Carvalho Paiva 2025 Há também discussões relevantes sobre direitos autorais e licenciamento pois mesmo que o GitHub afirme que o Copilot não armazena nem recupera código privado o treinamento em repositórios públicos levanta questionamentos sobre a reprodução indireta de trechos protegidos por licenças específicas Esse tema permanece em debate no meio acadêmico e jurídico Github 2022 Copilot 2023 No campo educacional o uso indiscriminado dessas ferramentas pode comprometer o aprendizado conceitual A facilidade na geração de código pode reduzir o esforço reflexivo necessário à formação sólida do engenheiro de software caso não haja orientação adequada Pressman Maxim 2016 5 CONSIDERAÇÕES FINAIS A análise conduzida demonstra que ferramentas baseadas em Inteligência Artificial generativa exercem influência concreta na prática da Engenharia de Software sobretudo na fase de codificação do SDLC Seu uso tende a reduzir o tempo gasto em tarefas que podem se repetir sem eliminar a necessidade de revisão técnica criteriosa Diante disso reconheceuse que o papel do engenheiro de software nesse contexto tornase ainda mais analítico cabendo à este profissional avaliar corrigir e validar as sugestões apresentadas pela ferramenta garantindo qualidade segurança e aderência aos requisitos do sistema além de reconhecer que a tecnologia não substitui a competência humana mas redefine sua forma de atuação 8 REFERÊNCIAS CARVALHO Maurício Moraes Preto PAIVA Sofia Larissa da Costa Práticas de MLOps em softwares reais In Escola Regional de Informática de Goiás ERI GO SBC 2025 p 119128 Disponível em httpssolsbcorgbrindexphperigoarticleview39513 Acesso em 18 jan 2025 COPILOT GitHub Github copilot em linha 2023Disponível em httpssk0blr1cdndigitaloceanspacescomsites95924posts124257 DevelopaMobileAppinOneDayusingGitHubCopilotpdf Acesso em 11 jan 2025 GITHUB GitHub Copilot Documentation Disponível em httpsdocsgithubcomencopilot Acesso em 20 jan 2026 GITHUB Quantifying GitHub Copilots impact on developer productivity GitHub Blog 2022 Disponível em httpsgithubblognewsinsightsresearchresearch quantifyinggithubcopilotsimpactondeveloperproductivityandhappiness Acesso em 20 jan 2026 GHAI AS et al Artificial Intelligence in Software Engineering for Auto Code Generation IEEE Software 2021 Disponível em httpsieeexploreieeeorgdocument10738945 Acesso em 20 jan 2026 KAUFMAN Dora Desmistificando a inteligência artificial Autêntica Editora 2022 PEARCE H et al Asleep at the keyboard Assessing the security of GitHub Copilots code contributions IEEE Symposium on Security and Privacy 2022 Disponível em httpsarxivorgabs210809293 Acesso em 20 jan 2026 PRESSMAN R S MAXIM B R Engenharia de Software uma abordagem profissional 8 ed Porto Alegre AMGH 2016 VASWANI A et al Attention is all you need Advances in Neural Information Processing Systems v 30 2017 Disponível em httpspapersnipsccpaper2017hash3f5ee243547dee91fbd053c1c4a845aa Abstracthtml Acesso em 11 jan 2025
20
Engenharia de Software
FIAP
26
Engenharia de Software
FIAP
12
Engenharia de Software
FIAP
3
Engenharia de Software
FIAP
26
Engenharia de Software
FIAP
26
Engenharia de Software
FIAP
20
Engenharia de Software
FIAP
7
Engenharia de Software
FIAP
3
Engenharia de Software
FIAP
18
Engenharia de Software
FIAP
Texto de pré-visualização
TRABALHO DA DISCIPLINA Título Análise Crítica e Experimental de Ferramentas Baseadas em Inteligência Artificial no Ciclo de Vida do Desenvolvimento de Software SDLC OBJETIVOS Geral Elaborar um relatório técnicocientífico formato de artigo curto que explore analise e demonstre o uso prático de ferramentas baseadas em IA no contexto da Engenharia de Software em uma das etapas do ciclo de vida de desenvolvimento de software análise codificação testes ou manutenção avaliando seu impacto na produtividade e na qualidade do produto final O trabalho deve abordar obrigatoriamente ferramentas ou técnicas que se enquadrem em pelo menos um dos seguintes eixos estudados na disciplina IA generativa e LLMs Uso de assistentes para escrita documentação e refatoração de código ex GitHub Copilot Amazon CodeWhisperer etc Manutenção Preditiva e Qualidade Uso de modelos de ML para predição de defeitos Defect Prediction detecção de code smells ou análise de severidade ex SonarQube etc Automação de testes Uso de IA para automação de casos de teste ou ferramentas de regressão visual ex Applitools Testim etc Sistemas autoadaptativos Investigação de mecanismos de Self Healing e autorreparo em produção Apresentar no relatório compreensão crítica sobre benefícios limitações riscos éticos e desafios técnicos dessas tecnologias Diretrizes para o Relatório Escolha uma ou duas ferramentas reais baseadas em IA voltadas para uma das etapas do ciclo de vida de desenvolvimento de software ex GitHub Copilot Amazon CodeWhisperer SonarQube com IA Testim Applitools Diffblue CodeScene etc Contextualize a ferramenta dentro de pelo menos um dos eixos da disciplina o Geraçãoassistência de código com LLMs o Geração ou otimização de casos de teste o Detecção preditiva de bugs ou code smells o Sistemas de autorreparo ou autoadaptação Analise criticamente o Como a IA é aplicada na ferramenta ex modelo utilizado tipo de dado abordagem técnica o Quais ganhos reais ela traz para a produtividade qualidade ou segurança do software o Quais são suas limitações riscos ex viés geração de código inseguro dependência excessiva ou desafios de adoção o Há implicações éticas ou de propriedade intelectual envolvidas Demonstração prática Inclua uma pequena demonstração prática ex uso do GitHub Copilot para gerar testes análise de relatório do SonarQube em um repositório público comparação de cobertura de teste comsem IA etc A demonstração prática pode ser baseada em um repositório público ex GitHub em um experimento controlado com código simples ou na análise de relatórios gerados por ferramentas gratuitas Não é necessário desenvolvimento de software complexo DESENVOLVIMENTO DO RELATÓRIO O relatório deve ser redigido em formato de artigo científico curto A estrutura deve contemplar cada item ser uma seção do artigo Introdução Contextualização da ferramenta no paradigma IAES IA na Engenharia de Software Explique em qual fase do SDLC ela se aplica Planejamento Teste Manutenção etc Fundamentação Teórica Breve explicação da tecnologia de IA utilizada Descrever sua contextualização no eixo da disciplina ex Ela utiliza Aprendizado Supervisionado Classificação ou Regressão É baseada em modelos Transformers etc Rigor acadêmico na citação de fontes e fundamentação dos conceitos discutidos no curso Análise Prática ou Estudo de Caso Descreva um cenário de uso real ou experimental Discussão sobre como a ferramenta altera a eficiência no ciclo de vida de desenvolvimento de software Descrever as respostas às questões levantadas na análise crítica Desafios e Ética Reflexão sobre as limitações da ferramenta e os desafios éticos de sua implementação em ambientes de produção Discuta os riscos de segurança vulnerabilidades no código gerado e privacidade de dados no uso dessas ferramentas Conclusão e argumentação sobre as tendências futuras da ferramenta escolhida Sintetize como a ferramenta altera o papel do Engenheiro de Software moderno como está transformando ou ainda falha em transformar a prática da Engenharia de Software Referências Cite as fontes utilizadas seguindo a norma ABNT FORMATO E DATA DE ENTREGA O artigo deve conter no máximo 8 páginas Ser entregue arquivo em formato PDF Entrega dia 19022026 ANÁLISE CRÍTICA E EXPERIMENTAL DE FERRAMENTAS BASEADAS EM INTELIGÊNCIA ARTIFICIAL NO CICLO DE VIDA DO DESENVOLVIMENTO DE SOFTWARE SDLC Seu nome Nome do professor 1 INTRODUÇÃO A Inteligência Artificial passou a ocupar um espaço relevante na Engenharia de Software não por modismo tecnológico mas pela pressão constante por produtividade confiabilidade e redução de falhas em sistemas cada vez mais complexos O aumento do volume de código a diversidade de linguagens e a necessidade de entregas rápidas criaram um ambiente propício para o surgimento de ferramentas que oferecem apoio direto ao trabalho do engenheiro de software Kaufman 2022 Dentro do Ciclo de Vida do Desenvolvimento de Software SDLC essas ferramentas passaram a atuar de maneira mais evidente na fase de codificação ainda que seus reflexos sejam percebidos em atividades de teste manutenção e documentação Carvalho Paiva 2025 Diferentemente de abordagens tradicionais de automação os sistemas baseados em modelos de linguagem produzem sugestões a partir de padrões aprendidos sem compreensão semântica plena do problema tratado Kaufman 2022 Nesse contexto o GitHub Copilot tornouse um dos exemplos mais conhecidos de aplicação prática de modelos generativos na Engenharia de Software isso por conta do aumento da utilização desta tecnologia nos ambientes acadêmicos e profissionais Copilot 2023 Diante dos argumentos supracitados a realização de uma análise cuidadosa que vá além do entusiasmo inicial vai de encontro com a temática deste artigo que apresenta uma avaliação experimental do Copilot além de discutir seus efeitos sobre o fluxo de trabalho a qualidade do código e os desafios técnicos e éticos associados ao seu emprego 2 2 FUNDAMENTAÇÃO TEÓRICA O GitHub Copilot é fundamentado em modelos de linguagem baseados na arquitetura Transformer originalmente proposta por Vaswani et al 2017 a qual ressalta que tais modelos são treinados com grandes volumes de dados textuais e códigofonte público permitindo a identificação de regularidades estatísticas em estruturas sintáticas comentários e padrões recorrentes de programação Do ponto de vista do aprendizado de máquina tratase de um modelo treinado majoritariamente por aprendizado não supervisionado com posterior ajuste voltado ao domínio da programação O sistema não executa inferência lógica no sentido clássico Ele estima a sequência mais provável de tokens com base no contexto fornecido o que explica sua capacidade de gerar código coerente e ao mesmo tempo cometer erros conceituais sutis Pressman Maxin 2016 Na Engenharia de Software esse tipo de tecnologia inserese no campo da Inteligência Artificial IA aplicada à assistência de programação uma subárea que vem sendo estudada desde os primeiros sistemas de apoio ao desenvolvimento ressaltandose que a diferença central desta tecnologia para as demais voltase à escala e à fluidez textual das respostas Carvalho Paiva 2025 Tais características alteram de forma significativa a interação entre humano e ferramenta entendendose segundo estudos de Carvalho e Paiva 2025 que tais sistemas reduzem o esforço cognitivo em tarefas massantes mas não substituem o conhecimento técnico necessário para avaliar correção desempenho e segurança 3 ESTUDO EXPERIMENTAL E ATIVIDADE PRÁTICA 31 Delimitação do cenário O experimento proposto adota um escopo simples e controlado adequado ao objetivo acadêmico do trabalho onde considerouse a criação de uma Python responsável por calcular a média aritmética de uma lista de valores numéricos acompanhada de testes unitários Tal função foi realizada em um ambiente real denominado GitHub Copilot onde pôdese sugerir tanto a estrutura da função quanto os testes a partir de comentários escritos em linguagem natural salientandose sobre tal escolha que ela 3 não reduz a validade da análise já que permite a observação clara sobre o papel da ferramenta em tarefas comuns do cotidiano do desenvolvimento de software 32 Código da funcionalidade principal A função apresentada para cálculo da média aritmética foi escolhida por representar um tipo de tarefa recorrente no desenvolvimento de software porém mesmo com tal simplicidade na aparência possui uma sensibilidade à erros quando não tratada de forma cuidadosa Sobre a criação desta convêm salientar que nos ambientes reais as funções semelhantes aparecem em módulos de validação de dados relatórios estatísticos sistemas financeiros e aplicações educacionais o que justifica sua relevância mesmo em um experimento de pequeno porte Pearce et al 2022 A estrutura da função evidenciou decisões técnicas que em contextos assistidos por ferramentas baseadas em modelos de linguagem costumam ser sugeridas automaticamente além disso percebese com a análise do código a seguir que a verificação explícita de lista vazia por exemplo não é apenas uma escolha defensiva Kaufmann 2022 Entendendose segundo Pressman e Maxinn 2016 que é considerada uma prática assertiva e alinhada às recomendações clássicas da Engenharia de Software que indicam a necessidade de tratar estados inválidos de entrada de forma previsível e controlada ainda sim é compreendido que a ausência dessa verificação poderia resultar em erros de execução difíceis de rastrear em sistemas maiores def calcularmediavalores Calcula a média aritmética de uma lista de números Parâmetros valores list Lista de valores numéricos Retorna float Média dos valores informados Exceções ValueError Caso a lista esteja vazia TypeError Caso algum elemento não seja numérico if not valores 4 raise ValueErrorA lista não pode estar vazia soma 0 quantidade 0 for valor in valores if not isinstancevalor int float raise TypeErrorTodos os elementos devem ser numéricos soma valor quantidade 1 return soma quantidade Outro ponto relevante diz respeito à validação do tipo dos elementos da lista A checagem explícita garante que apenas valores numéricos participem do cálculo evitando resultados silenciosamente incorretos onde as ferramentas como o GitHub Copilot tendem a sugerir esse tipo de estrutura quando o comentário da função descreve claramente o comportamento esperado demonstrando sua capacidade de reproduzir padrões consolidados presentes em bases públicas de código Github 2022 A decisão de incluir ou não essas validações permanece humana pois depende do contexto de uso da função contudo sob a perspectiva da IA aplicada à Engenharia de Software esse exemplo evidencia que a ferramenta oferece sugestões baseadas em recorrência estatística porém não possui entendimento sobre impacto funcional ou risco sistêmico Kaufman 2022 A clareza do código final portanto está diretamente relacionada à capacidade do desenvolvedor de formular comentários precisos e de revisar criticamente as sugestões recebidas conforme discutido por Pressman e Maxim 2016 e Ghai et al 2024 33 Análise dos testes unitários e da assistência por IA Os testes unitários apresentados seguem a estrutura clássica do framework unittest que é utilizado nos Python devido à sua simplicidade e integração nativa com a linguagem Desta forma compreendese que a sua escolha não foi aleatória Ocorrendo por conta de representar uma prática consolidada na validação de comportamentos esperados e que é recomendada como base de garantia de qualidade como ressaltam Pearce et al 2026 5 Cada caso de teste cobriu um cenário específico e claramente delimitado Havendo testes voltados ao comportamento esperado em condições normais bem como testes direcionados a situações de erro fator que não apenas melhorou a legibilidade do código como também facilitou a identificação de falhas durante manutenções futuras Em ambientes assistidos por IA como o replit onde ainda as ferramentas como o GitHub Copilot costumam sugerir automaticamente a estrutura desses testes incluindo métodos de verificação como assertEqual assertAlmostEqual e assertRaises import unittest from media import calcularmedia class TestCalcularMediaunittestTestCase def testmediacomvaloresinteirosself valores 10 20 30 selfassertEqualcalcularmediavalores 20 def testmediacomvaloresdecimaisself valores 15 25 30 selfassertAlmostEqualcalcularmediavalores 23333 places4 def testlistavaziaself with selfassertRaisesValueError calcularmedia def testlistacomtipoinvalidoself with selfassertRaisesTypeError calcularmedia10 texto 30 if name main unittestmain No entanto a definição de quais cenários deveriam ser testados não decorreu da ferramenta mas do conhecimento do desenvolvedor sobre o domínio do problema fator que tornou o assertivo o fato de que a IA está presente nos casos complexos aos comuns que são observados nas bases públicas Copilot 2023 Segundo Copilot 2023 isso ocorreu devido ao experimento realizado não possuir critérios próprios para avaliar a suficiência da cobertura de testes assim 6 como a IA o que reforça a ideia de que a ferramenta atua como apoio sintático não como agente responsável pela qualidade lógica do sistema Estudos empíricos demonstram que a geração automática de testes pode reduzir o tempo inicial de escrita mas não elimina a necessidade de revisão e ajuste fino como por exemplo a visão de Pearce et al 2022 Esses autores destacam que os testes sugeridos por assistentes baseados em modelos generativos podem falhar em capturar comportamentos de borda ou requisitos implícitos sobretudo em sistemas mais complexos como na Figura 1 Figura 1 Teste de funcionamento online Fonte Dados da pesquisa 2025 Assim a supervisão humana permanece indispensável para evitar uma falsa sensação de segurança compreendendose desta forma que os testes apresentados neste trabalho ilustram de forma concreta o papel da IA no apoio ao desenvolvimento acelerar tarefas repetitivas mantendo sob responsabilidade do engenheiro de software a avaliação crítica a ampliação da cobertura e a interpretação dos resultados 34 Discussão dos efeitos observados A principal contribuição do uso de uma ferramenta baseada em IA nesse cenário está relacionada à agilidade inicial A escrita da estrutura básica da função e dos testes ocorre de forma mais fluida No entanto a definição dos casos de erro a clareza das mensagens e a decisão sobre quais cenários testar permanecem sob responsabilidade do desenvolvedor Vaswani et al 2017 Esse aspecto evidencia que o valor da ferramenta está no apoio operacional e não na substituição do raciocínio técnico Pois ao ser utilizada sem senso crítico 7 a ferramenta induzirá à uma falsa sensação de correção especialmente em códigos mais complexos Copilot 2023 4 LIMITAÇÕES TÉCNICAS E QUESTÕES ÉTICAS Um dos principais riscos associados ao uso de assistentes baseados em modelos generativos está na possibilidade de sugestões que contenham falhas de segurança ou práticas inadequadas Como o sistema se baseia em padrões observados nos dados de treinamento ele pode reproduzir abordagens obsoletas ou frágeis caso essas sejam frequentes nos repositórios analisados Carvalho Paiva 2025 Há também discussões relevantes sobre direitos autorais e licenciamento pois mesmo que o GitHub afirme que o Copilot não armazena nem recupera código privado o treinamento em repositórios públicos levanta questionamentos sobre a reprodução indireta de trechos protegidos por licenças específicas Esse tema permanece em debate no meio acadêmico e jurídico Github 2022 Copilot 2023 No campo educacional o uso indiscriminado dessas ferramentas pode comprometer o aprendizado conceitual A facilidade na geração de código pode reduzir o esforço reflexivo necessário à formação sólida do engenheiro de software caso não haja orientação adequada Pressman Maxim 2016 5 CONSIDERAÇÕES FINAIS A análise conduzida demonstra que ferramentas baseadas em Inteligência Artificial generativa exercem influência concreta na prática da Engenharia de Software sobretudo na fase de codificação do SDLC Seu uso tende a reduzir o tempo gasto em tarefas que podem se repetir sem eliminar a necessidade de revisão técnica criteriosa Diante disso reconheceuse que o papel do engenheiro de software nesse contexto tornase ainda mais analítico cabendo à este profissional avaliar corrigir e validar as sugestões apresentadas pela ferramenta garantindo qualidade segurança e aderência aos requisitos do sistema além de reconhecer que a tecnologia não substitui a competência humana mas redefine sua forma de atuação 8 REFERÊNCIAS CARVALHO Maurício Moraes Preto PAIVA Sofia Larissa da Costa Práticas de MLOps em softwares reais In Escola Regional de Informática de Goiás ERI GO SBC 2025 p 119128 Disponível em httpssolsbcorgbrindexphperigoarticleview39513 Acesso em 18 jan 2025 COPILOT GitHub Github copilot em linha 2023Disponível em httpssk0blr1cdndigitaloceanspacescomsites95924posts124257 DevelopaMobileAppinOneDayusingGitHubCopilotpdf Acesso em 11 jan 2025 GITHUB GitHub Copilot Documentation Disponível em httpsdocsgithubcomencopilot Acesso em 20 jan 2026 GITHUB Quantifying GitHub Copilots impact on developer productivity GitHub Blog 2022 Disponível em httpsgithubblognewsinsightsresearchresearch quantifyinggithubcopilotsimpactondeveloperproductivityandhappiness Acesso em 20 jan 2026 GHAI AS et al Artificial Intelligence in Software Engineering for Auto Code Generation IEEE Software 2021 Disponível em httpsieeexploreieeeorgdocument10738945 Acesso em 20 jan 2026 KAUFMAN Dora Desmistificando a inteligência artificial Autêntica Editora 2022 PEARCE H et al Asleep at the keyboard Assessing the security of GitHub Copilots code contributions IEEE Symposium on Security and Privacy 2022 Disponível em httpsarxivorgabs210809293 Acesso em 20 jan 2026 PRESSMAN R S MAXIM B R Engenharia de Software uma abordagem profissional 8 ed Porto Alegre AMGH 2016 VASWANI A et al Attention is all you need Advances in Neural Information Processing Systems v 30 2017 Disponível em httpspapersnipsccpaper2017hash3f5ee243547dee91fbd053c1c4a845aa Abstracthtml Acesso em 11 jan 2025