Specification and design of reactive systems (2000)

Reactive systems maintain an ongoing interaction with their environment, and respond to inputs from the environment by possibly sending outputs to it. Most importantly, in most reactive systems, the functionality performed in response to inputs is no longer limited to data manipulation and numeric computation. Instead, a sizable portion of effort is often required to focus on control logic that manages the sequencing of operating tasks and the switching among various modes in consecutive interaction. For example, a digital cellular phone may contain a signal processing part including speech compression and decompression. In addition, it also needs to include a substantial amount of control logic for call processing and multiple-access protocols. 
Finite state machines (FSMs) have long been used to describe and analyze intricate control logic. Due to their finite nature, FSMs yield better to analysis and synthesis than alternative control models, such as sequential programs with if-then-else and switch-case constructs. For example, with an FSM, a designer can enumerate the set of reachable states to assure that a safety property is satisfied such that a particular set of dangerous states will never be reached. However, in large systems, the control functionality can become so complex that the flat, sequential FSM model becomes impractical because a very large number of states and transitions are required. 
Hierarchical concurrent FSMs (HCFSMs) dramatically increase the usefulness of FSMs by extending them with structuring and communicating mechanisms. Hierarchy allows a state of an FSM to be refined into another FSM, i.e. a set of sub-states. Concurrency allows multiple simultaneously active states, each refined as an FSM, to communicate through messaging of some sort. However, most models that support HCFSMs tightly integrate one concurrency semantics with the FSM semantics. This prevents the designers from choosing among various concurrency semantics the one that is best applicable to the problem at hand. Moreover, like the basic FSM model, HCFSMs are good for describing control logic, but not for intensive data computation. Hence, they are not enough by themselves for the complete design of a system with both sophisticated control and intensive computation. 
In fact, we observe that the FSM and the concurrency semantics in HCFSMs can be orthogonal properties. Moreover, the concurrent states of HCFSMs are actually the syntactic shorthand for interconnection of FSMs in a concurrency model. Therefore, in this thesis, we advocate decoupling the concurrency semantics from the FSM semantics. After equipping the basic FSM with hierarchy and heterogeneity, a hierarchical combination of FSMs with various concurrency models becomes feasible. We call this heterogeneous combination *charts (pronounced “starcharts”). *charts do not define a single concurrency semantics but rather show how FSMs interact with various concurrency models without ambiguities. This enables selection of the most appropriate concurrency model for the problem at hand. In particular, computation-oriented models, such as dataflow models, can be included to complement the FSMs. Using *charts, systems can truly be built up from modular components that are separately designed, and each subsystem can be designed using the best suited model to it.