Reverse Engineering of Middleware for Verification of Robot Control Architectures

  • Ali Khalili
  • Lorenzo Natale
  • Armando Tacchella
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8810)


We consider the problem of automating the verification of distributed control software relying on publish-subscribe middleware. In this scenario, the main challenge is that software correctness depends intrinsically on correct usage of middleware components, but structured models of such components might not be available for analysis, e.g., because they are too large and complex to be described precisely in a cost-effective way. To overcome this problem, we propose to identify abstract models of middleware as finite-state automata, and then to perform verification on the combined middleware and control software models. Both steps are carried out in a computer-assisted way using state-of-the-art techniques in automata-based identification and verification. Our main contribution is to show that the combination of identification and verification is feasible and useful when considering typical issues that arise in the implementation of distributed control software.


Model Check Linear Temporal Logic Reachability Graph Reverse Engineer Reading Mode 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aarts, F., Vaandrager, F.: Learning I/O automata. In: Gastin, P., Laroussinie, F. (eds.) CONCUR 2010. LNCS, vol. 6269, pp. 71–85. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  2. 2.
    Angluin, D.: Learning regular sets from queries and counterexamples. Information and Computation 75(2), 87–106 (1987)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Baier, C., Katoen, J.: Principles of model checking. MIT Press, Cambridge (2008)zbMATHGoogle Scholar
  4. 4.
    Clarke, E., Emerson, E., Sistla, A.: Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Transactions on Programming Languages and Systems (TOPLAS) 8(2), 263 (1986)CrossRefGoogle Scholar
  5. 5.
    De Alfaro, L., Henzinger, T.: Interface automata. ACM SIGSOFT Software Engineering Notes 26(5), 109–120 (2001)CrossRefGoogle Scholar
  6. 6.
    Fitzpatrick, P., Metta, G., Natale, L.: Towards long-lived robot genes. Robotics and Autonomous Systems 56(1), 29–45 (2008)CrossRefGoogle Scholar
  7. 7.
    Groce, A., Peled, D., Yannakakis, M.: Adaptive model checking. Logic Journal of IGPL 14(5), 729–744 (2006)MathSciNetCrossRefzbMATHGoogle Scholar
  8. 8.
    Holzmann, G.J.: The SPIN model checker: Primer and reference manual, vol. 1003. Addison-Wesley, Reading (2004)Google Scholar
  9. 9.
    Kearns, M., Vazirani, U.: An introduction to computational learning theory. MIT Press (1994)Google Scholar
  10. 10.
    Khalili, A., Tacchella, A.: Learning nondeterministic mealy machines. In: Proceedings of the 12th International Conference on Grammatical Inference (ICGI) ( to appear, 2014)Google Scholar
  11. 11.
    Lynch, N.A., Tuttle, M.R.: Hierarchical correctness proofs for distributed algorithms. In: Proceedings of the Sixth Annual ACM Symposium on Principles of Distributed Computing, pp. 137–151. ACM (1987)Google Scholar
  12. 12.
    Metta, G., Natale, L., Nori, F., Sandini, G., Vernon, D., Fadiga, L., von Hofsten, C., Rosander, K., Lopes, M., Santos-Victor, J., et al.: The iCub Humanoid Robot: An Open-Systems Platform for Research in Cognitive Development. Neural Networks: The Official Journal of the International Neural Network Society (2010)Google Scholar
  13. 13.
    Pratt, G., Manzo, J.: The DARPA Robotics Challenge [Competitions]. IEEE Robotics & Automation Magazine 20(2), 10–12 (2013)CrossRefGoogle Scholar
  14. 14.
    Queille, J., Sifakis, J.: Specification and verification of concurrent systems in CESAR. In: Dezani-Ciancaglini, M., Montanari, U. (eds.) Programming 1982. LNCS, vol. 137, pp. 337–351. Springer, Heidelberg (1982)CrossRefGoogle Scholar
  15. 15.
    Quigley, M., Conley, K., Gerkey, B., Faust, J., Foote, T., Leibs, J., Wheeler, R., Ng, A.Y.: ROS: an open-source Robot Operating System. In: ICRA Workshop on Open Source Software, vol. 3 (2009)Google Scholar
  16. 16.
    Shahbaz, M.: Reverse Engineering Enhanced State Models of Black Box Software Components to Support Integration Testing. Ph.D. thesis, Institut Polytechnique de Grenoble, Grenoble, France (2008)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Ali Khalili
    • 1
    • 2
  • Lorenzo Natale
    • 2
  • Armando Tacchella
    • 1
  1. 1.DIBRISUniversità degli Studi di GenovaGenovaItaly
  2. 2.iCub FacilityIstituto Italiano di Tecnologia (IIT)GenovaItaly

Personalised recommendations