Skip to content

mkromberg/vending

Repository files navigation

vending

Vending Machine Demo for FunctionalConf'18 Workshop

Acme Works just contracted you to design and build a set of coffee machines for their work place. There are mechanical designers taking care of all the mechanical parts of the machines. You are responsible for the machine's controlling software.

Acme's requirements are very simple. They want to sell coffee, with or without cream powder and sugar, for $0.35. The front panel will have 4 buttons, for Black, Cream, Sugar, Cream&Sugar. There will also be a Coin Return button. The machine will take coins of values 5c, 10c, 15c, 50c and 1$ only, and give change.

Any other displays are up to you to decide on and design. There will be dispensers that can dispense a fixed amount of: cup, hot water, coffee powder, cream powder, sugar. You and the member of marketing who will be visiting your team can negotiate any other requirements you feel you need resolved.

The basic operations that your machine should be able to perform are (1) accept money (2) accept coffee selection (3) provide coffee (4) return change (5) allow refill of dispensers (6) handle boundary conditions such as insufficient money or material. You may add any other aspects of your own.

Ignored text from original spec

Acme has heard so much about this "object oriented" software stuff and all its benefits, that they want the controller designed using OO techniques. It can be implemented in C++, Java, Smalltalk, or even assembler or CLOS for all they cares. However, this is a simple problem, so they expects the job done fast. Since this is your team's first problem, they'll give you 45 mins to sort out your requirements, design process, argue and explain the design. You can use interaction diagram, collaboration diagram or any other technique showing how the machine operates.

About

Vending Machine Demo for FunctionalConf'18 Workshop

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages