skip to main content
10.1145/3550355.3552447acmconferencesArticle/Chapter ViewAbstractPublication PagesmodelsConference Proceedingsconference-collections
research-article

Practical multiverse debugging through user-defined reductions: application to UML models

Published:24 October 2022Publication History

ABSTRACT

Multiverse debugging is an extension of classical debugging methods, particularly adapted to non-deterministic systems. Recently, a language-independent formalization was proposed. Moreover, multiverse debugging is particularly beneficial for specification and design languages, such as UML. However, this method suffers from scalability issues during breakpoint lookup. This problem arises due to the exhaustive exploration performed on the potentially infinite state-space of the system.

In this paper, we tackle this problem by introducing Reduced Multiverse Debugging, an extension proposing a way for the user to define reduction policies used during breakpoint lookup. We enrich the formalization of multiverse debugging with a modular breakpoint lookup strategy, which allows the integration of the reduction policy. We validate our approach by implementing a practical UML Statechart debugger in the AnimUML web framework. We show several ways the reduction can be applied, using methods such as predicate abstraction for breakpoint lookup on an infinite state-space, removing irrelevant variables, or creating classes of equivalent values. Moreover, we show the possibility to integrate probabilistic reduction strategies. Relying on hash collisions, these strategies can be iteratively refined to increase precision.

