In this course, I was responsible for the design (in UML)
and implementation (in Java) of a series of vending machine prototypes with a
special emphasis on code reusability. In addition to the basic requirements, I
ported these projects to the Java 2 Micro Edition for embedded platforms and
rewrote the interfaces to run on the Palm OS platform. The Applets increased in
complexity with the goal of encouraging us to use proper design techniques on
the first applets, so we didn't have to entirely rewrite the following
ones.
The three main applets in running condition. Each applet
also features its UML development diagrams, which include the Use Case
Diagrams, Class Diagrams, normal and abnormal Scenarios, and Sequence Diagrams.
Specifications and brief instructions for using the machines are also
included.
The Disposable Vending Machine was the first of the applets. It
initializes with 5 of each of the three products. Simply insert money, and make
a selection. When the selections are up, The Disposable Vending machine can be
"thrown away."
The
Refillable Vending Machine is an extension to the Disposable
Vending machine. This machine starts out in "Service Mode" and the service
person who initializes it is responsible for adding products and change. Later,
the service person can come and change products and money deposits as
necessary.
The Lotto Vending
Machine is the final vending machine of the group. The Lotto Machine only
sells one product, a lottery ticket that can be bought with up to five chances
per ticket.
Finally, I have included a page on my extra-curricular
efforts to port these applets to the Palm OS platform. You will find a
description of what changes I had to make, what software I used, and where I
found the things I needed. This page does not have a running applet like the
others, but you there is a screen-shot of the Palm Emulator running a modified
applet.