Techniques and Challenges for Trace Processing from a Model-Checking Perspective

Despite the high-level of automation offered by model-checking techniques for proving that a system satisfies its specification, if one property is violated the designer is left with a counterexample trace to understand. In this paper, we overview ten families of techniques used to diagnose a system relying on traces. However, whereas these techniques are highly effective and are largely used, they are either not yet available in the context of model-checking or they are not adapted to the particularities of this verification technique. To address this, we have identified three very challenging problems hindering the concurrent systems diagnosis process. Through this analysis we have defined a roadmap for future research directions in our team.

[1]  Ed F. Deprettere,et al.  A trace transformation technique for communication refinement , 2001, CODES '01.

[2]  Peter Lee,et al.  Trace-based program analysis , 1996, POPL '96.

[3]  LamportLeslie Time, clocks, and the ordering of events in a distributed system , 1978 .

[4]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[5]  Kavita Ravi,et al.  Fate and free will in error traces , 2004, International Journal on Software Tools for Technology Transfer.

[6]  Ambuj K. Singh,et al.  Query-based debugging of object-oriented programs , 1997, OOPSLA '97.

[7]  Wei Fan,et al.  Mining big data: current status, and forecast to the future , 2013, SKDD.

[8]  George S. Avrunin,et al.  Patterns in property specifications for finite-state verification , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[9]  Jeff Z. Pan,et al.  Diagnosis of Software Models with Multiple Levels of Abstraction Using Ontological Metamodeling , 2011, 2011 IEEE 35th Annual Computer Software and Applications Conference.

[10]  Doron A. Peled,et al.  A Combined Testing and Verification Approach for Software Reliability , 2001, FME.

[11]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.

[12]  H. Cleve,et al.  Locating causes of program failures , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[13]  Grigore Rosu,et al.  Rewriting-Based Techniques for Runtime Verification , 2005, Automated Software Engineering.

[14]  Frédéric Boniol,et al.  Improving Model Checking with Context Modelling , 2012, Adv. Softw. Eng..

[15]  Éric Tanter,et al.  Processing , 1988 .

[16]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[17]  Benjamin Livshits,et al.  Finding application errors and security flaws using PQL: a program query language , 2005, OOPSLA '05.

[18]  Alexander Aiken,et al.  Relational queries over program traces , 2005, OOPSLA '05.

[19]  Abdelwahab Hamou-Lhadj,et al.  A survey of trace exploration tools and techniques , 2004, CASCON.

[20]  Mayur Naik,et al.  From symptom to cause: localizing errors in counterexample traces , 2003, POPL '03.

[21]  George S. Avrunin,et al.  PROPEL: an approach supporting property elucidation , 2002, ICSE '02.

[22]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[23]  Dragan Bosnacki,et al.  Survey on Directed Model Checking , 2009, MoChArt.

[24]  Alexandre Termier,et al.  Efficiently rewriting large multimedia application execution traces with few event sequences , 2013, KDD.

[25]  Charles E. McDowell,et al.  Debugging concurrent programs , 1989, ACM Comput. Surv..

[26]  Stephen J. Mellor,et al.  Executable UML - A Foundation for Model-Driven Architecture , 2002, Addison Wesley object technology series.

[27]  Klaus Havelund,et al.  Model checking JAVA programs using JAVA PathFinder , 2000, International Journal on Software Tools for Technology Transfer.

[28]  Alex Groce,et al.  Exploiting traces in static program analysis: better model checking through $${{\tt printf}}$$s , 2007, International Journal on Software Tools for Technology Transfer.

[29]  Shmuel Katz,et al.  High-level language debugging for concurrent programs , 1990, TOCS.

[30]  Gerti Kappel,et al.  A runtime model for fUML , 2012, MRT '12.

[31]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

[32]  Keith Eugene Campbell,et al.  Distributed development of a logic-based controlled medical terminology , 1997 .

[33]  Willem Visser,et al.  Model Checking Programs with Java PathFinder , 2005, SPIN.

[34]  Betty H. C. Cheng,et al.  Facilitating the construction of specification pattern-based properties , 2005, 13th IEEE International Conference on Requirements Engineering (RE'05).

[35]  Zhendong Su,et al.  Context-aware statistical debugging: from bug predictors to faulty control flow paths , 2007, ASE.

[36]  Jacques Chassin de Kergommeaux,et al.  Pajé, an interactive visualization tool for tuning multi-threaded parallel applications , 2000, Parallel Comput..

[37]  Patrick Cousot,et al.  Abstract Interpretation and Application to Logic Programs , 1992, J. Log. Program..

[38]  Bernd Hamann,et al.  Combing the Communication Hairball: Visualizing Parallel Execution Traces using Logical Time , 2014, IEEE Transactions on Visualization and Computer Graphics.

[39]  Antti Valmari,et al.  The State Explosion Problem , 1996, Petri Nets.

[40]  Xavier Crégut,et al.  Automated Failure Analysis in Model Checking Based on Data Mining , 2014, MEDI.

[41]  Betty H. C. Cheng,et al.  Object analysis patterns for embedded systems , 2004, IEEE Transactions on Software Engineering.

[42]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[43]  Alex Groce,et al.  What Went Wrong: Explaining Counterexamples , 2003, SPIN.

[44]  David Harel,et al.  On tracing reactive systems , 2011, Software & Systems Modeling.

[45]  Kent A. Spackman,et al.  Examining SNOMED from the perspective of formal ontological principles: Some preliminary analysis and observations , 2004, KR-MED.

[46]  Nicola Guarino,et al.  An Overview of OntoClean , 2004, Handbook on Ontologies.

[47]  Shahar Maoz,et al.  Model-Based Traces , 2009, MoDELS.

[48]  Krzysztof Czarnecki,et al.  Feature-based survey of model transformation approaches , 2006, IBM Syst. J..

[49]  Mireille Ducassé,et al.  Coca: an automated debugger for C , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[50]  Eelco Visser,et al.  A survey of strategies in rule-based program transformation systems , 2005, J. Symb. Comput..

[51]  Leslie Lamport,et al.  Distributed snapshots: determining global states of distributed systems , 1985, TOCS.

[52]  Christel Baier,et al.  Principles of Model Checking (Representation and Mind Series) , 2008 .

[53]  David Harel,et al.  LSCs: Breathing Life into Message Sequence Charts , 1999, Formal Methods Syst. Des..

[54]  Bernhard Rumpe,et al.  Model-driven Development of Complex Software : A Research Roadmap , 2007 .

[55]  Jérôme Delatour,et al.  Transformation de modèles UML vers Fiacre, via les langages intermédiaires tUML et ABCD , 2014 .

[56]  Saeed Parsa,et al.  Software Fault Localization via Mining Execution Graphs , 2011, ICCSA.

[57]  Klaus Havelund,et al.  Using Runtime Analysis to Guide Model Checking of Java Programs , 2013, SPIN.

[58]  Armin Biere,et al.  Bounded model checking , 2003, Adv. Comput..