Software design methods for concurrent and real-time systems
This tutorial surveys the state of the art in software design methods for concurrent and real-time systems. The important concepts of concurrent tasking, fundamental to the design of this class of system, information hiding, fundamental to the design of modifiable and reusable components, finite state machines, for addressing the behavioral aspects of a system, and object-oriented concepts, for the systematic adaptation of components, are introduced. Several design methods for concurrent and real-time systems are presented and compared. The design of distributed applications will also be addressed. The tutorial is illustrated by means of several examples. The tutorial will also discuss the industrial and academic courses that can be given based on this material.