References

  1. Martín Abadi and Leslie Lamport. 1991. The existence of refinement mappings. Theoretical Computer Science 82, 2 (1991), 253--284. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Kelly Androutsopoulos, David Clark, Mark Harman, Jens Krinke, and Laurence Tratt. 2013. State-Based Model Slicing: A Survey. ACM Comput. Surv. 45, 4, Article 53 (aug 2013), 36 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Mojtaba Bagherzadeh, Nicolas Hili, David Seekatz, and Juergen Dingel. 2018. MDebugger: a model-level debugger for UML-RT. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Mojtaba Bagherzadeh, Karim Jahed, Benoit Combemale, and Juergen Dingel. 2019. Live-UMLRT: A Tool for Live Modeling of UML-RT Models. In MODELS 2019 - ACM/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems. IEEE, Munich, Germany, 743--747. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Roberto Baldoni, Emilio Coppa, Daniele Cono D'elia, Camil Demetrescu, and Irene Finocchi. 2018. A Survey of Symbolic Execution Techniques. ACM Comput. Surv. 51, 3, Article 50 (may 2018), 39 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Valentin Besnard. 2020. EMI: An approach to unify analysis and embedded execution with a controllable model interpreter. Ph.D. Dissertation. ENSTA Bretagne.Google ScholarGoogle Scholar
  7. Valentin Besnard, Ciprian Teodorov, Frédéric Jouault, Matthias Brun, and Philippe Dhaussy. 2021. Unified verification and monitoring of executable UML specifications. Software and Systems Modeling 20, 6 (01 12 2021), 1825--1855. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Bob Boothe. 2000. Efficient algorithms for bidirectional debugging. In Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation. 299--310.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Erwan Bousse, Dorian Leroy, Benoit Combemale, Manuel Wimmer, and Benoit Baudry. 2018. Omniscient debugging for executable DSLs. Journal of Systems and Software 137 (2018), 261--288. Google ScholarGoogle ScholarCross RefCross Ref
  10. Edmund M. Clarke, Thomas A. Henzinger, Helmut Veith, and Roderick Bloem. 2018. Handbook of Model Checking (1st ed.). Springer Publishing Company, Incorporated.Google ScholarGoogle Scholar
  11. Michael A. Colón and Tomás E. Uribe. 1998. Generating finite-state abstractions of reactive systems using decision procedures. In Computer Aided Verification, Alan J. Hu and Moshe Y. Vardi (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 293--304.Google ScholarGoogle Scholar
  12. David Darais, Nicholas Labich, Phúc C. Nguyen, and David Van Horn. 2017. Abstracting Definitional Interpreters (Functional Pearl). Proc. ACM Program. Lang. 1, ICFP, Article 12 (aug 2017), 25 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Leonardo de Moura, Soonho Kong, Jeremy Avigad, Floris van Doorn, and Jakob von Raumer. 2015. The Lean Theorem Prover (System Description). In Automated Deduction - CADE-25, Amy P. Felty and Aart Middeldorp (Eds.). Springer International Publishing, Cham, 378--388.Google ScholarGoogle Scholar
  14. A. Georges, M. Christiaens, M. Ronsse, and K. De Bosschere. 2004. JaRec: A Portable Record/Replay Environment for Multi-Threaded Java Applications. Softw. Pract. Exper. 34, 6 (may 2004), 523--547. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Susanne Graf and Hassen Saidi. 1997. Construction of abstract state graphs with PVS. In Computer Aided Verification, Orna Grumberg (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 72--83.Google ScholarGoogle Scholar
  16. Gerard J. Holzmann. 1996. An analysis of bitstate hashing. Springer US, Boston, MA, 301--314. Google ScholarGoogle ScholarCross RefCross Ref
  17. Frédéric Jouault, Valentin Besnard, Théo Le Calvar, Ciprian Teodorov, Matthias Brun, and Jerome Delatour. 2020. Designing, Animating, and Verifying Partial UML Models. In Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (Virtual Event, Canada) (MODELS '20). Association for Computing Machinery, New York, NY, USA, 211--217. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Naoki Kobayashi, Ryosuke Sato, and Hiroshi Unno. 2011. Predicate Abstraction and CEGAR for Higher-Order Model Checking. In Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation (San Jose, California, USA) (PLDI '11). Association for Computing Machinery, New York, NY, USA, 222--233. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Naoki Kobayashi, Ryosuke Sato, and Hiroshi Unno. 2011. Predicate Abstraction and CEGAR for Higher-Order Model Checking. SIGPLAN Not. 46, 6 (jun 2011), 222--233. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Leslie Lamport. 1974. A New Solution of Dijkstra's Concurrent Programming Problem. Commun. ACM 17, 8 (aug 1974), 453--455. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Yoann Laurent, Reda Bendraou, and Marie-Pierre Gervais. 2013. Executing and debugging UML models: an fUML extension. In SAC'13 - The 28th Annual ACM Symposium on Applied Computing. ACM, Coimbra, Portugal, 1095--1102. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Bil Lewis. 2003. Debugging Backwards in Time. Computing Research Repository cs.SE/0310016 (10 2003).Google ScholarGoogle Scholar
  23. Carmen Torres Lopez, Robbert Gurdeep Singh, Stefan Marr, Elisa Gonzalez Boix, and Christophe Scholliers. 2019. Multiverse Debugging: Non-deterministic Debugging for Non-deterministic Programs. In 33rd European Conference on Object-Oriented Programming. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik. https://kar.kent.ac.uk/74328/Google ScholarGoogle Scholar
  24. Simon Van Mierlo, Yentl Van Tendeloo, and Hans Vangheluwe. 2017. Debugging Parallel DEVS. SIMULATION 93 (2017), 285 -- 306.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Oleg Y. Nickolayev, Philip C. Roth, and Daniel A. Reed. 1997. Real-Time Statistical Clustering for Event Trace Reduction. The International Journal of Supercomputer Applications and High Performance Computing 11, 2 (1997), 144--159. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. OMG. 2017. Unified Modeling Language. https://www.omg.org/spec/UML/2.5.1/PDFGoogle ScholarGoogle Scholar
  27. Corina S. Păsăreanu, Radek Pelánek, and Willem Visser. 2005. Concrete Model Checking with Abstract Matching and Refinement. In Computer Aided Verification, Kousha Etessami and Sriram K. Rajamani (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 52--66.Google ScholarGoogle Scholar
  28. Gary L. Peterson. 1981. Myths About the Mutual Exclusion Problem. Inf. Process. Lett. 12 (1981), 115--116.Google ScholarGoogle ScholarCross RefCross Ref
  29. Guillaume Pothier, Éric Tanter, and José Piquer. 2007. Scalable omniscient debugging. Sigplan Notices - SIGPLAN 42, 535--552. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Tillmann Rendel, Klaus Ostermann, and Christian Hofer. 2009. Typed Self-Representation. In Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation (Dublin, Ireland) (PLDI '09). Association for Computing Machinery, New York, NY, USA, 293--303. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Grigore Roşu and Traian Florin Şerbănută. 2010. An overview of the K semantic framework. The Journal of Logic and Algebraic Programming 79, 6 (2010), 397--434. Membrane computing and programming. Google ScholarGoogle ScholarCross RefCross Ref
  32. M. Saxena. 2018. A Language Independent Debugger Semantics Based Debugging in K. Master's thesis. University of Illinois at Urbana-Champaign. https://www.ideals.illinois.edu/handle/2142/101590Google ScholarGoogle Scholar
  33. Ulrich Stern and David L. Dill. 1995. Improved probabilistic verification by hash compaction. In Correct Hardware Design and Verification Methods, Paolo E. Camurati and Hans Eveking (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 206--224.Google ScholarGoogle Scholar
  34. William Visser, SeungJoon Park, and John Penix. 2000. Using Predicate Abstraction to Reduce Object-Oriented Programs for Model Checking. In Proceedings of the Third Workshop on Formal Methods in Software Practice (Portland, Oregon, USA) (FMSP '00). Association for Computing Machinery, New York, NY, USA, 3--182. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. P. Wadler and S. Blott. 1989. How to Make Ad-Hoc Polymorphism Less Ad Hoc. In Proceedings of the 16th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Austin, Texas, USA) (POPL '89). Association for Computing Machinery, New York, NY, USA, 60--76. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Practical multiverse debugging through user-defined reductions: application to UML models

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      MODELS '22: Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems
      October 2022
      412 pages
      ISBN:9781450394666
      DOI:10.1145/3550355

      Copyright © 2022 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 24 October 2022

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      MODELS '22 Paper Acceptance Rate35of125submissions,28%Overall Acceptance Rate118of382submissions,31%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader