Component-Level Design

This chapter continues with the design process discussed in the previous chapter, translating the system-level design into the individual software components that makes up the final system. It focuses on the actual implementation of the software that is used to design the state machines, timing controls, and priority handler, as well as define the variables used for communications. The job at the component level of design is to determine the type of state machine, the states that are required, the various conditions that changes the state, and the communications that state machine needs to operate in the final system. The three types of state machine explained are: data indexed, execution indexed, and hybrid— the execution indexed is typically the most common. Data-indexed state machines execute the same block of code each time they are called, and it is the data operated on by the block of code that changes from call to call. This means that the state variable in a data-indexed state machine is responsible for indexing the data to be operated on. The individual variables of the various pathways are also defined and any final decisions concerning the operation of the protocols used for each pathway are made.