Problem 1 (30 points)
Assume the following requirements: "Design the software for the following vending machine. The vending machine must take coins and/or bills and dispense items that the user pushes buttons to select. The vending machine validates the money and displays the current total in the display window. The customer pushes a button which tells an item dispenser to dispense an item. If the customer has entered enough money for the item the vending machine will dispense the item and any change. The item dispensers must track the number of items in them and e-mail the supplier for the item to let the supplier know that they need more of that type of item when the number of items reaches a reorder level. The vending machine must know its location, and model number. There are two kinds of items. Items that need to be kept cold and those that don't. All items know their price. Cold items also know what temperature they need to be kept at."
(i) Draw a class diagram for the vending machine; identify the semantic relationships and cardinalities.
(ii) Draw the sequence diagram corresponding to a user buying item from the machine (normal flow).
(iii) Draw the state transition diagram for the vending machine.
Problem 2 (20 points)
Given the following UML write the corresponding Java code.
Problem 3 (30 points)
Important: Don't forget to re-read the syllabus to make sure you understand all the deliverables for assignments in this class, including this one.