Supermarket Class : private boolean newCustomer(){ double x = newArrival.nextDouble(); return (x < ARRIVAL_PROBABILITY); -> method responsible for a arriving a customer at a random time. boolean newCheckOutNeeded = true; for (CheckOut co: checkOuts) if(co.getQueueSize() < MAX_QUEUE_SIZE) newCheckOutNeeded = false; -> boolean method that check the size of the current queue and if it's needed it will open a new checkout Customer class : numberOfItems = (int)(rndm.nextGaussian()*STD_DEVN_NUMBER_OF_ITEMS) + MEAN_NUMBER_OF_ITEMS; processingTime = numberOfItems * TIME_PER_ITEM; -> Gaussian Generator which is being used to generate random number of items. Checkout class :