The Stanford Rapide Project
|
|
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