Authors:
David Harel
1
;
Guy Katz
1
;
Assaf Marron
1
and
Gera Weiss
2
Affiliations:
1
The Weizmann Institute of Science, Israel
;
2
Ben Gurion University, Israel
Keyword(s):
Concurrency, Verification, Design for Verification, Behavioral Programming.
Related
Ontology
Subjects/Areas/Topics:
Applications and Software Development
;
General-Purpose Modeling Languages and Standards
;
Languages, Tools and Architectures
;
Methodologies, Processes and Platforms
;
Model-Based Testing and Validation
;
Model-Driven Software Development
;
Reasoning about Models
;
Software Engineering
;
Systems Engineering
Abstract:
In recent years formal verification techniques have become an important part of the development cycle of
concurrent software. In order to tackle the state explosion problem and verify larger systems, a great deal
of work has been put into improving the scalability of verification tools. In this work, we seek to draw
attention to an alternative/complementary approach to improving scalability, which sometimes receives less
notice: the effect the concurrent programming model itself has on one’s ability to verify programs encoded
within it. Recent work suggests that a suitable choice of model, tailored to the problem at hand, may render
the produced software more amenable to verification techniques. We recapitulate some recent and new results
demonstrating this effect in programming models for discrete, synchronous reactive systems, and outline some
directions for future work. We hope that the paper will trigger additional research on this important topic.