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

  Research report on software design

Write a Research Report on software design and answer diffrent type of questions related to design. Report contain diffrent basic questions related to software design.

  A case study in c to java conversion and extensibility

A Case Study in C to Java Conversion and Extensibility

  Create a structural model

Structural modeling is a different view of the same system that you analyzed from a functional perspective. This model shows how data is organized within the system.

  Write an report on a significant software security

Write an report on a significant software security

  Development of a small software system

Analysis, design and development of a small software system.

  Systems analysis and design requirements

Systems Analysis and Design requirements

  Create a complete limited entry decision table

Create a complete limited entry decision table

  Explain flow boundaries map

Explain flow boundaries map the dfd into a software architecture using transform mapping.

  Frame diagrams

Prepare a frame diagram for the software systems.

  Identified systems and elements of the sap system

Identify computing devices, which could be used to support Your Improved Process

  Design a wireframe prototype

Design a wireframe prototype to meet the needs of the personas and requirements.

  Explain the characteristics of visual studio 2005

Explain the characteristics of Visual Studio 2005.

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