Parallel and distributed systems engineers are always looking for a way to speed-up their programs. They sometimes forget that well-structured programs are more flexible, and therefore easier to modify or restructure in order to improve performance or to map onto a particular architecture. This paper illustrates a systematic way of designing well-structured parallel and distributed programs. The method is based on SASD, one of the most popular methods for the analysis and design of sequential systems, and CSP, a formalism for specifying the behaviour of communicating systems. The influence of SASD is evident in the way diagrams are used during the various phases of the development. CSP allows us to formally verify and transform the programs. The main feature of our method is the ability to reuse behavioural specifications, the way the components synchronise and communicate, and provide rules to verify and transform the design structure.
Index Terms:
parallel programming; software performance evaluation; communicating sequential processes; diagrams; program verification; formal specification; constructive design; distributed programs; parallel programs; distributed systems engineers; well-structured programs; performance; SASD; sequential systems; CSP; communicating systems; specification; diagrams; formal verification; behavioural specifications
Citation:
G.R.R. Justo, "A rigorous method for the constructive design of parallel and distributed programs," hicss, pp.319, 28th Hawaii International Conference on System Sciences (HICSS'95), 1995