SAT-Based Extraction of Behavioural Models for Java Libraries with Collections
Larisa Safina, Simon Bliudze

TL;DR
This paper presents a novel SAT-based method for extracting understandable finite state machine models of Java library APIs, specifically focusing on collection operations, directly from source code for improved software verification and maintenance.
Contribution
It introduces a new approach that encodes Java collection API semantics into Boolean predicates and uses a SAT solver to derive behavioral models from source code.
Findings
Successfully extracts FSMs from Java collection APIs
Enables easier understanding and updating of behavioral models
Supports integration of models into source code for verification
Abstract
Behavioural models are a valuable tool for software verification, testing, monitoring, publishing etc. However, they are rarely provided by the software developers and have to be extracted either from the source or from the compiled code. In the context of Java programs, a number of approaches exist for building behavioural models. Most of these approaches rely on the analysis of the compiled bytecode. Instead, we are looking to extract behavioural models in the form of Finite State Machines (FSMs) from the Java source code to ensure that the obtained FSMs can be easily understood by the software developers and, if necessary, updated or integrated into the original source code, e.g. in the form of annotations. Modern software systems are huge, rely on external libraries and interact with their environment. Hence, extracting useful behavioural models requires abstraction. In this paper,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Software Engineering Methodologies · Model-Driven Software Engineering Techniques · Software System Performance and Reliability
