Learning regular sets from queries and counterexamples
Information and Computation
Inference of finite automata using homing sequences
Information and Computation
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Counterexample-Guided Abstraction Refinement
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
Synthesis of interface specifications for Java classes
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Automated Assume-Guarantee Reasoning by Abstraction Refinement
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Environment Assumptions for Synthesis
CONCUR '08 Proceedings of the 19th international conference on Concurrency Theory
Interface Generation and Compositional Verification in JavaPathfinder
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Compositional Control Synthesis for Partially Observable Systems
CONCUR 2009 Proceedings of the 20th International Conference on Concurrency Theory
Automatic inference of abstract type behavior
Proceedings of the IEEE/ACM international conference on Automated software engineering
Supporting human-intensive systems
Proceedings of the FSE/SDP workshop on Future of software engineering research
Process-based derivation of requirements for medical devices
Proceedings of the 1st ACM International Health Informatics Symposium
Learning component interfaces with may and must abstractions
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Hi-index | 0.00 |
A temporal interface for a software component is a finite automaton that specifies the legal sequences of calls to functions that are provided by the component. We compare and evaluate three different algorithms for automatically extracting temporal interfaces from program code: (1) a game algorithm that computes the interface as a representation of the most general environment strategy to avoid a safety violation; (2) a learning algorithm that repeatedly queries the program to construct the minimal interface automaton; and (3) a CEGAR algorithm that iteratively refines an abstract interface hypothesis by adding relevant program variables. For comparison purposes, we present and implement the three algorithms in a unifying formal setting. While the three algorithms compute the same output and have similar worst-case complexities, their actual running times may differ considerably for a given input program. On the theoretical side, we provide for each of the three algorithms a family of input programs on which that algorithm outperforms the two alternatives. On the practical side, we evaluate the three algorithms experimentally on a variety of Java libraries.