Interface Generation and Compositional Verification in JavaPathfinder

  • Dimitra Giannakopoulou
  • Corina S. Păsăreanu
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5503)


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.


  1. 1.
    Alur, R., Cerny, P., Madhusudan, P., Nam, W.: Synthesis of interface specifications for Java classes. In: Proceedings of POPL 2005, pp. 98–109 (2005)Google Scholar
  2. 2.
    Alur, R., Henzinger, T., Mang, F., Qadeer, S., Rajamani, S., Tasiran, S.: MOCHA: Modularity in Model Checking. In: Vardi, M.Y. (ed.) CAV 1998. LNCS, vol. 1427, pp. 521–525. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  3. 3.
    Ammons, G., Bodik, R., Larus, J.R.: Mining specifications. In: Proceedings of ACM POPL 2002, pp. 4–16 (2002)Google Scholar
  4. 4.
    Angluin, D.: Learning regular sets from queries and counterexamples. Information and Computation 75(2), 87–106 (1987)MathSciNetCrossRefMATHGoogle Scholar
  5. 5.
    Beyer, D., Henzinger, T.A., Singh, V.: Algorithms for Interface Synthesis. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 4–19. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  6. 6.
    Cobleigh, J.M., Giannakopoulou, D., Pasareanu, C.S.: Learning Assumptions for Compositional Verification. In: Garavel, H., Hatcliff, J. (eds.) TACAS 2003. LNCS, vol. 2619, pp. 331–346. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  7. 7.
    Flanagan, C., Freund, S.N., Qadeer, S.: Thread-Modular Verification for Shared-Memory Programs. In: Le Métayer, D. (ed.) ESOP 2002. LNCS, vol. 2305, pp. 262–277. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  8. 8.
    Giannakopoulou, D., Pasareanu, C.S., Barringer, H.: Assumption Generation for Software Component Verification. In: Proceedings of ASE 2002, pp. 3–12. IEEE Computer Society, Los Alamitos (2002)Google Scholar
  9. 9.
    Groce, A., Peled, D., Yannakakis, M.: Adaptive Model Checking. In: Katoen, J.-P., Stevens, P. (eds.) TACAS 2002. LNCS, vol. 2280, p. 357. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  10. 10.
    Henzinger, T.A., Jhala, R., Majumdar, R.: Permissive Interfaces. In: Proceedings of ESEC/SIGSOFT FSE 2005, pp. 31–40 (2005)Google Scholar
  11. 11.
  12. 12.
    Jones, C.B.: Specification and Design of (Parallel) Programs. In: Information Processing 1983: Proceedings of the IFIP 9th World Congress, IFIP, pp. 321–332. North Holland, Amsterdam (1983)Google Scholar
  13. 13.
    Magee, J., Kramer, J.: Concurrency: State Models & Java Programs. John Wiley & Sons, Chichester (1999)MATHGoogle Scholar
  14. 14.
    Margaria, T., Raffelt, H., Steffen, B., Leucker, M.: The LearnLib in FMICS-jETI. In: Proceedings of ICECCS 2007 (2007)Google Scholar
  15. 15.
    Mehlitz, P.: Trust Your Model - Verifying Aerospace System Models with Java Pathfinder. In: IEEE/Aero (2008)Google Scholar
  16. 16.
    Pasareanu, C.S., Giannakopoulou, D., Gheorghiu Bobaru, M., Cobleigh, J.M., Barringer, H.: Learning to Divide-and-Conquer: Applying the L* Algorithm to Automate Assume-Guarantee Reasoning. In: FMSD (January 2008)Google Scholar
  17. 17.
    Pnueli, A.: In Transition from Global to Modular Temporal Reasoning about Programs. In: Logic and Models of Concurrent Systems, vol. 13, pp. 123–144 (1984)Google Scholar
  18. 18.
    Tkachuk, O., Dwyer, M.B.: Adapting side effects analysis for modular program model checking. In: Johansson, T. (ed.) FSE 2003. LNCS, vol. 2887, pp. 188–197. Springer, Heidelberg (2003)Google Scholar
  19. 19.
    Whaley, J., Martin, M.C., Lam, M.S.: Automatic extraction of object-oriented component interfaces. In: Proceedings of ISSTA 2002, pp. 218–228 (2002)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Dimitra Giannakopoulou
    • 1
  • Corina S. Păsăreanu
    • 1
  1. 1.Carnegie Mellon University/NASA Ames Research CenterMoffett FieldUSA

Personalised recommendations