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.
Tutorials
Fri 15 Sep 2023 13:30 - 15:00 at Room PT* - Frama-CWhile ensuring the correctness of an implementation based on a formal functional specification provides the strongest guarantee, it can be prohibitively expensive to achieve. In practice, a combination of formal methods is commonly employed to attain an appropriate level of assurance. This includes static analyses to ensure the absence of runtime errors, deductive verification for functional correctness, and dynamic verification for components that cannot be proven through deductive verification. Frama-C is a source code analysis platform designed for the verification of large-scale programs written in ISO C source code. It offers comprehensive support for the integration of formal methods, offering users a set of plug-ins that facilitate static and dynamic analysis of safety-critical and security-critical software. Furthermore, the collaborative verification capabilities are achieved through the integration of these plug-ins on a shared kernel and their adherence to a standardized specification language known as ACSL (ANSI/ISO C Specification Language). This tutorial is an introduction, including hands-on sessions, to the analysis and verification of C programs using Frama-C. The main plug-ins of Frama-C are presented, as well as their combination in a verification project. We illustrate these plug-ins on several examples taken from Contiki, a lightweight operating system for the Internet of Things.