Statecharts in the making: a personal account

This paper is a highly personal and subjective account of how the language of statecharts came into being. The main novelty of the language is in being a fully executable visual formalism intended for capturing the behavior of complex real-world systems, and an interesting aspect of its history is that it illustrates the advantages of theoreticians venturing out into the trenches of the real world, "dirtying their hands" and working closely with the system's engineers. The story is told in a way that puts statecharts into perspective and discusses the role of the language in the emergence of broader concepts, such as visual formalisms in general, reactive systems, model-driven development, model executability and code generation.

[1]  David Harel,et al.  LSCs: Breathing Life into Message Sequence Charts , 1999, Formal Methods Syst. Des..

[2]  Nicolas Halbwachs,et al.  LUSTRE: a declarative language for real-time programming , 1987, POPL '87.

[3]  Amir Pnueli,et al.  On the Formal Semantics of Statecharts (Extended Abstract) , 1987, LICS.

[4]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[5]  David Harel,et al.  On visual formalisms , 1988, CACM.

[6]  R. Gerth,et al.  Modeling Statecharts Behaviour in a Fully Abstract Way , 1988, CAAP.

[7]  David Harel,et al.  The immune system as a reactive system: modeling T cell activation with statecharts , 2001, Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587).

[8]  D. Harel,et al.  Toward rigorous comprehension of biological complexity: modeling, execution, and visualization of thymic T-cell maturation. , 2003, Genome research.

[9]  David Harel,et al.  Biting the silver bullet: toward a brighter future for system development , 1992, Computer.

[10]  Doron Drusinsky,et al.  On the Power of Cooperative Concurrency , 1988, Concurrency.

[11]  Amir Pnueli,et al.  What is in a Step: On the Semantics of Statecharts , 1991, TACS.

[12]  Grady Booch,et al.  Object-oriented analysis and design with applications (2nd ed.) , 1993 .

[13]  Kozo Sugiyama,et al.  Visualization of structural information: automatic drawing of compound digraphs , 1991, IEEE Trans. Syst. Man Cybern..

[14]  David Harel,et al.  The Rhapsody Semantics of Statecharts (or, On the Executable Core of the UML) - Preliminary Version , 2004, SoftSpez Final Report.

[15]  James Martin,et al.  Diagramming techniques for analysts and programmers , 1984 .

[16]  David Harel,et al.  On statecharts with overlapping , 1992, TSEM.

[17]  P. Le Guernic,et al.  Hybrid dynamical systems theory and the Signal language , 1990 .

[18]  Bran Selic,et al.  Real-time object-oriented modeling , 1994, Wiley professional computing.

[19]  A. Pnueli,et al.  STATEMATE: a working environment for the development of complex reactive systems , 1988, [1988] Proceedings. The Third Israel Conference on Computer Systems and Software Engineering.

[20]  S. Zeldin,et al.  High order software - A methodology for defining software , 1975 .

[21]  David Harel,et al.  Executable object modeling with statecharts , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[22]  Amir Pnueli,et al.  On the Development of Reactive Systems , 1989, Logics and Models of Concurrent Systems.

[23]  Fa A Comprare,et al.  Come , 1890, The Hospital.

[24]  M. W. Shields An Introduction to Automata Theory , 1988 .

[25]  David Harel,et al.  Emergent Dynamics of Thymocyte Development and Lineage Determination , 2006, PLoS Comput. Biol..

[26]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[27]  Gerald W. Both,et al.  Object-oriented analysis and design with applications , 1994 .

[28]  David Harel,et al.  On the Complexity of Verifying Concurrent Transition Systems , 1997, Inf. Comput..

[29]  Derek J. Hatley,et al.  Strategies for Real-Time System Specification , 1987 .

[30]  Nicolas Halbwachs,et al.  LUSTRE: A declarative language for programming synchronous systems* , 1987 .

[31]  S. Zeldin,et al.  Higher Order Software—A Methodology for Defining Software , 1976, IEEE Transactions on Software Engineering.

[32]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[33]  Amnon Naamad,et al.  The STATEMATE semantics of statecharts , 1996, TSEM.

[34]  David Harel,et al.  InterPlay: Horizontal Scale-Up and Transition to Design in Scenario-Based Programming , 2006, IEEE Transactions on Software Engineering.

[35]  .. S. Leue Reactive Systems in , 1995 .

[36]  Stephen A. Edwards,et al.  The synchronous languages 12 years later , 2003, Proc. IEEE.

[37]  W. J. Kubitz,et al.  Biting the silver bullet: toward a brighter future for system development , 1992 .

[38]  David Harel,et al.  Come, let's play - scenario-based programming using LSCs and the play-engine , 2003 .

[39]  David Harel,et al.  Reactive animation: realistic modeling of complex dynamic systems , 2005, Computer.

[40]  Bernhard Rumpe,et al.  Meaningful modeling: what's the semantics of "semantics"? , 2004, Computer.

[41]  Doron Drusinsky,et al.  On the power of bounded concurrency I: finite automata , 1994, JACM.

[42]  三末 和男,et al.  COMPOUND GRAPHS AS ABSTRACTION OF CARD SYSTEMS AND THEIR HIERARCHICAL DRAWING , 1988 .

[43]  Nancy G. Leveson,et al.  Requirements Specification for Process-Control Systems , 1994, IEEE Trans. Software Eng..

[44]  David Harel,et al.  Modeling Reactive Systems With Statecharts : The Statemate Approach , 1998 .

[45]  Paul Ward,et al.  Structured Development for Real-Time Systems , 1986 .

[46]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[47]  Michael von der Beeck,et al.  A Comparison of Statecharts Variants , 1994, FTRTFT.

[48]  Stephen A. Edwards,et al.  The Synchronous Languages Twelve Years Later , 1997 .

[49]  David Harel,et al.  And/Or Programs: A New Approach to Structured Programming , 1980, TOPL.

[50]  Amnon Naamad,et al.  Statemate: a working environment for the development of complex reactive systems , 1988, ICSE '88.

[51]  Wolfgang Reisig Petri Nets: An Introduction , 1985, EATCS Monographs on Theoretical Computer Science.

[52]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[53]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[54]  H. G. R. Robinson,et al.  The Development of , 1965 .

[55]  David Lorge Parnas,et al.  Software Requirements for the A-7E Aircraft. , 1992 .