next up previous
Next: Abstraction Up: Environment and Interfaces Previous: Environment and Interfaces

Input and Output Actions

There are two kinds of interactions between an environment and a system: either the environment might do something to the system to cause a state change (or obtain information about its current state) or the system might do something (or produce something of interest) to the environment and cause a change in the environment. In the light switch example, you can flick the light. That is the only action you can do to the light. In the red and blue light example, there are two things you can do: pressR and pressB. On the other hand, consider a digital clock that displays the time in hours and minutes. Every time a minute passes, the clock's display changes; you can observe each of those state transitions. (Aside: The clock is an example of why one might prefer a state-based view of a trace; we could argue that what we really observe is the clock's state (the display), not the state transitions.)

One way to model this dichotomy of actions is to separate the set of actions into a set of input actions and a set of output actions. Intuitively, input actions correspond to those things the environment does to the system (like pressing buttons and flicking switches); output actions correspond to those things the system does to the environment (like an ATM handing out cash or a vending machine dispensing candy).

Norman Papernick
Mon Mar 18 13:45:16 EST 1996