Objectives Writing communication software becomes very important with the growing network market.
Writing good communication software represents a challenge to overcome the software engineering problems and the problems concerning network protocols and distributed systems. The life cycle of a communication program and especially its testing becomes more complicating due to the non deterministic behavior of the underlying network and of the interacting computing systems. Furthermore, the communicating programs should be able to use common types of data structures in spite of the separate address spaces. Remote procedure calls are studied in the context of the client-server model and the generation of distributed programs. Throughout the course special attention is given to software engineering aspects in designing communication protocols.