Improving conflict detection in double-pushout graph transformation - Azzi, Guilherme Grochau (2018)
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.