Show simple item record

dc.contributor.advisorRibeiro, Leilapt_BR
dc.contributor.authorCravo, Diogo Raphaelpt_BR
dc.date.accessioned2021-08-28T04:39:53Zpt_BR
dc.date.issued2021pt_BR
dc.identifier.urihttp://hdl.handle.net/10183/226284pt_BR
dc.description.abstractSoftware, 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.en
dc.description.abstractSoftware, 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.pt_BR
dc.format.mimetypeapplication/pdfpt_BR
dc.language.isoengpt_BR
dc.rightsOpen Accessen
dc.subjectDesenvolvimento de softwarept_BR
dc.subjectGraph grammaren
dc.subjectGramáticas de grafospt_BR
dc.subjectSoftware integrationen
dc.subjectVerification toolen
dc.titleModule integration using graph grammars (MIGRATE)pt_BR
dc.title.alternativeIntegração de módulos utilizando gramáticas de grafos (MIGRA) pt
dc.typeDissertaçãopt_BR
dc.identifier.nrb001130783pt_BR
dc.degree.grantorUniversidade Federal do Rio Grande do Sulpt_BR
dc.degree.departmentInstituto de Informáticapt_BR
dc.degree.programPrograma de Pós-Graduação em Computaçãopt_BR
dc.degree.localPorto Alegre, BR-RSpt_BR
dc.degree.date2021pt_BR
dc.degree.levelmestradopt_BR


Files in this item

Thumbnail
   

This item is licensed under a Creative Commons License

Show simple item record