Fill This Form To Receive Instant Help

Help in Homework
trustpilot ratings
google ratings


Homework answers / question archive / Assignment 3 Description A company has different types of customers, like Business, Returning, Frequent, New and VIP

Assignment 3 Description A company has different types of customers, like Business, Returning, Frequent, New and VIP

Computer Science

Assignment 3

  1. Description

A company has different types of customers, like Business, Returning, Frequent, New and VIP. The management of the company needs to send customer specific emails to their customers. They would need to have an application that generates emails from a base template for different types of customers.

In this assignment, you will implement this “E-Mail Generation” Application for email auto generation based on specific customer types.

 

    1. Implementation Details

Your implementation should include the following functionalities:

  • Provided classes for customers of different types.
  • Provide a test that illustrate how your “E-Mail Generation” Application and generates different email text for each different customer type.
  • For test purpose, generate at least one object of each customer type

 

Note: In this assignment, you should apply “at least one” of the design patterns out of Observer Pattern, Strategy Pattern, Factory Method Pattern, Abstract Factory Method Pattern, Singleton Pattern, Decorator Pattern, State Pattern, Façade Pattern, Adaptor Pattern, Proxy Pattern.

We do not mention which one of the design patterns is suitable for this scenario. This would be your task as a software engineer to find it out.

 

Note: The given application scenario can be implemented in different ways and with different implementation details. There is not only one single correct design and implementation for the above application scenario. Each software developer might consider different assumptions and design the software based on them. In this assignment you are free to have your own detail assumptions and implement the details in your own way based on your own ideas. You should document your assumptions very well in your README.md file of your project and consider them in your UML diagrams.

 

  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.

 

Describe which design pattern you have applied and why.

 

Write your description in a README.md file, using Mark

 

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

  • 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?
    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