Modelling and Verifying an Object-Oriented Concurrency Model in GROOVE
This work addresses the need for automated verification in concurrent programming for developers, but it is incremental as it builds on existing SCOOP verification methods by eliminating the requirement for manual annotations.
The authors tackled the problem of verifying SCOOP concurrent programs without requiring code modifications or annotations by developing a fully automatic approach that translates a subset of SCOOP to graph-based models in GROOVE, enabling simulation and verification of properties like deadlock impossibility and absence of postcondition violations through case studies.
SCOOP is a programming model and language that allows concurrent programming at a high level of abstraction. Several approaches to verifying SCOOP programs have been proposed in the past, but none of them operate directly on the source code without modifications or annotations. We propose a fully automatic approach to verifying (a subset of) SCOOP programs by translation to graph-based models. First, we present a graph transformation based semantics for SCOOP. We present an implementation of the model in the state-of-the-art model checker GROOVE, which can be used to simulate programs and verify concurrency and consistency properties, such as the impossibility of deadlocks occurring or the absence of postcondition violations. Second, we present a translation tool that operates on SCOOP program code and generates input for the model. We evaluate our approach by inspecting a number of programs in the form of case studies.