This paper provides a brief overview of the STATEMATE system, constructed over the past three years by i-Logix Inc., and Ad Cad Ltd. STATEMATE is a graphical working environment, intended for the specification, analysis, design and documentation of large and complex reactive systems, such as real-time embedded systems, control and communication systems, and interactive software. It enables a user to prepare, analyze and debug diagrammatic, yet precise, descriptions of the system under development from three inter-related points of view, capturing, structure, functionality and behavior. These views are represented by three graphical languages, the most intricate of which is the language of statecharts used t o depict reactive behavior over time. In addition to the use of statecharts, the main novelty of STATEMATE is in the fact that it 'understands' the entire descriptions perfectly, to the point of being able to analyze them for crucial dynamic properties, to carry out rigorous animated executions and simulations of the described system, and to create running code automatically. These features are invaluable when it comes to the quality and reliability of the final outcome.Reactive systems (see [P, HP]) are characterized as owing much of their complexity to the intricate nature of reactions to discrete occurrences. The computational and continuous parts of such systems are assumed to be dealt with using other means, and it is their reactive, control-driven parts that are considered here t o be the most problematic. Examples of reactive systems include most kinds of real-time computer embedded systems, rontrol plants, communication systems, interactive software of varying nature, and even VLSI circuits. Common t o all of these is the notion of reactive behavior, whereby the system is not adequately described by a simple relationship that specifies outputs as a function of inputs, but, rather, inquires relating outputs t o inputs through their allowed combinations in time. Typically, such descriptions involve complex sequences of events, actions, conditions and information flow, often with explicit timing constraints, that combine to form the system's overall behavior.It is fair t o say that the problem of finding good methods to aid in the development of such systems has not been satisfactorily solved. Standard structured design methods do not adequately deal with the dynamics of reactive systems, since they were proposed to deal primarily with non-reactive, datadriven applications, in which a good functional decomposition and data-flow description are sufficient. As to commercially available tools for real-time system design, most are, by and large, but sophisticated graphics editors, in which one can model certain aspects of reactive systems but in which a user can do little with the resulting descriptions beyond testing them for syntactic consistency and completeness and producing various kinds of output reports. These systems are often helpful in organizing a designer's thoughts and in communicating those thou...