Graph-based models are widely used in software and system engineering. Consequently, several testing, benchmarking, and optimization problem relies on the systematic construction of consistent graph models. However, automatically generating a diverse set of consistent graph models for industrial domains is challenging. First, engineers must specify the graph generation problem with mathematical precision, requiring specialized tools. Second, graph generation is a computationally complex task requiring specialized logic solvers.
The Refinery framework is a novel open-source software tool automatically synthesizes consistent and diverse domain-specific graph models. The framework offers an expressive high-level language using partial models to succinctly formulate a wide range of graph generation challenges. Application scenarios include system-level architecture synthesis, test generation for modeling tools or traffic scenario synthesis for autonomous vehicles. The framework uses a scalable graph solver algorithm that uses logic reasoning rules to efficiently synthesize a diverse set of solutions to graph generation problems by combining partial model refinement with logic reasoning.
In our tutorial, we present our graph generation tool to the software engineering community and show how to automate various problems with automated graph generation.