SAT-Based Extraction of Behavioural Models ...
Document type :
Pré-publication ou Document de travail
Title :
SAT-Based Extraction of Behavioural Models for Java Libraries with Collections
Author(s) :
Safina, Larisa [Auteur]
Self-adaptation for distributed services and large software systems [SPIRALS]
Bliudze, Simon [Auteur]
Self-adaptation for distributed services and large software systems [SPIRALS]
Self-adaptation for distributed services and large software systems [SPIRALS]
Bliudze, Simon [Auteur]

Self-adaptation for distributed services and large software systems [SPIRALS]
Publication date :
2022
English keyword(s) :
API
breaking changes
behavioral models
FSM
Java
Software Engineering (cs.SE)
Formal Languages and Automata Theory (cs.FL)
FOS: Computer and information sciences
breaking changes
behavioral models
FSM
Java
Software Engineering (cs.SE)
Formal Languages and Automata Theory (cs.FL)
FOS: Computer and information sciences
HAL domain(s) :
Informatique [cs]/Génie logiciel [cs.SE]
Informatique [cs]/Modélisation et simulation
Informatique [cs]/Langage de programmation [cs.PL]
Informatique [cs]/Modélisation et simulation
Informatique [cs]/Langage de programmation [cs.PL]
English abstract : [en]
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 ...
Show more >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, we present an initial approach to this problem by focusing on the extraction of FSMs modelling library APIs. We focus on the analysis of Java code involving the use of collections. To this end, we encode the operational semantics of collection operations using patterns of Boolean predicates. These patterns are instantiated based on the analysis of the source code of API implementation methods to form an encoding of the possible FSM transitions. A SAT solver is then used to determine the enabledness conditions (guards) of these transitions.Show less >
Show more >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, we present an initial approach to this problem by focusing on the extraction of FSMs modelling library APIs. We focus on the analysis of Java code involving the use of collections. To this end, we encode the operational semantics of collection operations using patterns of Boolean predicates. These patterns are instantiated based on the analysis of the source code of API implementation methods to form an encoding of the possible FSM transitions. A SAT solver is then used to determine the enabledness conditions (guards) of these transitions.Show less >
Language :
Anglais
Collections :
Source :
Files
- https://hal.inria.fr/hal-03720403/document
- Open access
- Access the document
- http://arxiv.org/pdf/2205.15270
- Open access
- Access the document
- https://hal.inria.fr/hal-03720403/document
- Open access
- Access the document
- https://hal.inria.fr/hal-03720403/document
- Open access
- Access the document
- document
- Open access
- Access the document
- arXiv-version.pdf
- Open access
- Access the document
- 2205.15270
- Open access
- Access the document
- document
- Open access
- Access the document
- arXiv-version.pdf
- Open access
- Access the document