Abstract. We present a novel algorithm for interface generation of software components. Given a component, our algorithm uses learning techniques to compute a permissive interface representing legal usage of the component. Unlike our previous work, this algorithm does not require knowledge about the component's environment. Furthermore, in contrast to other related approaches, our algorithm computes permissive interfaces even in the presence of non-determinism in the component. Our algorithm is implemented in the JavaPathfinder model checking framework for UML statechart components. We have also added support for automated assume-guarantee style compositional verification in JavaPathfinder, using component interfaces. We report on the application of the approach to interface generation for flight-software components. Errata. The interface permissiveness presented here is not guaranteed to produce the most permissive interface, despite the fact that our statespace exploration continues after discovering spurious counterexamples. The reason is that there might be alternative paths that should be permitted but were masked by state-matching. Thanks are due to Chang-Seo Park, with whom we are working on addressing this problem.
An algorithm for interface generation of software components using learning techniques is presented in REF and implemented in the JavaPathfinder model-checking framework.
Interface Generation and Compositional Verification in JavaPathfinder
FASE
Computer Science