Improving conflict detection in double-pushout graph transformation

Transformação de grafos é uma teoria apropriada para a especificação, análise e desenvolvimento de software, particularmente em abordagens dirigidas a modelos. Nesse contexto, grafos ou estruturas semelhantes representam os estados de um sistema, enquanto as transições são determinadas por regras de...

Descripción completa

Detalles Bibliográficos
Autor: Azzi, Guilherme Grochau
Tipo de recurso: tesis de maestría
Estado:Versión publicada
Fecha de publicación:2018
País:Brasil
Institución:Universidade Federal do Rio Grande do Sul (UFRGS)
Repositorio:Biblioteca Digital de Teses e Dissertações da UFRGS
Idioma:inglés
OAI Identifier:oai:www.lume.ufrgs.br:10183/188257
Acceso en línea:http://hdl.handle.net/10183/188257
Access Level:acceso abierto
Palabra clave:Teoria : Categorias
Grafos : Arvores : Algoritmos : Algebra booleana : Logica de computadores : Modelagem aritmetica
Graph transformation
Subobject
Adhesive category
Category theory
Initial conflict
Critical pair
Parallel independence
Static analysis
Double-pushout
Descripción
Sumario:Transformação de grafos é uma teoria apropriada para a especificação, análise e desenvolvimento de software, particularmente em abordagens dirigidas a modelos. Nesse contexto, grafos ou estruturas semelhantes representam os estados de um sistema, enquanto as transições são determinadas por regras de reescrita. Assim, uma representação visual e intuitiva é combinada a uma vasta teoria, permitindo o uso de várias técnicas de verificação. Como o comportamento desses modelos baseados em regras emerge de suas interações, são necessárias técnicas para entendê-las. Nesse trabalho, focamos nos conflitos entre regras: situações em que a aplicação de uma regra impede a aplicação de outra. A análise estática denominada detecção de conflitos busca enumerar um conjunto finito dessas situações que seja completo, ou seja, tal que qualquer outro conflito possa ser expresso em termos de um dos conflitos detectados. Em particular, a enumeração de pares críticos foi aplicada com sucesso em vários contextos. Ainda assim, a ela encontra problemas relacionados à escalabilidade. Isso envolve o tempo de execução, mas fundamentalmente advém do grande número de conflitos potenciais redundantes que é identificado. Neste trabalho, damos um passo importante em direção a uma técnica mais eficiente para detecção de conflitos. Para isso, desenvolvemos uma teoria que descreve a causa principal dos conflitos na forma de essências de conflito. Usando teoria de reticulados, pudemos detectar mais fontes de redundância, identificando essências irredutíveis como um subconjunto apropriado e menos redundante. Também mostramos que essas são intimamente relacionadas aos conflitos iniciais, um subconjunto dos pares críticos proposto recentemente. Assim, a aplicação de conflitos iniciais se torna possível em novos contextos. Além disso, apresentamos algoritmos para enumerar essências de conflito, conflitos iniciais e essências irredutíveis. Por fim, apresentamos evidência empírica de que conflitos iniciais e essências irredutíveis reduzem significativamente o número de conflitos reportados, em relação aos pares críticos, sem perda de informação. Todos os resultados teóricos deste trabalho são válidos para categorias de funtores com codomínio na categoria de conjuntos, uma generalização de grafos e de graph structures. Também identificamos condições suficientes para que os principais resultados sejam válidos em outras categorias adesivas.