Intermediate supervisory components manage groups of components, but are in turn managed by more centralized supervisors. Taking a hierarchical approach hits the worst aspects of full centralization or full decentralization only when they unavoidable due to the nature of the particular supervisory problem at hand. Design Steps Organize monitoring and control facilities into hierarchically partitioned domains. When possible, match this partitioning to Configuration strategies so that control domains mirror the implementation-level decomposition of the system. For each, define a Supervisor that interacts with and manage states of components under its domain.
Supervisors are special kinds of state machines .
Inputs represent changes in status of components, obtained using an agreed upon notification Protocol . Transitions represent the necessary or best consequence of a component state change, reflecting policies and constraints among allowed choices of states and modes. Outputs on transitions are commands that actually alter the states of components, construct and initialize new components, and resume or suspend modes of operation. When appropriate, tie inputs and outputs to user interfaces, accepting inputs from pilots as well as internal components, and channeling outputs to status displays. For example, the top-most supervisor components must turn on the ACS as a whole when so instructed.