Create a uml diagram describing these classes

Assignment Help Software Engineering
Reference no: EM133684869

Professional Software Development

Assignment - Design and implement Café++ using the design patterns

You will design, using UML diagrams, and implement, in C++, the described solution. In lectures, we have started discussing design patterns using a computer controlled café, Café++, as our motivating example. In this assessment, you will combine several of these design patterns to yield a proof-of-concept for Café++. (Note: This is assumed to be a command-line application; you do not need to nor are you expected to create a graphical user interface for this assessment.)

Let the following passage describe the desired functionality:

A Patron enters the café. (The Patron is the one interacting with the system, that is, entering data at the command line. That said, it may be helpful for there to be a Patron class in order to distinguish between/save data for multiple users...) The Patron "talks to" the Host - a Façade that presents the user interface and manages interaction between the Patron and the rest of the system. Once the Patron has given their Food and Drink Orders (either, but not both, of which may be empty) to the Host, the Host gives the Orders to the Manager - a Mediator that facilitates communication between the Host, the FoodMaker, and the CoffeeMaker. (At this point, the only Food items are pre-packaged and the only Drink items are Coffees, but your design should make it possible to add different menu items without too much trouble...) Once the FoodMaker or CoffeeMaker has finished making something, they should tell the Manager. Once the whole order is complete, the Manager should tell the Host. The Host then calls the Patron's name and "gives" them their Food and/or Drink items. This concludes the transaction. (Any issues not specifically identified here are not mandatory. For example, you don't have to worry about how the Patron will pay for their Order.)

You may assume (for now) that all Food items are pre-packaged; for your purposes, that means there is no customization (Decorating, subclassing, etc.) required. A Food is just a candy bar, or a bag of crisps, or whatever. You may also assume (for now) that all Drink items are Coffees. A Coffee can be a BlackCoffee or a WhiteCoffee. Each Coffee can be modified to contain any (positive integer) number of sugars.

Therefore, you will need (at minimum) the following classes:
- Host (which implements the Façade pattern)
- Manager (which implements the Mediator pattern)
- FoodMaker (which implements an appropriate creational pattern)
- CoffeeMaker (which implements an appropriate creational pattern)
- Order (a collection of Food and/or Drink items)
- Food
- Drink
o Coffee
- BlackCoffee
- WhiteCoffee

Part I: Create a UML diagram describing these classes and their interactions

Create a UML diagram describing these classes and their interactions. You may use any tool to create this diagram, including drawing it by hand and scanning it. (But please make it easy to read.)

Part II: Implement in C++ code the design you created in Part I

Write C++ code to implement your design. Your design should follow good C++ practices you should separate interfaces and implementations, each class should be in a separate file, and so on.

Part III: Extend your design with at least one meaningful addition

For this part, you are to extend your design with at least one substantial bit of additional functionality. You may choose from the following list, or you may propose something that is interesting to you (but please check with your instructor first):
- Add more customization options to Coffees (at least two) - for example, enabling the Patron to choose different types of milk in a WhiteCoffee, or enabling the Patron to order different types of WhiteCoffee (Latte, Cappuccino, Flat White, etc.)
- Add a different hierarchy of Food or Drink - for example, perhaps now Café++ sells Sandwiches or Tea (either of which would have their own customization options...)
- Enable the Patron to make their Order HaveHere or Takeaway.
- Make the Patron pay for their Order (this would involve adding a cost associated with each menu item and modification, and perhaps having different Cash or Credit payment options...)

Modify your UML diagram and modify your C++ code accordingly.

Part IV: Reflect upon and document your experience

Write a short document containing, at the very least, what change(s) you made in Part III and how you did so. Other topics you might reflect on:
- Your experience with the initial design and implementation
- Your experience "extending" the initial design, in particular whether you think it was made easier or harder by your design choices in Part I and Part II
- What aspects of this project were particularly difficult?
- What aspects of this project were particularly rewarding?
- What, if anything, did you learn from undertaking this project?

In the end, you will submit a zip file containing:
- Two UML diagrams (Part I and Part III)
- Two zip files, each containing the C++ files for a complete version of your code (Part II and Part III)
- One document (Part IV)

Reference no: EM133684869

Questions Cloud

Options for australian permanent residence : Luke has contacted your office seeking advice in relation to his options for Australian permanent residence. He has the support of his employer.
What was the principle issue in the legal dispute : What was the principle issue in the legal dispute? This should surround the legal issue at the heart of the lawsuit, and may include the essential facts of the
What do you suggest that the organization do in relationship : Your suggested response: What is your suggested response here? What do you suggest that the organization do in relationship to this change?
Define excess capacity : Define excess capacity Describe the relationship between the re-insurer and the policy holder in sea law/cargo.
Create a uml diagram describing these classes : CSE5008 Professional Software Development, La Trobe University - Create a UML diagram describing these classes and their interactions. You may use any tool
Prior involvement in case for another employer : What is the ethical responsibility of a paralegal who has a conflict of interest because of prior involvement in a case for another employer?
What is the purpose of the restatements : What is the purpose of the Restatements? Do you think the Restatements are even necessary any more?
Calculate firms aggregate indebtedness to net capital ratio : Calculate the firm's aggregate indebtedness to net capital ratio. Calculate the firm's highly liquid assets to total liabilities ratio.
Why is jargon in legal communications harmful : Explain what Siegel says is his focus. Why is jargon in legal communications harmful?

Reviews

len3684869

4/29/2024 11:17:44 PM

Could you guys please help me to complete this assessement ? and send it back to me

Write a Review

Software Engineering Questions & Answers

  Java examples to validate input

Create an algorithm that prompts the user to enter a secret word. The secret word should be at least eight characters long. Validate the input.

  Write down main ideas behind relational model

Write down the main ideas behind relational model? Why are they an improvement over what came before? In what ways is the relational model restrictive?

  Identification of a software development process

Imagine you are a team leader in a large software development organization and you want to improve a software development process (of your choosing) through the use of a CASE tool.

  Create data flow diagram about process

Create a data flow diagram about the process. When John received orders from the sales department, he would pick the items from the warehouse to fill up the order.

  Comprise a discussion of the information-gathering methods

write a 1400- to 2100-word paper that analyzes a work-related project using systems analysis for a selected business

  Discuss how to obtain evidence from the digital device

Discuss how to obtain evidence from the digital device. You will be told which digital device you must research

  Every part of the program is tested

What is the minimum number of tests required to make sure that every part of the program is tested?

  How to indicate the grasp pattern with the same

Further she updates the details and save it. How do draw domain model and sequence diagram? How to indicate the grasp pattern with the same?

  Assuming next period estimated sales

Assuming next period's estimated sales are 240 units and that 240 units is within the relevant range, calculate the following amounts:

  What is a software

What is a Software ? a) Software is set of programs.

  How does each relate to the ptop process presented

Select three application control plans presented. How does each relate to the PtoP process presented in given Figure?

  Design e-r diagram to review hospital documents

Design an E-R diagram for the following situations. From discussions with hospital staff, reviewing hospital documents and studying existing information systems, study team developed list of business rules

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd