Abstract
Scenario-Based Programming (SBP) is an approach to modeling and running complex, event-based, system behavior by composing narrower views of overall behavior. In this paper we introduce significant extensions to the strict interfaces by which scenarios in existing SBP frameworks specify what the system must, may, or must not do, and to the mechanisms that execute these scenarios: (i) we allow events with a multitude of variables and parameters; each event can become an entire model, and each event selection can be the selection of a major section of the new state of the system and the environment; (ii) we extend the basic request/block SBP interfaces with a rich set of composable constraints and functions, which can describe desired and undesired variable assignments, where each constraint may relate to all variables or to just a subset thereof; (iii) we introduce a central, application-agnostic mechanism for adding optimization to standard event selection; and (iv) we relate our method to Null-Space Behavior (NSB)—a successful compositional approach in control theory. We demonstrate these language-independent concepts through several use cases that are implemented in a variety of languages and solvers.
This paper substantially extends the paper titled “On-the-Fly Construction of Composite Events in Scenario-Based Modeling Using Constraint Solvers”, published in Modelsward 2019 [48].
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Antonelli, G., Arrichiello, F., Chiaverini, S.: The NSB control: a behavior-based approach for multi-robot systems. Paladyn, J. Behav. Robot. 1(1), 48–56 (2010)
Argelich, J., Lynce, I.: CNF instances from the software package installation problem. In: Proceedings of 15th RCRA Workshop on Experimental Evaluation of Algorithms for Solving Problems with Combinatorial Explosion (2008)
Arkin, R.C.: Behavior-Based Robotics. MIT Press, Cambridge (1998)
Bar-Sinai, M., Weiss, G., Shmuel, R.: BPjs: an extensible, open infrastructure for behavioral programming research. In: Proceedings of 21st ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MODELS), pp. 59–60 (2018)
Barrett, C., Kroening, D., Melham, T.: Problem Solving for the 21st Century: Efficient Solvers for Satisfiability Modulo Theories. London Mathematical Society and Smith Institute for Industrial Mathematics and System Engineering (2014)
Barrett, C., Tinelli, C.: Satisfiability modulo theories. In: Clarke, E., Henzinger, T., Veith, H., Bloem, R. (eds.) Handbook of Model Checking, pp. 305–343. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-10575-8_11
Biere, A., Cimatti, A., Clarke, E., Zhu, Y.: Symbolic model checking without BDDs. In: Cleaveland, W.R. (ed.) TACAS 1999. LNCS, vol. 1579, pp. 193–207. Springer, Heidelberg (1999). https://doi.org/10.1007/3-540-49059-0_14
Bliudze, S., Sifakis, J.: A notion of glue expressiveness for component-based systems. In: van Breugel, F., Chechik, M. (eds.) CONCUR 2008. LNCS, vol. 5201, pp. 508–522. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-85361-9_39
Bloem, R., Jobstmann, B., Piterman, N., Pnueli, A., Saar, Y.: Synthesis of reactive(1) designs. J. Comput. Syst. Sci. 78(3), 911–938 (2012)
Blum, A.L., Furst, M.L.: Fast planning through planning graph analysis. Artif. Intell. 90(1–2), 281–300 (1997)
Branicky, M.: Behavioral Programming. In: Working Notes AAAI Spring Symposium on Hybrid Systems and AI (1999)
Brooks, R.: A robust layered control system for a mobile robot. Robot. Autom. 2(1), 14–23 (1986)
Chvátal, V.: Linear Programming. Freeman W.H., New York (1983)
Clarke, E., Henzinger, T., Veith, H., Bloem, R.: Handbook of Model Checking. Springer, Heidelberg (2018). https://doi.org/10.1007/978-3-319-10575-8
Harel, D., Katz, G., Marron, A., Sadon, A., Weiss, G.: Supplementary Material for Scenario-based Programming with Rich Event Construction (2019). http://www.b-prog.org/ccismw19
Damm, W., Harel, D.: LSCs: breathing life into message sequence charts. J. Formal Methods Syst. Des. (FMSD) 19(1), 45–80 (2001)
de Moura, L., Bjørner, N.: Z3: an efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-78800-3_24
Frehse, G., et al.: SpaceEx: scalable verification of hybrid systems. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 379–395. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22110-1_30
Gordon, M., Marron, A., Meerbaum-Salant, O.: Spaghetti for the main course?: observations on the naturalness of scenario-based programming. In: Innovation and Technology in Computer Science Education, ITiCSE 2012. ACM (2012). https://doi.org/10.1145/2325296.2325346
Greenyer, J., Bar-Sinai, M., Weiss, G., Sadon, A., Marron, A.: Modeling and programming a leader-follower challenge problem with scenario-based tools. In: Proceedings of 21st ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MODELS), pp. 376–385 (2018)
Greenyer, J., Gritzner, D.: Generating correct, compact, and efficient PLC Code from scenario-based GR(1) specifications. In: System-Integrated Intelligence: Challenges for Product and Production Engineering (SYSINT) (2018)
Greenyer, J., et al.: ScenarioTools—a tool suite for the scenario-based modeling and analysis of reactive systems. J. Sci. Comput. Program. 149, 15–27 (2017)
Greenyer, J., Gritzner, D., Katz, G., Marron, A.: Scenario-based modeling and synthesis for reactive systems with dynamic system structure in scenariotools. In: Proceedings of 19th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MODELS), pp. 16–23 (2016)
Greenyer, J., et al.: Distributed execution of scenario-based specifications of structurally dynamic cyber-physical systems. In: International Conference on System-Integrated Intelligence: Challenges for Product and Production Engineering (SYSINT), pp. 552–559 (2016)
Gritzner, D., Greenyer, J.: Synthesizing executable PLC code for robots from scenario-based GR(1) specifications. In: Seidl, M., Zschaler, S. (eds.) STAF 2017. LNCS, vol. 10748, pp. 247–262. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-74730-9_23
Harel, D. Kantor, A., Katz, G., Marron, A., Weiss, G., Wiener, G.: Towards behavioral programming in distributed architectures. J. Sci. Comput. Program. (J. SCP) 98, 233–267 (2015)
Harel, D.: Statecharts: a visual formalism for complex systems. J. Sci. Comput. Program. (J. SCP) 8(3), 231–274 (1987)
Harel, D., Kantor, A., Katz, G.: Relaxing synchronization constraints in behavioral programs. In: McMillan, K., Middeldorp, A., Voronkov, A. (eds.) LPAR 2013. LNCS, vol. 8312, pp. 355–372. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-45221-5_25
Harel, D., Kantor, A., Katz, G., Marron, A., Mizrahi, L., Weiss, G.: On composing and proving the correctness of reactive behavior. In: Proceedings of 13th International Conference on Embedded Software (EMSOFT), pp. 1–10 (2013)
Harel, D., Katz, G.: Scaling-up behavioral programming: steps from basic principles to application architectures. In: International Workshop on Programming Based on Actors, Agents, and Decentralized Control (AGERE!), pp. 95–108 (2014)
Harel, D., Katz, G., Lampert, R., Marron, A., Weiss, G.: On the succinctness of idioms for concurrent programming. In: Proceedings of 26th International Conference on Concurrency Theory (CONCUR), pp. 85–99 (2015)
Harel, D., Katz, G., Marelly, R., Marron, A.: An initial wise development environment for behavioral models. In: Proceedings of 4th International Conference on Model-Driven Engineering and Software Development (MODELSWARD), pp. 600–612 (2016)
Harel, D., Katz, G., Marelly, R., Marron, A.: First steps towards a wise development environment for behavioral models. Int. J. Inf. Syst. Model. Des. (IJISMD) 7(3), 1–22 (2016)
Harel, D., Katz, G., Marelly, R., Marron, A.: Wise computing: toward endowing system development with proactive wisdom. IEEE Comput. 51(2), 14–26 (2018)
Harel, D., Katz, G., Marron, A., Weiss, G.: Non-intrusive repair of reactive programs. In: Proceedings of 17th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS), pp. 3–12 (2012)
Harel, D., Katz, G., Marron, A., Weiss, G.: Non-intrusive repair of safety and liveness violations in reactive programs. Trans. Comput. Collect. Intell. (TCCI) 16, 1–33 (2014)
Harel, D., Katz, G., Marron, A., Weiss, G.: The effect of concurrent programming idioms on verification: a position paper. In: Proceedings of 3rd International Conference on Model-Driven Engineering and Software Development (MODELSWARD), pp. 363–369 (2015)
Harel, D., Kugler, H., Marelly, R., Pnueli, A.: Smart play-out of behavioral requirements. In: Aagaard, M.D., O’Leary, J.W. (eds.) FMCAD 2002. LNCS, vol. 2517, pp. 378–398. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-36126-X_23
Harel, D., Maoz, S., Szekely, S., Barkan, D.: PlayGo: towards a comprehensive tool for scenario based programming. In: Proceedings of 10th International Conference on Automated Software Engineering (ASE), pp. 359–360 (2010)
Harel, D., Marelly, R.: Come, Let’s Play: Scenario-Based Programming Using LSCs and the Play-Engine. Springer, Heidelberg (2003). https://doi.org/10.1007/978-3-642-19029-2
Harel, D., Marron, A., Weiss, G.: Programming coordinated behavior in Java. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 250–274. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-14107-2_12
Harel, D., Marron, A., Weiss, G., Wiener, G.: Behavioral programming, decentralized control, and multiple time scales. In: Proceedings of 1st SPLASH Workshop on Programming Systems, Languages, and Applications Based on Agents, Actors, and Decentralized Control (AGERE!), pp. 171–182 (2011)
Harel, D., Segall, I.: Synthesis from live sequence chart specifications. Comput. Syst. Sci. 78(3), 970–980 (2012)
Harel, D., Marron, A.: Toward scenario-based algorithmics. In: Böckenhauer, H.-J., Komm, D., Unger, W. (eds.) Adventures Between Lower Bounds and Higher Altitudes. LNCS, vol. 11011, pp. 549–567. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-98355-4_32
Harel, D., Marron, A., Weiss, G.: Behavioral programming. Commun. ACM 55(7), 90–100 (2012)
IEEE: Standard SystemC Lang. Ref. Manual. IEEE (2006)
Katz, G., Barrett, C., Harel, D.: Theory-aided model checking of concurrent transition systems. In: Proceedings of 15th International Conference on Formal Methods in Computer-Aided Design (FMCAD), pp. 81–88 (2015)
Katz, G., Marron, A., Sadon, A., Weiss, G.: On-the-fly construction of composite events in scenario-based modeling using constraint solvers. In: Model-Driven Engineering and Software Development, MODELSWARD 2019, pp. 141–154 (2019). https://doi.org/10.5220/0007573801410154
Katz, G.: On module-based abstraction and repair of behavioral programs. In: Proceedings of 19th International Conference on Logic for Programming, Artificial Intelligence and Reasoning (LPAR), pp. 518–535 (2013)
Kiczales, G., et al.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997). https://doi.org/10.1007/BFb0053381
Mancinelli, F., Boender, J., Di Cosmo, R., Vouillon, J., Durak, B., Leroy, R.: Treinen: managing the complexity of large free and open source package based software distributions. In: Proceedings of 21st IEEE/ACM International Conference on Automated Software Engineering (ASE), pp. 199–208 (2006)
Marron, A., et al.: Six (im)possible things before breakfast: building-blocks and design-principles for wise computing. In: Proceedings of 19th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MODELS), pp. 94–100 (2016)
Marron, A., Hacohen, Y., Harel, D., Mülder, A., Terfloth, A.: Embedding scenario-based modeling in statecharts. In: Proceedings of 5th International Workshop on Model-Driven Robot Software Engineering (MORSE) (2018)
Nadel, A.: Understanding and improving a modern SAT solver, Ph.D. thesis, Tel Aviv University (2009)
Păsăreanu, C., Visser, W.: A survey of new trends in symbolic execution for software testing and analysis. Int. J. Softw. Tools Technol. Transf. 11(4), 339–353 (2009)
Sen, K.: Concolic testing. In: Proceedings of 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE), pp. 571–572 (2007)
Steinberg, S., Greenyer, J., Gritzner, D., Harel, D., Katz, G., Marron, A.: Distributing scenario-based models: a replicate-and-project approach. In: Proceedings of 5th International Conference on Model-Driven Engineering and Software Development (MODELSWARD), pp. 182–195 (2015)
Steinberg, S., Greenyer, J., Gritzner, D., Harel, D., Katz, G., Marron, A.: Efficient distributed execution of multi-component scenario-based models. Commun. Comput. Inf. Sci. (CCIS) 880, 449–483 (2018)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Harel, D., Katz, G., Marron, A., Sadon, A., Weiss, G. (2020). Executing Scenario-Based Specification with Dynamic Generation of Rich Events. In: Hammoudi, S., Pires, L., Selić, B. (eds) Model-Driven Engineering and Software Development. MODELSWARD 2019. Communications in Computer and Information Science, vol 1161. Springer, Cham. https://doi.org/10.1007/978-3-030-37873-8_11
Download citation
DOI: https://doi.org/10.1007/978-3-030-37873-8_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-37872-1
Online ISBN: 978-3-030-37873-8
eBook Packages: Computer ScienceComputer Science (R0)