Coordination design expresses the function of a parallel software system in terms of interacting software components that execute simultaneously, exchanging data as the processing progresses. This data exchange is performed by programming language constructions that follow various communication structures, depending on the architectural pattern selected for the coordination and the type of communication and data exchanged. Information contained in the Specification of the System is therefore required.
Information about the type of coordination structure from the coordination design stage is combined with information about the parallel hardware platform (taking the operating system and any middleware into consideration) and the available parallel programming language, to design the communication components. These communication components, with the processing components, compose the coordination of the parallel software system. Nevertheless, they have different purposes:
Processing components perform transformations or operations on data, and thus are developed as software components that encapsulate a particular function.
Communication components allow communication between the processing components.
Communication design - the design of the communication components - is the third step of the design method, following coordination design, as shown in Figure 7.15. The objective of the communication design step is to document the structure ...