However, these projects do not employ inheritance and are not written to encompass the large-scale programs we would like students to use as part of the AAA project. The bank simulation will serve as an introduction to discrete event simulation and a lead-in to the more complex elevator simulation. Alternatively, the simulation can be a stand-alone lab or programming assignment depending on how much students are asked to design and code. T he classes and class-hierarchies used in the simulations are more complex than is typically found in textbooks. In our use, a graphical observer shows an animated view of a discrete event simulation while a file observer records the history of the simulation as a sequence of textual event descriptions.
Observers inherit a common interface from an abstract base class.
Because each object in the simulation notify all its observers, it is possible to have several observers at once. Banking Simulation T he snapshot of the banking simulation below shows a four-server, single queue simulation. We envision the banking simulation used to introduce the concept of simulation without requiring students to implement queues, for example. However, instructors may choose to bypass the elevator simulation because of the complexity of the class hierarchy. Our module makes simplifying assumptions about elevator behavior to focus more on program and class design in addition to elevator control.