Reference no: EM132415243
ITECH7410 Software Engineering Methodologies - Federation University
Purpose: The purposes of the assignment:
1. Understanding a large software system.
2. Developing schema for small parts of a software system.
3. To familiarize in formal design using Z.
Introduction:
Note: This assignment is an extension of your tutorial on Week 6 with a different scenario. Follow the guidelines of your lecturer/tutor that were delivered during the lecture or tutorial time.
UBER Eats is one of the businesses from UBER which allows you to order and receive some foods from a shop/restaurant through UBER Eats drivers. The service is getting interests among the people who are using smartphones and not that much interested to go out of home/ office for lunch/dinner. Here are the functionalities of Uber Eats:
1. The company has a website and apps for mobiles.
2. User needs to fill-up a particular form to be a member of UBER Eats.
3. A person must register if s/he is interested in delivery service (driver).
4. Users must use their own credit card/debit card (or PayPal) account while ordering the foods.
5. Interested companies must register their business to Uber so that the restaurant/business should appear in the restaurant list in the app.
6. A user orders the food through app/web link using his/her account.
7. The restaurant will prepare the food according to the order from the user in due time so that the driver can collect it.
8. The drivers need to keep the UBER App turned ON to see the order and delivery requests. Once a delivery task is accepted, the driver will be notified about the time to pick up the foods and the delivery address.
9. The drive picks the food from the restaurant and delivers to the customer at the given address.
10. Entire cost calculation will be performed in the UBER side and this will be disbursed to the driver and the restaurant after a certain period.
Consider that, you have been assigned to a team that is developing the software for the UBER Eats. Your job is to develop a part of the UBER Eats which involves: i) a user to select the food from any of the suggested companies ii) processing the order and make it ready to deliver from company/restaurant side iii) a driver who will collect that food and handover it to the customer's location iv) providing the facility to the users to update their information. Here goes the item that you need to submit in the assignment:
A. In natural language, write down the state information and the operations that are likely to be needed for the food order.
B. Develop a mathematical description for the state space of the system and present it in a schema in the Z specification language.
C. Write three possible schemas for Add User, Add Driver, Add Company, separately.
D. Write a schema that describes a function to look up the phone number for a name (this is required when the driver will be delivering the food to the customer).
E. Write a robust schema to remove a company and associated information from the UBER eats database.
F. Produce a Z specification for a card information that includes the information about account numbers, name, expiry date and CVV number.
G. Use the Z schema calculus to get a robust version of the lookup schema.
H. An extensive analysis of various risk and possible way to cater the risks
I. Conclusion about what you have learnt by solving this assignment and how could you do better.