Module Integration Using Graph Grammars (MIGRATE)
Resumo
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 a big challenge regardless of common strategies such as testing and versioning. We propose an approach, called Module Integration using Graph Grammars (MIGRATE), to describe/analyze integration points among software modules. We define module nets, a formalism to capture the essential information regarding module integration, whose semantics is defined in terms of graph transformations. This allows us to use the rich theory of graph transformation, specially critical pair analysis, to analyze the coupling among different modules and create warnings in case of possible integration problems. The approach is organized in three phases: (i) transformation of code into module nets (model extraction), (ii) translation of module nets into graph grammars (semantics of integration) and (iii) verification of module integration. We have built a prototype that implements the MIGRATE approach.
Palavras-chave:
Graph grammar, Software integration, Verification tool
Publicado
07/12/2021
Como Citar
CRAVO, Diogo Raphael; RIBEIRO, Leila.
Module Integration Using Graph Grammars (MIGRATE). In: SIMPÓSIO BRASILEIRO DE MÉTODOS FORMAIS (SBMF), 24. , 2021, Campina Grande.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2021
.
p. 87-103.