The physics of software tools: SWOT analysis and vision

This paper reviews the seemingly inevitable trend that software tools are no longer just a means for supporting the design, construction, and analysis of (large-scale) systems, but become so complex that each of them turns into a reality of their own, with its own “physics”, that needs to be studied in its own right. The true effects of combining methodologies as diverse as classical static analysis, model checking, SAT and SMT solving, and dynamic methods such as simulation, runtime verification, testing, and learning, with their dedicated means of optimizations in terms of, e.g., BDD coding, parallelization, and various forms of abstraction and reduction, are very dependent on the particular tools and typically hardly predictable. Corresponding experimental investigations, today often supported by diverse and frequent tool challenges, provide interesting indications about the applied technology, but typically fail to provide sufficient evidence to transfer results to other settings and tools. Moreover, implementation-specific details often dominate the observed effects which thereby become invalid for drawing conceptual conclusions. On the other hand, requiring consequent in-depth analysis of any experimental observation in order to pinpoint the underlying conceptual consequences before publication would slow down the scientific exchange and also hinder the scientific progress. This paper analyzes the situation of today’s software tools from a global perspective in terms of a SWOT (Strength, Weaknesses, Opportunities, Treats) analysis, identifies challenges, and establishes a global vision for overcoming current weaknesses.

[1]  Tiziana Margaria,et al.  jETI: A Tool for Remote Tool Integration , 2005, TACAS.

[2]  Helmut Veith,et al.  Empirical software metrics for benchmarking of verification tools , 2017, Formal Methods Syst. Des..

[3]  Mahesh Viswanathan,et al.  Statistical model checking: challenges and perspectives , 2015, International Journal on Software Tools for Technology Transfer.

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

[5]  Dirk Beyer,et al.  The RERS Grey-Box Challenge 2012: Analysis of Event-Condition-Action Systems , 2012, ISoLA.

[6]  Sylvain Hallé,et al.  Third International Competition on Runtime Verification - CRV 2016 , 2016, RV.

[7]  Shriram Krishnamurthi,et al.  Artifact evaluation for software conferences , 2013, SOEN.

[8]  Tiziana Margaria,et al.  Seven Variations of an Alignment Workflow - An Illustration of Agile Process Design and Management in Bio-jETI , 2008, ISBRA.

[9]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[10]  Tiziana Margaria,et al.  Service-Orientation: Conquering Complexity with XMDD , 2012, Conquering Complexity.

[11]  Daniel Kroening,et al.  A Tool for Checking ANSI-C Programs , 2004, TACAS.

[12]  Bernhard Steffen,et al.  The Open-Source LearnLib - A Framework for Active Automata Learning , 2015, CAV.

[13]  Arend Rensink,et al.  A survey and comparison of transformation tools based on the transformation tool contest , 2014, Sci. Comput. Program..

[14]  Slava G. Turyshev,et al.  Indication, from Pioneer 10 / 11, Galileo, and Ulysses data, of an apparent anomalous, weak, long range acceleration , 1998 .

[15]  Axel Legay,et al.  Plasma Lab: A Modular Statistical Model Checking Platform , 2016, ISoLA.

[16]  Jan Tretmans,et al.  TorX: Automated Model-Based Testing , 2003 .

[17]  Tiziana Margaria Web services-based tool-integration in the ETI platform , 2004, Software & Systems Modeling.

[18]  Bernhard Beckert,et al.  Verification of Object-Oriented Software. The KeY Approach - Foreword by K. Rustan M. Leino , 2007, The KeY Approach.

[19]  Shin Nakajima,et al.  The SPIN Model Checker : Primer and Reference Manual , 2004 .

[20]  Dirk Beyer,et al.  Reliable and Reproducible Competition Results with BenchExec and Witnesses (Report on SV-COMP 2016) , 2016, TACAS.

[21]  Thomas A. Henzinger,et al.  HYTECH: A Model Checker for Hybrid Systems , 1997, CAV.

[22]  Arend Rensink,et al.  Graph transformation tool contest 2008 , 2010, International Journal on Software Tools for Technology Transfer.

[23]  Tiziana Margaria,et al.  MOSEL: A FLexible Toolset for Monadic Second-Order Logic , 1997, TACAS.

[24]  Tiziana Margaria,et al.  Property-driven benchmark generation: synthesizing programs of realistic structure , 2014, International Journal on Software Tools for Technology Transfer.

[25]  Fausto Giunchiglia,et al.  NUSMV: A New Symbolic Model Verifier , 1999, CAV.

[26]  Markus Schordan,et al.  A Source-to-Source Architecture for User-Defined Optimizations , 2003, JMLC.

[27]  Patrick Cousot,et al.  The ASTREÉ Analyzer , 2005, ESOP.

[28]  Vladimir Klebanov,et al.  VerifyThis 2012 , 2015, International Journal on Software Tools for Technology Transfer.

