- Maszyna zawiera produkty,
- Produkty mogą być różnych typów (np. napój Cola 0.25l, batonik czekoladowy, woda mineralna 0.33l, itd.)
- Produkty są ułożone na półkach,
- Na jednej półce może być ułożony tylko jeden typ produktu,
- Każdy typ produktu ma określoną cenę,
- Maszyna posiada wyświetlacz,
- Jeżeli wybierzemy numer półki na wyświetlaczu pojawia się cena produktu,
- Produkty można kupić wrzucając do automatu monety (nominały: 5, 2, 1, 0.5, 0.2, 0.1),
- Wrzucając kolejne monety na wyświetlaczu aktualizuje się kwota która należy jeszcze wrzucić,
- Jeżeli wybierzemy numer półki i wrzucimy odpowiednią kwotę to otrzymuje produkt i resztę,
- Jeżeli nie wrzucimy odpowiedniej kwoty musimy wcisnąć “Anuluj”, żeby odtrzymać pieniądze z powrotem,
- Jeżeli maszyna nie może wydać reszty wyświetla komunikat i zwraca wrzucone monety,
- Przy wydawaniu reszty maszyna może korzystać tylko z monet które posiada (nie drukujemy pieniędzy ;) )
Podpowiedzi nazw dla klas: VendingMachine, Slot/Shelf, Display, Product/ProductInstance, ProductClass/ProductType, Price, PriceList, Coin, CoinDispenser, Storage, ProductDispenser.