Additional research and assumptions
System modelling helps in determining the proper design of systems and helps in generating effective models that could be used by the developers for implementing any new solution. The system analysis and design start with the analysis of the existing system for determining the issues and then developing proper solutions as the new system which would be used in the organisation. This report aims to provide the discussion on modelling and system models for the new system being developed at FeedMeNow. The FeedMeNow is the online company who provides proper services of food delivery, connecting the restaurants, with the individuals. The FeedMeNow would be delivered to the customers in the form of website or even in the form of the mobile application. The discussion of all the research done and assumptions made are being discussed briefly in this report. The proper system models are being discussed in this report. FeedMeNow would provide the restaurants with the required platform for providing the customers with the facility of home delivery instead of just take-away of food or dining in the restaurants. The organisation is planning to introduce an app and a website for the users for easily placing their orders and have the orders home delivered to their home.
The app of FeedMeNow is providing the vast selection of restaurants from which orders could be easily placed and have them home delivered to the location of the users. The users could easily placed the orders from the registered restaurants and it would be delivered by the delivery agent of the organisation.
The app would include proper search feature, where any user could easily find a huge number of restaurants in their preferred location. It would be easily to register by food industry in being displayed on list of the restaurant.
When the users would click on the search button, the proper list of the restaurants would be displayed to the users that are available. The users would also be provided with the feature of searching the food dish names in the app which would return the dish available in the various restaurants.
The FeedMeNow app would also provide the additional feature of ordering food in advance by setting proper delivery time. For example, if the users are working in any office and mobile phones could not be used for ordering food, but the customers have already placed an order earlier and scheduled the delivery during the office hours, the food would be delivered to the customers in the scheduled time.
The app would also include the feature of geolocation. The users might desire to have the idea about the complete process update every now plus then. The live tracking system would assist the users in knowing the time of the order, preparation of the food as well as food that would be delivered to the customers. The users would also be provided with the facility of tracking the real-time updated location of delivery person and it would display the predicted time for the delivery agent to reach the location.
Class diagram
The FeedMeNow app would also include the rating system. The rating is being considered as the crucial feature of the online delivery apps and website. People commonly prefer to select the restaurants that have significantly high rating plus reviews. People generally consider the review plus rating as the recommendation. The customers would be provided with the facility of providing proper rating to the dishes and the restaurants for the orders that are delivered to them. This rating would be analysed by the organisation and it would be integrated into the details of the restaurant and rating would be improved.
Figure 1: Class diagram of FeedMeNow application
Class diagram could be considered as a static diagram. It mainly represents overall static viewpoint of any application. The class diagrams are not solely used for the visualisation, description as well as the documentation various aspects of any system but it also helps with the construction of the executable code of software application (Ciccozzi, Malavolta and Selic 2019). The class diagram helps in describing the overall operations and the attributes of any class plus also helps with determining the constraints which are imposed on any system. Class diagrams are being popularly used in modelling of any object-oriented systems as they are not considered to be part of the UML diagrams which could only be mapped directly with the object-oriented languages (Ed-Douibi, Cánovas Izquierdo and Cabot 2018).
From the above diagram provided, it could be observed that the main classes being developed for the new FeedMeNow application are the customer, delivery agent, order, restaurant, payment and the manager. The relationships are also defined among the various classes. The composition relationship has been created among the order and customer because orders could only be placed by the customers and they would have the products delivered to their home within the scheduled time. The association relationship has been created among the order and payment and the multiplicity defined in this relationship is one on one because one order could have only one payment. The relationship among the customer and payment has been created as association relationship and it has been determined that one customer could make several payments for the orders that are being placed. The composition relationship has been created among the delivery agent and the order because delivery agent would be completely responsible for delivering the accurate orders from the restaurants to the customers.
The crucial relationship being selected for reviewing is the relation among customer and payment. Here the relationship has been created to be the association relationship with specifying that one customer could make several payments. Each payment record would be recorded in the system for the orders that are placed by the customers. It would be ensured by the system that proper identification number is provided to each of the orders. This association is being considered to be crucial for the system for determining which customer has made payment for the orders that are placed. The payment records could only be recorded for the individual payments being made for the orders (Jouault et al. 2020).
Activity diagram
Figure 2: Activity diagram of customer placing order
Activity diagrams are mainly created for illustrating the overall flow of the control in any system and it denotes to stages involved during execution of any use case. The concurrent and the sequential activities would be modelled using the activity diagrams. The activity diagrams mainly focus on the condition of the flow plus the sequence in which it would happen. The main reason why activity diagrams are created is to understand what causes any specific event to occur (Besnard et al. 2018). The activity diagram mainly portrays the overall control flow from the start point to the finish point displaying all the decision paths which exists while any activity is being completed. The sequential processing as well as the concurrent processing could be depicted using the activity diagram. The fundamental purpose of the activity diagrams is quite similar to the other UML diagrams (De Vito, Ferrucci and Gravino 2020). It helps in capturing the overall dynamic behaviour of the system. The other UML diagrams are being used in the present times for displaying the message flow from one particular object to any other object but the activity diagram is being used for displaying the message flow from one particular activity to any other activity (Besnard et al. 2019).
From the above activity diagram being provided in this report, it could be observed that the activity being considered for modelling is the activity diagram of customer placing the orders after making the payment for the orders. The start point of this activity is being considered as the customers opening the app. After opening the app, the system would check whether the customers are registered or not. If the customers are registered, then the customer the customers would be needed to input the login credentials in the system. The entered login details would be verified by the system properly and here the decision would taken whether the entered details are accurate or not. If the details are not accurate, then the system would take the users to the previous login page where login credentials should be entered. If the details are accurate, then the system would provide the dashboard of the app where the various restaurants would be displayed.
The customers would then select any restaurant from the provided list of the restaurants and the complete list of the dishes available in the restaurant would be provided to the customers. The customers would then select any dish from the restaurant and it would be added in the shopping cart. After adding all their desired products in the shopping cart, the system would provide the shopping cart with the option of making the payment for the orders being placed. It would be ensured by the system that the payment would only be completed when the accurate payment details are provided in the system. After the payment has been successfully completed for the orders, the customers would be provided with the order confirmation details where the expected delivery time would be displayed. In the backend of the system, each order would be assigned to any delivery person who would be responsible for delivering the order to the customers within the expected time. The confirmation of the delivery would then be posted by the delivery agent on the app for completing the order delivery.
Figure 3: State machine diagram of order class
The state transition diagram is mainly used for representing the overall condition of system or even some section of any system at the finite instances of particular time. It is the behavioural diagram and it helps in representing all the behaviour using the finite state transitions (Sabir et al. 2019). The state diagrams are also denoted as State machines or even the state chart diagrams. These particular terms are frequently utilised interchangeably. The state diagram is utilised for modelling the overall dynamic behaviour of any class in the response to the time as well as the altering external stimuli (Arcelli, Cortellessa and Di Pompeo 2019).
From the above image provided, it could be determined that the state transition diagram of the order class is being provided. The complete process of placing the order in the FeedMeNow application is being displayed in the state transition diagram. The initial state of the system would be the login screen where the customers would be needed to input their login credentials and it would be ensured that the customers are being provided access in the system when the login credentials are properly validated. After login into system, the state of the system would change to dashboard of the app where the list of the restaurants in the entered area would be displayed. It would be ensured by the system that the proper location is being accepted from the customers and only the available restaurants in the area are being displayed.
The next state of the system would be the restaurant state where the details of the restaurant would be displayed for the customer along with the details of the menu dishes available for ordering. After dishes are selected by the customers properly from the selected restaurant, the system would change to the state of the shopping cart where all the details of the selected dishes would be provided and payment option would be displayed. After customer would select the payment option from the system, the state of the system would change to the payment page where the payment of the order would be verified. Here the decision would be taken whether the payment is successful or not. If the payment is successful, the system would change its state to order confirmation and if the payment is not successful, then the payment would return back to the previous state to the payment details page. The final state of the system would be the end state where the order would be placed from the restaurants.
Figure 4: Sequence diagram of customer placing order
The UML sequence diagrams are referred as the interaction diagrams which helps in detailing how the operations are being executed. The sequence diagrams help in capturing the overall interaction among the objects in context of the collaboration. The sequence diagrams are significantly time focus and it helps in displaying complete order of interaction visually through utilising the proper vertical axis of diagram for representing the time what messages have been sent and when (Ramackers et al. 2021). The sequence diagrams mainly capture the interaction which takes place in the collaboration which could either realise any use case or even any operation and the high-level interactions among the users of system as well as system, among the systems and the other systems or even among the sub-systems. The intention of the sequence diagram is modelling the high-level interaction among the active objects in any system, modelling the proper interaction among the object instances within the collaboration which helps in realising any use case, model overall interaction among the objects within the collaboration which realises any operation, and finally model the generic interactions or even particular instances of any interaction (Torre et al. 2020). System sequence diagrams displays the elements as they would interact over time and they would be properly organised as per the object and time. The interaction among the system is displayed using the messages and return messages where messages are sent to the system and return messages are received from the system.
From the above provided diagram, it could be determined that the sequence diagram is depicting the interaction of the users and the system for ordering any product from any restaurant. The first message that would be provided to the system is requesting to open the app and the system would return the message to the users with the login page of the application. After the login page is provided to the customer, the system would request the login details in the app. When the customer would enter the login details (username and password), the system would check the details and here loop fragment would be processed where the loop would be initiated for checking whether accurate login details are provided in the system or not. After accurate login details are entered by the customer, then dashboard of the application would be provided.
Here, the customer would be needed to select the restaurants from the list of restaurants available on the app based on the location entered by the customer. After the restaurant would be confirmed by the customer, the system would return the message with the restaurant dishes which are available for the restaurant. From the list of the available dishes, the customers would be provided with the functionality of selecting the dishes and it would be added in the shopping cart of the application. After confirmation of selecting dishes would be provided, the system would return the payment page of the application where the complete list of the dishes would be provided. Here, in the payment page, the customers would enter the payment card details for their preferred payment gateway and the system would proceed to completing the payment for the order being placed.
When the payment card details would be provided in the system, the system would verify the login credentials and then provide the payment confirmation to the customer and the order confirmation to the customer. After receiving the message from the system with the payment confirmation, the customers could request for the live tracking of the order for checking the delivery status of the order. The system would return the message to the customer with the live tracking feature where the live location of the order would be displayed.
Conclusion
Therefore, the conclusion could be determined from the above discussion that the present business process of the FeedMeNow application is effective enough for providing the customers with the improved platform for ordering food easily from the restaurants. Class diagram could be considered as a static diagram. It mainly represents overall static viewpoint of any application. The class diagrams are not solely used for the visualisation, description as well as the documentation various aspects of any system but it also helps with the construction of the executable code of software application. The class diagram helps in describing the overall operations and the attributes of any class plus also helps with determining the constraints which are imposed on any system. Activity diagrams are mainly created for illustrating the overall flow of the control in any system and it denotes to stages involved during execution of any use case. The concurrent and the sequential activities would be modelled using the activity diagrams. The state transition diagram is mainly used for representing the overall condition of system or even some section of any system at the finite instances of particular time. It is the behavioural diagram and it helps in representing all the behaviour using the finite state transitions. The UML sequence diagrams are referred as the interaction diagrams which helps in detailing how the operations are being executed. The sequence diagrams help in capturing the overall interaction among the objects in context of the collaboration.
References
Arcelli, D., Cortellessa, V. and Di Pompeo, D., 2019, February. Automating performance antipattern detection and software refactoring in UML models. In 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER) (pp. 639-643). IEEE.
Besnard, V., Brun, M., Jouault, F., Teodorov, C. and Dhaussy, P., 2018, October. Unified LTL verification and embedded execution of UML models. In Proceedings of the 21th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (pp. 112-122).
Besnard, V., Teodorov, C., Jouault, F., Brun, M. and Dhaussy, P., 2019, September. Verifying and monitoring UML models with observer automata: a transformation-free approach. In 2019 ACM/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems (MODELS) (pp. 161-171). IEEE.
Ciccozzi, F., Malavolta, I. and Selic, B., 2019. Execution of UML models: a systematic review of research and practice. Software & Systems Modeling, 18(3), pp.2313-2360.
De Vito, G., Ferrucci, F. and Gravino, C., 2020. Design and automation of a COSMIC measurement procedure based on UML models. Software and Systems Modeling, 19(1), pp.171-198.
Ed-Douibi, H., Cánovas Izquierdo, J.L. and Cabot, J., 2018, June. OpenAPItoUML: a tool to generate UML models from OpenAPI definitions. In International Conference on Web Engineering (pp. 487-491). Springer, Cham.
Jouault, F., Besnard, V., Calvar, T.L., Teodorov, C., Brun, M. and Delatour, J., 2020, October. Designing, animating, and verifying partial UML Models. In Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (pp. 211-217).
Ramackers, G.J., Griffioen, P.P., Schouten, M.B. and Chaudron, M.R., 2021, October. From prose to prototype: Synthesising executable uml models from natural language. In 2021 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C) (pp. 380-389). IEEE.
Sabir, U., Azam, F., Haq, S.U., Anwar, M.W., Butt, W.H. and Amjad, A., 2019. A model driven reverse engineering framework for generating high level UML models from Java source code. IEEE access, 7, pp.158931-158950.
Torre, D., Labiche, Y., Genero, M., Elaasar, M. and Menghi, C., 2020, October. UML consistency rules: a case study with open-source UML models. In Proceedings of the 8th International Conference on Formal Methods in Software Engineering (pp. 130-140).