arrow
Return

Software model synthesis using satisfiability solvers

delete2012-08-09
delete41
PRE
AI
M
Marijn J. H. Heule
S
Sicco Verwer *
DOI:10.1007/s10664-012-9222-zdelete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
We introduce a novel approach for synthesis of software models based on identifying deterministic finite state automata. Our approach consists of three important contributions. First, we argue that in order to model software, one should focus mainly on observed executions (positive data), and use the randomly generated failures (negative data) only for testing consistency. We present a new greedy heuristic for this purpose, and show how to integrate it in the state-of-the-art evidence-driven state-merging (EDSM) algorithm. Second, we apply the enhanced EDSM algorithm to iteratively reduce the size of the problem. Yet during each iteration, the evidence is divided over states and hence the effectiveness of this algorithm is decreased. We propose-when EDSM becomes too weak-to tackle the reduced identification problem using satisfiability solvers. Third, in case the amount of positive data is small, we solve the identification problem several times by randomizing the greedy heuristic and combine the solutions using a voting scheme. The interaction between these contributions appeared crucial to solve hard software models synthesis benchmarks. Our implementation, called DFASAT, won the StaMinA competition.
Keywords:
Software model synthesis
Model inference
Automaton identification
Learning
Satisfiability
State machines

Journal

Empirical Software Engineering cover
Empirical Software Engineering
IF:
3.6
Papers:
2.0K
Citations:
5.3K

Organization

J
Johannes Kepler University Linz
Scholars:
5.5K
Papers: 4.6K
Citations: 106
R
Radboud University Nijmegen
Scholars:
4.4W
Papers: 3.4W
Citations: 5.4W