UML Modeling

Use-Case Diagram

The assignment was as follows: Create a use-case diagram for the following challenge: “You have been tasked to create your own concept for your ideal dream restaurant. This could be a fast food establishment, fine dining, delivery service, or a new never-before-seen vision that will take the restaurant industry by storm. Use this diagram to explain who the users are (employees, patrons, management) and what interactions your restaurant provides.”

A use-case diagram shows interactions between a system and its users (called “actors”). It is intended to “map out” what interactions a user would have with the system, as well as any included or extended interactions. A use-case diagram can be very helpful when designing as you can fully flush out any ideas and interactions before even building anything.

My concept restaurant is a fast food/casual dining restaurant that integrates AI technology as seamlessly as possible, while not overdoing it. The idea is for all typical food ordering interactions to be done via a mobile app/web page. Food delivery services like DoorDash prove that customers are both willing and able to order what they want on an app, so bringing that same technology in-house would only make the food fresher and make the traditional dining experience without interruption.

The actors in this use-case diagram are the managers, the employees, the patrons, and the delivery bots. The employees will have multifaceted roles, both cooking and plating the meals, and cleaning the restaurant, during sales periods and pre-opening and post-closing. The Managers will oversee operations, ensuring customers are satisfied and solving any customer issues, as well as ensuring the restaurant and all employees are up to health code standards. The patrons will mainly interact with the seating, restrooms, and mobile app, through which all ordering is done. In the instance of a customer not wanting to use the mobile app to order, or the app not working, the manager can step in and take their order. The patron can also pay for their food and review/rate dishes on the app, to help the AI give recommendations to other patrons. There is also a food delivery bot, which is created to deliver food and retrieve empty dishes. In the case of a malfunctioning bot or a busy restaurant, the manager can assist with delivering food and retrieving empty dishes.

Sequence Diagram

The assignment was as follows: Create a sequence diagram for the following challenge: “You have been tasked to create your own concept for a new ideal dream restaurant. Using your concept depicted in Part 1 of this assignment, explain the sequence of events that must occur within your restaurant for a patron to receive food after ordering. Make sure to include all potential actors that will be involved, whether they be human or machine.”

A sequence diagram shows a timeline of events between the actors and the system. The purpose is to help plan how information flows, from who, to where, and what is involved.

After being seated, the patron can open the restaurant app or webpage. The app then retrieves the app info from the server, which then displays the menu options for the patron. After reading the menu the patron can order food through the app, which then sends the order to the kitchen. The kitchen staff then makes the order and gives it to the delivery bot, which then delivers the food to the patron.

Activity Diagram

The assignment was as follows: Create an activity diagram for the following challenge: “You are hungry and trying to decide what to eat on a Friday night. Show all of the decisions that you make with yourself or with your friends/family that determine where/what you will eat on any given occasion. Make sure this is a thorough reflection of how you choose who to eat with, what type of food to eat, how much money to spend, and if you cook or go out to eat. This diagram should have a web of decisions that are made, one after another.”

An activity diagram is a chart which helps define the decision making process for any given thing, based on as many criteria as possible. Each decision may either lead into another decision or the final decision, up to the user.

Upon realizing I am hungry, I have to decide if I want to go somewhere or if I want to eat at home. If I go somewhere, I have to decide if I want to sit down or if I want to go through a drive through. If I sit down, I choose between going alone or with friends. If I go with friends, then Zinburger. If I go alone, then McDonald’s. If I eat at home, I have to decide if I want to order in or cook. If I cook, then chicken and rice. If I order in, I make the same decision as a drive thru: somewhere good for the body or for the soul (is it explicitly tasty or healthy?). If I choose something good for the soul, then Salad and Go. If I want something good for the soul, then Raising Cane’s.

UML diagrams are very helpful and convenient models to start with even before prototyping. They are a useful tool to assure all possibilities are thought of and being met, as well as assuming any rainy day circumstances. Now that I have some experience with UML modeling, I believe I will actually incorporate this into my decision making, as I can weigh my options easier when they are presented fully and concisely. The process overall was pretty easy, so long as I consider every different angle. This does make the process of learning how to automate designs seem less daunting and tedious, as I will have everything laid out for me ahead of time. I can also use these models when it comes to career opportunities, moving opportunities, or any big important life choices. It is important for engineers to model these interactions with users so are less likely to be surprised in a rainy day scenario or if something isn’t working the way they intended it to. They can also be used as a referential model to look back at to streamline the creative process.