SWEN-440

Class Activity: Fix the System at Peak Load

Overview

You'll build a simple waiting-line system, watch it get overwhelmed under realistic load, and then redesign it to hit a service-level target — at the lowest cost.

Simulator: simulations4all.com/simulations/queue-process-flow-simulator (opens in a new tab — keep this activity page open alongside it)

Part 1: Build the Starting System

The simulator opens with a sample "Bank Branch" layout already loaded. Clear it out and build the simple pipeline we'll start from: Source → Queue → Server → Sink.

1Clear the canvas.

Click the trash-can icon at the bottom of the left-hand component palette to clear the preset and start from a blank canvas.

Blank simulator canvas after clearing the preset, with the component palette on the left (Source, Queue, Server, Exit, Router, Merge) and the Play/Pause/Reset/Speed controls at the top.
2Drag four components onto the canvas.

From the palette on the left, drag one each of Source (green), Queue (orange), Server (blue), and Exit (purple) onto the grid, left to right, in that order.

Four components dropped on the canvas in a row: Source 1, Queue 2, Server 3, Sink 4, not yet connected.
3Wire them together.

Hold Shift and drag from one node to the next to connect them: Source → Queue → Server → Sink. (Double-click a node to delete it if you need to start a connection over.)

The four components connected in sequence with arrows: Source 1 to Queue 2 to Server 3 to Sink 4.
Tip: the node colors match the palette icons — green is always a Source, orange a Queue, blue a Server, purple a Sink/Exit — which makes a finished diagram easy to read at a glance.

Part 2: Set the Starting Numbers

Click a node to select it and open its Properties panel at the bottom of the simulator.

4Click the Source node and set its Arrival Rate to 50 per hour. Leave the distribution set to Exponential.
Source properties panel showing Name: Source 1, Arrival Rate (per hour): 50, Distribution: Exponential.
5Click the Server node and confirm it's still at the defaults: Service Rate 12/hr, Number of Servers 1 — this is the "1 small server, 12/hr" starting point.
Server properties panel showing Name: Server 3, Service Rate (per hour): 12, Number of Servers: 1, Distribution: Exponential.
Before you change anything else — run it. Drag the Speed slider (top of the simulator) up to around 100x, click Play, and let it run for a while (the equivalent of 1,000+ simulated minutes), then click Pause. Watch what happens to the line.

What Happened?

With one small server at 12/hr trying to keep up with 50 arrivals/hr, the queue backs up and keeps growing — it never reaches a steady state. Here's what that run looked like:

Simulator canvas mid-run: dozens of entities backed up in the queue in front of the single server. Live Statistics panel showing average wait climbing to nearly 28 minutes, far above the 5-minute goal, with queue length still rising. Node Statistics panel for the server showing utilization around 86%, with arrivals consistently outpacing departures.

The server is already running near its limit, and the wait time is nowhere close to acceptable. That's your starting point — now redesign it.

Price List

ComponentService Rate (per hour)Cost
Server, small12$10
Server, medium24$25
Server, large36$45
Server, XL75$120
Queue—$2
Router—$5
Rules:
  • Every server counts, including extras added with "Number of Servers."
  • Service rates must match a size in the table above.
  • Source and Sink are free.

Bigger servers cost more per request served. Is the simplest design worth it?

Your Goal

  • Average wait: under 5 minutes
  • Every server: 60–70% busy
  • Then: lowest total cost wins

You may add and rearrange components freely, choosing server sizes from the price list above.

Report Back

  • Your design (sketch it)
  • Average and max wait
  • Each server's utilization
  • Total cost