DynAlloy analyzer: a tool for the specification and analysis of alloy models with dynamic behaviour

We describe DynAlloy Analyzer, a tool that extends Alloy Analyzer with support for dynamic elements in Alloy models. The tool builds upon Alloy Analyzer in a way that makes it fully compatible with Alloy models, and extends their syntax with a particular idiom, inspired in dynamic logic, for the description of dynamic behaviours, understood as sequences of states over standard Alloy models, in terms of programs. The syntax is broad enough to accommodate abstract dynamic behaviours, e.g., using nondeterministic choice and finite unbounded iteration, as well as more concrete ones, using standard sequential programming constructions. The analysis of DynAlloy models resorts to the analysis of Alloy models, through an optimized translation that often makes the analysis more efficient than that of typical ad-hoc constructions to capture dynamism in Alloy. Tool screencast, binaries and further details available in: http://dc.exa.unrc.edu.ar/tools/dynalloy

[1]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[2]  Cliff B. Jones,et al.  Systematic software development using VDM (2. ed.) , 1990, Prentice Hall International Series in Computer Science.

[3]  Marcelo F. Frias,et al.  TACO: Efficient SAT-Based Bounded Verification Using Symmetry Breaking and Tight Bounds , 2013, IEEE Transactions on Software Engineering.

[4]  Kathi Fisler,et al.  Specifying and Reasoning About Dynamic Access-Control Policies , 2006, IJCAR.

[5]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[6]  Leslie Lamport,et al.  Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers [Book Review] , 2002, Computer.

[7]  J. Michael Spivey,et al.  Z Notation - a reference manual (2. ed.) , 1992, Prentice Hall International Series in Computer Science.

[8]  Marcelo F. Frias,et al.  TacoFlow: optimizing SAT program verification using dataflow analysis , 2014, Software & Systems Modeling.

[9]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[10]  Nazareno Aguirre,et al.  Efficient Analysis of DynAlloy Specifications , 2007, TSEM.

[11]  Axel van Lamsweerde,et al.  Requirements Engineering: From System Goals to UML Models to Software Specifications , 2009 .

[12]  Edsger W. Dijkstra,et al.  Predicate Calculus and Program Semantics , 1989, Texts and Monographs in Computer Science.

[13]  Nazareno Aguirre,et al.  Taking Alloy to the Movies , 2003, FME.

[14]  Sam Malek,et al.  Titanium: efficient analysis of evolving alloy specifications , 2016, SIGSOFT FSE.

[15]  Manu Sridharan,et al.  A micromodularity mechanism , 2001, ESEC/FSE-9.

[16]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[17]  Nazareno Aguirre,et al.  Improving Test Generation under Rich Contracts by Tight Bounds and Incremental SAT Solving , 2013, 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation.

[18]  David Chemouil,et al.  Lightweight specification and analysis of dynamic systems with rich configurations , 2016, SIGSOFT FSE.

[19]  Marcelo F. Frias,et al.  Analysis of invariants for efficient bounded verification , 2010, ISSTA '10.

[20]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[21]  David Lorge Parnas,et al.  An Invitation to Formal Methods , 1996, Computer.

[22]  Antonio Bucchiarone,et al.  Graph-Based Design and Analysis of Dynamic Software Architectures , 2008, Concurrency, Graphs and Models.

[23]  Nazareno Aguirre,et al.  DynAlloy: upgrading alloy with actions , 2005, ICSE.

[24]  M. Ben-Ari,et al.  Principles of Concurrent and Distributed Programming (2nd Edition) (Prentice-Hall International Series in Computer Science) , 2006 .

[25]  Felix Sheng-Ho Chang,et al.  Modular verification of code with SAT , 2006, ISSTA '06.

[26]  Bernhard Beckert,et al.  Dynamic Logic , 2007, The KeY Approach.

[27]  Daniel Jackson,et al.  Bounded Verification of Voting Software , 2008, VSTTE.

[28]  Carlo Ghezzi,et al.  Fundamentals of Software Engineering , 2011, Lecture Notes in Computer Science.

[29]  Emina Torlak,et al.  Kodkod: A Relational Model Finder , 2007, TACAS.

[30]  Yde Venema,et al.  Dynamic Logic by David Harel, Dexter Kozen and Jerzy Tiuryn. The MIT Press, Cambridge, Massachusetts. Hardback: ISBN 0–262–08289–6, $50, xv + 459 pages , 2002, Theory and Practice of Logic Programming.

[31]  Nazareno Aguirre,et al.  Bounded Lazy Initialization , 2013, NASA Formal Methods.

[32]  Antonio Bucchiarone,et al.  Dynamic Software Architectures Verification using DynAlloy , 2008, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[33]  Sarfraz Khurshid,et al.  TestEra: A tool for testing Java programs using alloy specifications , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[34]  Nazareno Aguirre,et al.  BLISS: Improved Symbolic Execution by Bounded Lazy Initialization with SAT Support , 2015, IEEE Transactions on Software Engineering.

[35]  Joseph P. Near,et al.  An Imperative Extension to Alloy , 2010, ASM.

[36]  Nazareno Aguirre,et al.  Reasoning about static and dynamic properties in alloy , 2005, ACM Trans. Softw. Eng. Methodol..