Reparo automático de programas usando corretude relativa

Detalhes bibliográficos
Autor(a) principal: Oliveira, Rodrigo Dottori de
Data de Publicação: 2023
Tipo de documento: Trabalho de conclusão de curso
Idioma: por
Título da fonte: Repositório Institucional da UFRJ
Texto Completo: http://hdl.handle.net/11422/19672
Resumo: O reparo automático de programas consiste em identificar e consertar falhas em um código até que o mesmo passe a se adequar a uma especificação fornecida. Tal especificação é geralmente feita através de uma suíte de testes. Neste caso, um código é considerado absolutamente correto se passa em todos os testes. Ferramentas atuais nesse ramo fazem uso de técnicas como a programação genética, que se baseia em princípios da computação evolutiva, para construir programas corretos a partir de incorretos. Tais ferramentas são capazes de realizar consertos em diversos casos, mas têm sua utilidade limitada por se basearem em uma noção muito simples de corretude, onde programas são considerados apenas absolutamente corretos ou absolutamente incorretos, sem se levar em conta programas intermediários. Essa dificuldade aparece frequentemente em casos com múltiplas falhas. O presente trabalho propõe expandir o escopo de algumas das ferramentas existentes através de uma teoria de corretude relativa, na qual é possível determinar quais programas podem ser considerados estritamente mais corretos que outros. O uso dessa teoria permite a criação de um paradigma novo de reparo de programas focado em aprimoramentos graduais. O trabalho também relata estudos de caso que visam verificar que, com esse novo paradigma, há a possibilidade de consertar programas que não eram reparáveis pelos métodos originais.
id UFRJ_89384eeaf5711e8d92c1d130279c014c
oai_identifier_str oai:pantheon.ufrj.br:11422/19672
network_acronym_str UFRJ
network_name_str Repositório Institucional da UFRJ
repository_id_str
spelling Reparo automático de programas usando corretude relativainteligência artificialreparo automático de programascorretude relativacorretude absolutabugs de softwareremoção de falhasCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOO reparo automático de programas consiste em identificar e consertar falhas em um código até que o mesmo passe a se adequar a uma especificação fornecida. Tal especificação é geralmente feita através de uma suíte de testes. Neste caso, um código é considerado absolutamente correto se passa em todos os testes. Ferramentas atuais nesse ramo fazem uso de técnicas como a programação genética, que se baseia em princípios da computação evolutiva, para construir programas corretos a partir de incorretos. Tais ferramentas são capazes de realizar consertos em diversos casos, mas têm sua utilidade limitada por se basearem em uma noção muito simples de corretude, onde programas são considerados apenas absolutamente corretos ou absolutamente incorretos, sem se levar em conta programas intermediários. Essa dificuldade aparece frequentemente em casos com múltiplas falhas. O presente trabalho propõe expandir o escopo de algumas das ferramentas existentes através de uma teoria de corretude relativa, na qual é possível determinar quais programas podem ser considerados estritamente mais corretos que outros. O uso dessa teoria permite a criação de um paradigma novo de reparo de programas focado em aprimoramentos graduais. O trabalho também relata estudos de caso que visam verificar que, com esse novo paradigma, há a possibilidade de consertar programas que não eram reparáveis pelos métodos originais.Universidade Federal do Rio de JaneiroBrasilInstituto de ComputaçãoUFRJSilva, João Carlos Pereira dahttp://lattes.cnpq.br/9413102524215939http://lattes.cnpq.br/8951681486947556Rossetto, Silvanahttp://lattes.cnpq.br/0054098292730720Martins Moreira, Anamariahttp://lattes.cnpq.br/2363575151206774Oliveira, Rodrigo Dottori de2023-02-06T18:05:20Z2023-12-21T03:06:12Z2023-01-12info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesishttp://hdl.handle.net/11422/19672porinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRJinstname:Universidade Federal do Rio de Janeiro (UFRJ)instacron:UFRJ2023-12-21T03:06:12Zoai:pantheon.ufrj.br:11422/19672Repositório InstitucionalPUBhttp://www.pantheon.ufrj.br/oai/requestpantheon@sibi.ufrj.bropendoar:2023-12-21T03:06:12Repositório Institucional da UFRJ - Universidade Federal do Rio de Janeiro (UFRJ)false
dc.title.none.fl_str_mv Reparo automático de programas usando corretude relativa
title Reparo automático de programas usando corretude relativa
spellingShingle Reparo automático de programas usando corretude relativa
Oliveira, Rodrigo Dottori de
inteligência artificial
reparo automático de programas
corretude relativa
corretude absoluta
bugs de software
remoção de falhas
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
title_short Reparo automático de programas usando corretude relativa
title_full Reparo automático de programas usando corretude relativa
title_fullStr Reparo automático de programas usando corretude relativa
title_full_unstemmed Reparo automático de programas usando corretude relativa
title_sort Reparo automático de programas usando corretude relativa
author Oliveira, Rodrigo Dottori de
author_facet Oliveira, Rodrigo Dottori de
author_role author
dc.contributor.none.fl_str_mv Silva, João Carlos Pereira da
http://lattes.cnpq.br/9413102524215939
http://lattes.cnpq.br/8951681486947556
Rossetto, Silvana
http://lattes.cnpq.br/0054098292730720
Martins Moreira, Anamaria
http://lattes.cnpq.br/2363575151206774
dc.contributor.author.fl_str_mv Oliveira, Rodrigo Dottori de
dc.subject.por.fl_str_mv inteligência artificial
reparo automático de programas
corretude relativa
corretude absoluta
bugs de software
remoção de falhas
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
topic inteligência artificial
reparo automático de programas
corretude relativa
corretude absoluta
bugs de software
remoção de falhas
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
description O reparo automático de programas consiste em identificar e consertar falhas em um código até que o mesmo passe a se adequar a uma especificação fornecida. Tal especificação é geralmente feita através de uma suíte de testes. Neste caso, um código é considerado absolutamente correto se passa em todos os testes. Ferramentas atuais nesse ramo fazem uso de técnicas como a programação genética, que se baseia em princípios da computação evolutiva, para construir programas corretos a partir de incorretos. Tais ferramentas são capazes de realizar consertos em diversos casos, mas têm sua utilidade limitada por se basearem em uma noção muito simples de corretude, onde programas são considerados apenas absolutamente corretos ou absolutamente incorretos, sem se levar em conta programas intermediários. Essa dificuldade aparece frequentemente em casos com múltiplas falhas. O presente trabalho propõe expandir o escopo de algumas das ferramentas existentes através de uma teoria de corretude relativa, na qual é possível determinar quais programas podem ser considerados estritamente mais corretos que outros. O uso dessa teoria permite a criação de um paradigma novo de reparo de programas focado em aprimoramentos graduais. O trabalho também relata estudos de caso que visam verificar que, com esse novo paradigma, há a possibilidade de consertar programas que não eram reparáveis pelos métodos originais.
publishDate 2023
dc.date.none.fl_str_mv 2023-02-06T18:05:20Z
2023-12-21T03:06:12Z
2023-01-12
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/11422/19672
url http://hdl.handle.net/11422/19672
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal do Rio de Janeiro
Brasil
Instituto de Computação
UFRJ
publisher.none.fl_str_mv Universidade Federal do Rio de Janeiro
Brasil
Instituto de Computação
UFRJ
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFRJ
instname:Universidade Federal do Rio de Janeiro (UFRJ)
instacron:UFRJ
instname_str Universidade Federal do Rio de Janeiro (UFRJ)
instacron_str UFRJ
institution UFRJ
reponame_str Repositório Institucional da UFRJ
collection Repositório Institucional da UFRJ
repository.name.fl_str_mv Repositório Institucional da UFRJ - Universidade Federal do Rio de Janeiro (UFRJ)
repository.mail.fl_str_mv pantheon@sibi.ufrj.br
_version_ 1815456041142321152