Exploring the Design of an Intentional Naming Scheme with an Automatic Constraint Analyzer
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
TestEra: A Novel Framework for Automated Testing of Java Programs
Proceedings of the 16th IEEE international conference on Automated software engineering
DynAlloy: upgrading alloy with actions
Proceedings of the 27th international conference on Software engineering
Constraint Prioritization for Efficient Analysis of Declarative Models
FM '08 Proceedings of the 15th international symposium on Formal Methods
HAMPI: a solver for string constraints
Proceedings of the eighteenth international symposium on Software testing and analysis
Software architecture built from behavior models
ACM SIGSOFT Software Engineering Notes
Precise analysis of string expressions
SAS'03 Proceedings of the 10th international conference on Static analysis
Kodkod: a relational model finder
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
Incremental Test Generation for Software Product Lines
IEEE Transactions on Software Engineering
Reflections on the Work of C.A.R. Hoare
Reflections on the Work of C.A.R. Hoare
Relational reasoning via SMT solving
FM'11 Proceedings of the 17th international conference on Formal methods
ParAlloy: towards a framework for efficient parallel analysis of alloy models
ABZ'10 Proceedings of the Second international conference on Abstract State Machines, Alloy, B and Z
A case for alloy annotations for efficient incremental analysis via domain specific solvers
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Mixed constraints for test input generation - An initial exploration
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Hi-index | 0.00 |
Alloy is a declarative modeling language based on first-order logic with sets and relations. Alloy problems are analyzed fully automatically by the Alloy Analyzer. The analyzer translates a problem for given bounds to a propositional formula for which it searches a satisfying assignment via an off-the-shelf propositional satisfiability (SAT) solver. Hence, the performed analysis is a bounded exhaustive search and increasing the bounds leads to a combinatorial explosion. We increase the efficiency of the Alloy Analyzer by performing incremental analysis via domain specific solvers. We introduce annotations that define data types, operations on these data types, and bindings from data types to domain specific solvers. This meta-data is utilized to automatically partition a problem into sub-problems and opportunistically solve independent sub-problems in parallel using dedicated constraint solvers. We integrate dedicated Integer and String constraint solvers into Alloy's SAT based backend. Experimental results show that using dedicated solvers and exploiting independent sub-problems provide better efficiency and scalability; for the chosen subjects, our technique enables up to an order of magnitude speed-up.