[29]  Tiziana Margaria,et al.  The FMICS-jETI Platform: Status and Perspectives , 2006, Second International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (isola 2006).

[30]  Bernhard Steffen,et al.  RERS 2016: Parallel and Sequential Benchmarks with Focus on LTL Verification , 2016, ISoLA.

[31]  Bernhard Steffen,et al.  Generating Data Flow Analysis Algorithms from Modal Specifications , 1993, Sci. Comput. Program..

[32]  Tiziana Margaria,et al.  Remote integration and coordination of verification tools in jETI , 2005, 12th IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'05).

[33]  Tiziana Margaria,et al.  LTL Guided Planning: Revisiting Automatic Tool Composition in ETI , 2007, 31st IEEE Software Engineering Workshop (SEW 2007).

[34]  Tiziana Margaria,et al.  LearnLib: a framework for extrapolating behavioral models , 2009, International Journal on Software Tools for Technology Transfer.

[35]  Axel Legay,et al.  PSCV: A Runtime Verification Tool for Probabilistic SystemC Models , 2016, CAV.

[36]  Kim G. Larsen,et al.  Learning deterministic probabilistic automata from a model checking perspective , 2016, Machine Learning.

[37]  Markus Schordan,et al.  Multi-core Model Checking of Large-Scale Reactive Systems Using Different State Representations , 2016, ISoLA.

[38]  Frank S. de Boer,et al.  OpenJDK's Java.utils.Collection.sort() Is Broken: The Good, the Bad and the Worst Case , 2015, CAV.

[39]  Tiziana Margaria,et al.  The Fixpoint-Analysis Machine , 1995, CONCUR.

[40]  Bernhard Steffen,et al.  Learning register automata: from languages to program structures , 2014, Machine Learning.

[41]  Matthew B. Dwyer,et al.  Bandera: extracting finite-state models from Java source code , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[42]  Jaco van de Pol,et al.  1 Motivation : A Modular , High-Performance Model Checker , 2010 .

[43]  Tiziana Margaria,et al.  The Electronic Tool Integration platform: concepts and design , 1997, International Journal on Software Tools for Technology Transfer.

[44]  Aditya Kanade,et al.  MUX: algorithm selection for software model checkers , 2014, MSR 2014.

[45]  Alfons Laarman,et al.  LTSmin: High-Performance Language-Independent Model Checking , 2015, TACAS.

[46]  Tiziana Margaria,et al.  Service-Oriented Design: The Roots , 2005, ICSOC.

[47]  Thomas A. Henzinger,et al.  HYTECH: a model checker for hybrid systems , 1997, International Journal on Software Tools for Technology Transfer.

[48]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[49]  Tiziana Margaria,et al.  Bio-jETI: a service integration, design, and provisioning platform for orchestrated bioinformatics processes , 2008, BMC Bioinformatics.

[50]  Tiziana Margaria,et al.  Integrating tools in the ETI platform , 1997, International Journal on Software Tools for Technology Transfer.

[51]  Wang Yi,et al.  UPPAAL 4.0 , 2006, Third International Conference on the Quantitative Evaluation of Systems - (QEST'06).

[52]  Thomas A. Henzinger,et al.  Software Verification with BLAST , 2003, SPIN.

[53]  Tiziana Margaria,et al.  Dynamic testing via automata learning , 2007, International Journal on Software Tools for Technology Transfer.

[54]  Sergio Yovine,et al.  KRONOS: a verification tool for real-time systems , 1997, International Journal on Software Tools for Technology Transfer.

[55]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[56]  Jean-Christophe Filliâtre,et al.  VerifyThis 2015 A program verification competition , 2016 .

[57]  Wang Yi,et al.  Uppaal in a nutshell , 1997, International Journal on Software Tools for Technology Transfer.

[58]  Marsha Chechik,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2016, Lecture Notes in Computer Science.

[59]  Tiziana Margaria,et al.  Bio-jETI: a framework for semantics-based service composition , 2009, BMC Bioinformatics.

[60]  Tobias Nipkow,et al.  A Proof Assistant for Higher-Order Logic , 2002 .

[61]  Cyrille Jégourel,et al.  A Platform for High Performance Statistical Model Checking - PLASMA , 2012, TACAS.

[62]  Dejan Nickovic,et al.  Second International Competition on Runtime Verification CRV 2015 , 2016, RV.

[63]  Jordan Ellis,et al.  Support for the thermal origin of the pioneer anomaly. , 2012, Physical review letters.

[64]  Marta Z. Kwiatkowska,et al.  PRISM 4.0: Verification of Probabilistic Real-Time Systems , 2011, CAV.

[65]  Dirk Beyer,et al.  CPAchecker: A Tool for Configurable Software Verification , 2009, CAV.