Fill This Form To Receive Instant Help

Help in Homework
trustpilot ratings
google ratings


Homework answers / question archive / Assignment 1 Description In this assignment, you will implement an application that controls a “Fully Automatic Beverage Vending Machine”

Assignment 1 Description In this assignment, you will implement an application that controls a “Fully Automatic Beverage Vending Machine”

Computer Science

Assignment 1

  1. Description

In this assignment, you will implement an application that controls a “Fully Automatic Beverage Vending Machine”. You are responsible to implement the controller software of this machine. The software should be able to control the brew process of different coffee and tea beverages.

 

The machine should be able to:

  • brew Coffee sorts of Espresso, Americano, Latte Macchiato, and
  • make Tea sorts of Black Tea, Green Tee and Yellow Tea.

 

As an additional requirement, the coffee machine should be able to add condiments like milk and sugar to the hot beverage. Users of the machine should be able to select between zero to 3 units of milk or sugar to add. More than 3 units is not allowed.

 

Note:

  • There is no need to implement a graphical user interface (GUI). Implement Unit Tests to show functionality of your implementation.
  • Calculate the final price of the hot beverage from a set of base prices, like hot coffee 2 USD

 

    1. Implementation Details

The described application scenario can be implemented in different ways and there is not only one single correct implementation for the above application scenario. Software developers might consider different assumptions and design the software based on them.

 

In this assignment you (as a software developer) are free to have your own detail assumptions and implement it in your own way.

 

You should document your assumptions very well in your README.md file of your assignment and consider them in your UML diagrams.

 

As an additional requirement, the coffee machine should be able to add Condiments like milk and sugar to to the hot beverage. Users should be able to select between zero to 3 units of milk or sugar to add to their hot beverage. The system does not permit to add more than 3 units of each in each drink in total (max 6 unit, 3 sugar and 3 milk).

 

Important Note: You should implement Junit Tests to illustrate and test user interactions with the system. You should NOT write user interfaces or command line user interactions. You should implement sequences of user interactions in a Junit tests. You can find an example of it here.

 

 

  1. Tasks
    1. Task 1 - Implementation Description

Provide a description of how you would implement this application considering software design principles. Describe what are your main software design concepts regarding this application.

 

For example, describe:

  • How flexible is your implementation, e.g., how you add or remove in future new drink types?
  • How is the simplicity and understandability of your implementation?
  • How you avoided duplicated code?

 

In case that you have used any design patterns, describe which design pattern you have applied and why.

 

Write your description in a README.md file, use Markdown format https://spec.commonmark.org/current/ and add the README.md file to the root folder of your project.

 

We recommend writing this description after you finished the other tasks in this assignment.

 

 

    1. Task 2 - UML Class Diagram

Create a class model for your application, containing 5-8 of the most important classes. It should encompass the functionality of the use case application described above. Show only non-obvious and key methods.

 

    1. Task 3 - Implement your solution in Java
  • Provide a zip file that includes your implementation package.

The zip file should include a README.md file that describes how to compile and run your implementation. Create a Zip file from the root of your working directory so that it includes all subdirectories of your project. Remove the binary files before creating the zip files.

  • Your zip file should not be larger than 10MB, include only source files of your project but not the binaries that you generated.
  • Document your code very well. The best way to write documentation inside your code is to write the code while you are implementing the project and not postpone it to later time.
  • Each class should have a description before the implementation
  • You should use the Google Java Style Guide (https://google.github.io/styleguide/javaguide.html)
  • We should be able to compile your solution using “mvn compile” command.
  • You should implement JUnit tests for your implementation.

Option 1

Low Cost Option
Download this past answer in few clicks

22.99 USD

PURCHASE SOLUTION

Already member?


Option 2

Custom new solution created by our subject matter experts

GET A QUOTE