Module integration using graph grammars (MIGRATE)

Detalhes bibliográficos
Autor(a) principal: Cravo, Diogo Raphael
Data de Publicação: 2021
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Biblioteca Digital de Teses e Dissertações da UFRGS
Texto Completo: http://hdl.handle.net/10183/226284
Resumo: Software, seja desktop, mobile ou web, está se tornando mais e mais conectado. Desenvolvimento de software também está se tornando mais conectado com ecossistemas feitos de redes de milhões de pacotes. Construir software hoje corresponde a escrever código que integra bibliotecas, serviços e aplicações. Essas redes estão sob mudanças constantes devido a necessidades internas (e.g. novas funcionalidades) ou demandas externas (e.g. atualização de dependências). Evitar defeitos de integração neste cenário pode ser um grande desafio, apesar de estratégias como teste e versionamento. Nós estudamos gramáticas de grafos para encontrar um conjunto de gramáticas (gramáticas de verifica ção) que representam como módulos de software se integram e aproveitamos análises de gramáticas de grafos existentes, especificamente análise de pares críticos, para apontar automaticamente possíveis problemas de integração nessas gramáticas. Além disso, nós criamos um formalismo (redes de módulos) que representa de que forma módulos compartilham informação e aproveitamos gramáticas de grafos, pelo fato de que pode se provar seu comportamento funcional (confluência), para traduzir instâncias de redes de módulos para gramáticas de verificação, possibilitando que desenvolvedores criem e modifiquem redes de módulos e então gerem automaticamente avisos que dizem respeito a problemas de integração. Nós resumimos este processo em um framework que cha mamos de integração de módulos utilizando gramáticas de grafos (MIGRATE), o qual ilustramos neste trabalho através de um estudo de caso com um motor de busca por artigos de pesquisa. Nossa abordagem demonstra como aproveitar análise de pares críticos de gramáticas de grafos para descobrir automaticamente alguns defeitos de integração. Ela também serve como caminho para pesquisas futuras exercitando todo o potencial de análises de gramáticas de grafos.
id URGS_8b1fb17ce6fcf3870e759ad06a59bea8
oai_identifier_str oai:www.lume.ufrgs.br:10183/226284
network_acronym_str URGS
network_name_str Biblioteca Digital de Teses e Dissertações da UFRGS
repository_id_str 1853
spelling Cravo, Diogo RaphaelRibeiro, Leila2021-08-28T04:39:53Z2021http://hdl.handle.net/10183/226284001130783Software, seja desktop, mobile ou web, está se tornando mais e mais conectado. Desenvolvimento de software também está se tornando mais conectado com ecossistemas feitos de redes de milhões de pacotes. Construir software hoje corresponde a escrever código que integra bibliotecas, serviços e aplicações. Essas redes estão sob mudanças constantes devido a necessidades internas (e.g. novas funcionalidades) ou demandas externas (e.g. atualização de dependências). Evitar defeitos de integração neste cenário pode ser um grande desafio, apesar de estratégias como teste e versionamento. Nós estudamos gramáticas de grafos para encontrar um conjunto de gramáticas (gramáticas de verifica ção) que representam como módulos de software se integram e aproveitamos análises de gramáticas de grafos existentes, especificamente análise de pares críticos, para apontar automaticamente possíveis problemas de integração nessas gramáticas. Além disso, nós criamos um formalismo (redes de módulos) que representa de que forma módulos compartilham informação e aproveitamos gramáticas de grafos, pelo fato de que pode se provar seu comportamento funcional (confluência), para traduzir instâncias de redes de módulos para gramáticas de verificação, possibilitando que desenvolvedores criem e modifiquem redes de módulos e então gerem automaticamente avisos que dizem respeito a problemas de integração. Nós resumimos este processo em um framework que cha mamos de integração de módulos utilizando gramáticas de grafos (MIGRATE), o qual ilustramos neste trabalho através de um estudo de caso com um motor de busca por artigos de pesquisa. Nossa abordagem demonstra como aproveitar análise de pares críticos de gramáticas de grafos para descobrir automaticamente alguns defeitos de integração. Ela também serve como caminho para pesquisas futuras exercitando todo o potencial de análises de gramáticas de grafos.Software, be it desktop, mobile or web, is becoming more and more connected. Software development is also becoming more connected with ecosystems comprised of networks of millions of packages. Engineering software today involves writing code that weaves together libraries, services and applications. Such processes are under constant changes due to both internal requests (e.g. new features) or external demands (e.g. dependency updates). Avoiding integration bugs in this scenario can be quite a challenge regardless of common strategies such as testing and versioning. We studied graph grammars to find a set of grammars (verification grammars) that represent how software modules integrate and leveraged existing graph grammar analysis, specifically critical pair analysis, to point out possible integration problems in such grammars automatically. Furthermore, we cre ated a formalism (module nets) to represent how software modules share information and leveraged graph grammars, by the fact that they can be proven to have functional behavior (confluence), to translate instances of module nets to verification grammars, enabling de velopers to create and modify module nets and then have warnings concerning integration problems automatically generated. We summarized this process in a framework we call module integration using graph grammars (MIGRATE), which we illustrate in this work through a case study with a fictitious search engine for research articles. Our approach demonstrates how to leverage critical pair analysis of graph grammars to automatically uncover a few integration bugs. It also serves as a pathway for future research exercising other graph grammar analyses to full extent.application/pdfengDesenvolvimento de softwareGramáticas de grafosGraph grammarSoftware integrationVerification toolModule integration using graph grammars (MIGRATE)Integração de módulos utilizando gramáticas de grafos (MIGRA) info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPrograma de Pós-Graduação em ComputaçãoPorto Alegre, BR-RS2021mestradoinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSTEXT001130783.pdf.txt001130783.pdf.txtExtracted Texttext/plain196164http://www.lume.ufrgs.br/bitstream/10183/226284/2/001130783.pdf.txtd09cd8a8bcadeccadbd3939070e10bb5MD52ORIGINAL001130783.pdfTexto completo (inglês)application/pdf10403149http://www.lume.ufrgs.br/bitstream/10183/226284/1/001130783.pdf7cb5de0ecdbf482866246f32b97b9045MD5110183/2262842021-09-19 04:35:50.926604oai:www.lume.ufrgs.br:10183/226284Biblioteca Digital de Teses e Dissertaçõeshttps://lume.ufrgs.br/handle/10183/2PUBhttps://lume.ufrgs.br/oai/requestlume@ufrgs.br||lume@ufrgs.bropendoar:18532021-09-19T07:35:50Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv Module integration using graph grammars (MIGRATE)
dc.title.alternative.pt.fl_str_mv Integração de módulos utilizando gramáticas de grafos (MIGRA)
title Module integration using graph grammars (MIGRATE)
spellingShingle Module integration using graph grammars (MIGRATE)
Cravo, Diogo Raphael
Desenvolvimento de software
Gramáticas de grafos
Graph grammar
Software integration
Verification tool
title_short Module integration using graph grammars (MIGRATE)
title_full Module integration using graph grammars (MIGRATE)
title_fullStr Module integration using graph grammars (MIGRATE)
title_full_unstemmed Module integration using graph grammars (MIGRATE)
title_sort Module integration using graph grammars (MIGRATE)
author Cravo, Diogo Raphael
author_facet Cravo, Diogo Raphael
author_role author
dc.contributor.author.fl_str_mv Cravo, Diogo Raphael
dc.contributor.advisor1.fl_str_mv Ribeiro, Leila
contributor_str_mv Ribeiro, Leila
dc.subject.por.fl_str_mv Desenvolvimento de software
Gramáticas de grafos
topic Desenvolvimento de software
Gramáticas de grafos
Graph grammar
Software integration
Verification tool
dc.subject.eng.fl_str_mv Graph grammar
Software integration
Verification tool
description Software, seja desktop, mobile ou web, está se tornando mais e mais conectado. Desenvolvimento de software também está se tornando mais conectado com ecossistemas feitos de redes de milhões de pacotes. Construir software hoje corresponde a escrever código que integra bibliotecas, serviços e aplicações. Essas redes estão sob mudanças constantes devido a necessidades internas (e.g. novas funcionalidades) ou demandas externas (e.g. atualização de dependências). Evitar defeitos de integração neste cenário pode ser um grande desafio, apesar de estratégias como teste e versionamento. Nós estudamos gramáticas de grafos para encontrar um conjunto de gramáticas (gramáticas de verifica ção) que representam como módulos de software se integram e aproveitamos análises de gramáticas de grafos existentes, especificamente análise de pares críticos, para apontar automaticamente possíveis problemas de integração nessas gramáticas. Além disso, nós criamos um formalismo (redes de módulos) que representa de que forma módulos compartilham informação e aproveitamos gramáticas de grafos, pelo fato de que pode se provar seu comportamento funcional (confluência), para traduzir instâncias de redes de módulos para gramáticas de verificação, possibilitando que desenvolvedores criem e modifiquem redes de módulos e então gerem automaticamente avisos que dizem respeito a problemas de integração. Nós resumimos este processo em um framework que cha mamos de integração de módulos utilizando gramáticas de grafos (MIGRATE), o qual ilustramos neste trabalho através de um estudo de caso com um motor de busca por artigos de pesquisa. Nossa abordagem demonstra como aproveitar análise de pares críticos de gramáticas de grafos para descobrir automaticamente alguns defeitos de integração. Ela também serve como caminho para pesquisas futuras exercitando todo o potencial de análises de gramáticas de grafos.
publishDate 2021
dc.date.accessioned.fl_str_mv 2021-08-28T04:39:53Z
dc.date.issued.fl_str_mv 2021
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10183/226284
dc.identifier.nrb.pt_BR.fl_str_mv 001130783
url http://hdl.handle.net/10183/226284
identifier_str_mv 001130783
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações da UFRGS
instname:Universidade Federal do Rio Grande do Sul (UFRGS)
instacron:UFRGS
instname_str Universidade Federal do Rio Grande do Sul (UFRGS)
instacron_str UFRGS
institution UFRGS
reponame_str Biblioteca Digital de Teses e Dissertações da UFRGS
collection Biblioteca Digital de Teses e Dissertações da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/226284/2/001130783.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/226284/1/001130783.pdf
bitstream.checksum.fl_str_mv d09cd8a8bcadeccadbd3939070e10bb5
7cb5de0ecdbf482866246f32b97b9045
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv lume@ufrgs.br||lume@ufrgs.br
_version_ 1810085562131939328