-The model that we will consider, is a very well - -2
-known one. Which is finite state machines. And you might have - -3
-seen them before. At a high level, a state machine is - -4
-a graph in which nodes represent states of the system. For - -5
-example, in this case, state 1, state 2, and state 3. - -6
-Edges represent transitions between states. For instance, in this case we - -7
-have one edge from state 1, to state 2. That means - -8
-that the system can go from state 1, to state 2. - -9
-And finally, the labels on the edges represent events - -10
-and actions. For example, what this label means is that - -11
-the system goes from state three to state two - -12
-when event five occurs. And when going from state three - -13
-to state two, it generates action four. And does - -14
-reacher model, sir reacher's kind of state machines, but we're - -15
-just going to stick to this ones which are enough. For - -16
-our purpose. So how do we build such a final - -17
-state machine starting from a specification? The first thing - -18
-we need to do is to identify the system's boundaries - -19
-and the input and output to the system. Once we - -20
-have done that, we can identify, within the boundaries of - -21
-the system, the relevant states and transitions. So we split - -22
-this single state We'll refine it into several states. And - -23
-we also identify how the system can go from one - -24
-state to another. Including which inputs cause which transition, and - -25
-which result in outputs we can obtain. To - -26
-better illustrate that, let's look at a concrete example. -- cgit 1.4.1