Fundamental Approaches to Software Engineering

Volume 5503 of the series Lecture Notes in Computer Science pp 94-108

Interface Generation and Compositional Verification in JavaPathfinder

  • Dimitra GiannakopoulouAffiliated withCarnegie Mellon University/NASA Ames Research Center
  • , Corina S. PăsăreanuAffiliated withCarnegie Mellon University/NASA Ames Research Center


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.