Consider this problem for this exercise:
You are assigned to write a software program that tells a vending machine how to make proper change from the bills or coins the customer inserts. The program needs to deliver the smallest possible amount of coins for each transaction.
Present the problem as an object-oriented analysis to identify the key objects in the problem. Each object needs to be represented as data and behaviors.