Doi: 10.1145/1467247.1467265
How avionics work led to a graphical language
for reactive systems where the diagrams
themselves define the system’s behavior.
BY DaViD haReL
statecharts
in the making:
a Personal
account
WRitinG a hiStoRiCal
paper about something you
yourself are heavily involved in is clearly difficult;
the result is bound to be personal and idiosyncratic
and might well sound presumptuous. I thus viewed
an invitation to write about statecharts for the third
History of Programming languages conference in
2007 as an opportunity to put the language in a
broader perspective. 6 The present article is a greatly abridged version of
the resulting conference paper. The
implicit claim is that the emergence of
the language brought to the forefront a
number of ideas that today are central
to software and systems engineering,
including the general notions of visual
formalisms, reactive systems, model-based development, model executability, and full code generation.
In 1979 I published a paper on a
tree-like language based on the idea of
alternation called “And/Or Programs,” 18
prompting Jonah Lavi of Israel Aircraft
Industries (IAI) to contact me. We met in
late 1982, at which time I’d been on the
faculty of the Weizmann Institute of Science for two years. Lavi, who was a meth-
odologist responsible for evaluating
and recommending software engineering methods and tools at IAI, described
some problems IAI avionics engineers
were having. This was part of the massive
effort then under way to build a fighter
aircraft, the Lavi (no connection with
Jonah’s surname). Following that meeting, I began consulting at IAI on a one-day-a-week basis, and for several months
Thursday became my IAI day.
The first few weeks were devoted to
trying to understand the general issues
from Lavi. Then it was time to be exposed
to the details of the project and its specific difficulties, since I hadn’t yet met the
project’s engineers. For several weeks,
I spent my Thursdays with Lavi’s assistant, Yitzhak Shai, and a select group of