VL/HCC 2010 - Tutorial
on
Scenario-Based Programming and the Visual Language of Live Sequence Charts
Scenario-based programming is a novel paradigm for the description and execution of systems. It uses autonomous modal specifications of “pieces of behavior” to tell the system under development what it can do, must do or may not do under appropriate conditions. The primary example of a medium for scenario-based programming is the visual language of live sequence charts (LSC), which extends classical sequence diagrams with modalities, and which introduces new and intriguing ways for generating and executing system behavior.
The main characteristics of scenario based programming include a natural means for incremental development, by the addition of autonomous scenarios, and encoding of requirements and use cases in ways that reflect the manner in which people typically think about system behavior.
In this tutorial we present the principles of scenario-based programming, together with its two specialized underlying techniques, play-in and play-out. In the former, the system’s scenarios are "programmed" through direct interaction with its GUI, and in the latter the resulting scenario-based specification is executed by coordinating and consolidating the separate scenarios into a cohesive, integrated system behavior. Whenever necessary, internal conflicts and non-determinism between scenarios are resolved using powerful techniques, taken, for example, from model-checking.
Hands-on guided exercises with the Play-Engine – the tool supporting the approach − will introduce the semantics and syntax of LSC, and will allow tutorial participants to get a feel for the user/developer experience in building small systems.
We will conclude with a discussion of topics and open research challenges, such as:
o Automatic translation of natural language requirements into modal scenarios;
o Visualization and comprehension of scenario-based programs and system runs;
o Cognitive aspects of scenario-based programming and how they differ from those of classical procedural programming;
o End-user programming;
o How scenario-based languages can be integrated with other applications and languages;
o How to best use this approach as a step towards the recently presented vision of liberating programming.

Watch a short demonstration of playing in a simple scenario [exe] or [avi].
Watch a short demonstration of a simple play-out session for a pocket calculator application [exe] or [avi].
Organizers:
o David Harel, Weizmann Institute of Science, Israel
o Assaf Marron, Weizmann Institute of Science, Israel
o Michal Gordon, Weizmann Institute of Science, Israel
o Shahar Maoz, RWTH-Aachen University, Germany
References:
W. Damm and D. Harel. LSCs: Breathing life into message sequence charts. Formal Methods in System Design, 19(1):45–80, 2001. Preliminary version appeared in Proc. 3rd IFIP Int. Conf. on Formal Methods for Open Object-Based Distributed Systems (FMOODS’99). [PDF]
D. Harel, H. Kugler, R. Marelly, and A. Pnueli. Smart Play-Out of Behavioral Requirements. In Proc. 4th Int. Conf. on Formal Methods in Computer-Aided Design (FMCAD’02), Portland, Oregon, volume 2517 of LNCS, pages 378–398, 2002. [PDF]
D. Harel and R. Marelly. Come, Let’s Play: Scenario-Based Programming Using LSCs and the Play-Engine. Springer-Verlag, 2003. [book website]
D. Harel, "Can Programming be Liberated, Period?", IEEE Computer 41:1 (2008), 28-37. [PDF]
Last updated: March 8, 2010