Authors:
Guy Katz
1
;
Assaf Marron
2
;
Aviran Sadon
3
and
Gera Weiss
3
Affiliations:
1
The Hebrew University of Jerusalem, Jerusalem and Israel
;
2
Weizmann Institute of Science, Rehovot and Israel
;
3
Ben-Gurion University of the Negev, Be’er Sheva and Israel
Keyword(s):
Scenario-Based Programming, Behavioral Programming, Constraint Solvers, SMT Solvers.
Related
Ontology
Subjects/Areas/Topics:
Applications and Software Development
;
Constraint Modeling and Languages
;
Frameworks for Model-Driven Development
;
General-Purpose Modeling Languages and Standards
;
Languages, Tools and Architectures
;
Methodologies, Processes and Platforms
;
Model Execution and Simulation
;
Model-Driven Software Development
;
Models
;
Paradigm Trends
;
Software Engineering
Abstract:
Scenario-Based Programming is a methodology for modeling and constructing complex reactive systems from simple, stand-alone building blocks, called scenarios. These scenarios are designed to model different traits of the system, and can be interwoven together and executed to produce cohesive system behavior. Existing execution frameworks for scenario-based programs allow scenarios to specify their view of what the system must, may, or must not do only through very strict interfaces. This limits the methodology’s expressive power and often prevents users from modeling certain complex requirements. Here, we propose to extend Scenario-Based Programming’s execution mechanism to allow scenarios to specify how the system should behave using rich logical constraints. We then leverage modern constraint solvers (such as SAT or SMT solvers) to resolve these constraints at every step of running the system, towards yielding the desired overall system behavior. We provide an implementation of our
approach and demonstrate its applicability to various systems that could not be easily modeled in an executable manner by existing Scenario-Based approaches.
(More)