Concurrent programming is one of the most difficult programming paradigms; in consequence, innovative methods and practical aids are necessary for a successful instruction. This paper presents a methodology for monitor development by joint use of stepwise refinement and monitor schemes. A monitor is developed in three stages, each one successively dealing with a different part of its specification, namely data abstraction specification, security properties and liveness/priority properties. Guidance is also obtained from some schemes for different parts of a monitor. The methodology is applied to two well known problems, the producer-consumer problem and the dining philosophers problem.
/lp/association-for-computing-machinery/a-methodology-for-monitor-development-in-concurrent-programs-9Ya6NY5oaE