DEFESA DE DISSERTAÇÃO DE MESTRADO
Aluno: Diogo Raphael Cravo
Orientadora: Profa. Dra. Leila Ribeiro
Título: Module Integration using Graph Grammars (MIGRATE)
Linha de Pesquisa: Engenharia de Software
Esta banca ocorrerá excepcionalmente de forma totalmente remota. Interessados em assistir a defesa poderão acessar a sala virtual através do link: https://meet.google.com/njf-pmhs-cje
– Prof. Dr. Marcel Vinicius Medeiros Oliveira (UFRN)
– Prof. Dr. Lucio Mauro Duarte (UFRGS)
– Prof. Dr. Ingrid Oliveira de Nunes (UFRGS)
Presidente da Banca: Profa. Dra. Leila Ribeiro
Abstract: Software, whether 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 is writing code that weaves together libraries, services and applications. Such fabrics 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 have studied graph grammars to find a set of grammars (verification grammars) that represent how software modules integrate and we have leveraged existing graph grammar analysis, specifically critical pair analysis, to point out possible integration problems in such grammars automatically. Furthermore, we have created a formalism (module nets) to represent how software modules share information and we have 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 developers to create and modify module nets and then have warnings concerning integration problems automatically generated. We have 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 pairs analysis of graph grammars to automatically uncover a few integration bugs. It also serves as pathway for future research exercising other graph grammar analyses to full extent.
Keywords: Graph grammar. software integration. verification tool.