The Stanford Rapide Project

RAPIDE

Teaching Examples

The following examples teach different aspects of how to use the Rapide toolset and language.

Transaction Processing Case Study
This example focusses on Rapide's unique support for architectural and causal requirements specification. The example features Rapide's analysis capabilities including animation and constraint checking.
Dining Philosopers
This is a Rapide model of the classic resource allocation problem of the Dining Philosphers due to Dijkstra. In our model, diners1.rpd, there are two types of components, a type of round table at which a number of philosophers can sit, and a type of philosopher.
A Gas Station
Customers enter a self-service gas station and prepay an operator for gas. They then walk to a pump, turn the pump on, pump gas, turn the pump off (or the pump turns itself off) and finally they collect change from the operator. The operator can accept prepays one at a time, stacking them in their arrival order, before the customers have pumped gas. The operator activates the pump whenever it is free and a customer is waiting. The pump can service one customer at a time, whenever it is free and is activated. There is a potential race condition when customers walk from the operator to the pump, whereby customers may pump in a different order from their prepayments.
Networks
This set of examples explores simple variants of a network model, moving us from a simple network (consisting of a fixed set of workstations and firewalls on a fixed set of LANs, connected by means of a WAN) to a richer model where the topology of the network is determined at runtime, and where there is an abstraction from the basic model to one of a federated network consisting of *enclaves* (the local networks with their units) connected by a WAN.

7/29/97/lp