1. In natural language, write down the state information and the operations that are likely to be needed for the food order ?
2. Develop a mathematical description for the state space of the system and present it in a schema in the Z specification language ?
3. Write three possible schemas for Add User, Add Driver, Add Company, separately ?
4. 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) ?
5. Write a robust schema to remove a company and associated information from the UBER eats database ?
6. Produce a Z specification for a card information that includes the information about account numbers, name, expiry date and CVV number ?
7. Use the Z schema calculus to get a robust version of the lookup schema ?
8. . An extensive analysis of various risk and possible way to cater the risks ?
The application (UberEATS) is an Android mobile app. The UberEATS app is a meal delivery service app. This app has created with the help of Uber Technologies Inc. that helps to connect the riders and drivers to use the current network for delivering the meals within minutes. In the preferred cities, such restaurants get the order from the customers for delivering that order with this Uber Smartphone Application. For every delivery, the delivery time is less than 10 minutes.
The UberEATS team in various cities offered the distance limits for customer requirements. This app automatically changes the “signature items” of each restaurant which has registered in this app. Another feature of this app is having celebrity chefs in their pop-up restaurants. This feature is also preferred for customers when they are ordering the food. For example, Michael Mina is one of the partners of UberEATS for promoting his new dishes. UberEATS have 2-4 options for a meal on the daily menu. The UberEATS app is also used for transportation. The customer can easily use this app with the menu option of this app and directly order the items required if the service of UberEATS is available for that area. Every city of UberEATS has some different options such as lunch, dinner, and brunch. With the help of credit card, the user can easily pay the charges by using their mobile phone. It is like car service app. Depending upon the place of the customer, they deliver the meals either by cars, bikes or by foot. (“Course CS5232: Formal Specification and Design Techniques”, 2017).
The system of this app has UberEATS, customers, Uber driver, states, and restaurants. To order the foods by the customer through this app, they require the states. When the customer opens this app, he must register his details on this app. The required details of the customer are the name, address, contact number and credit card details. After completion of registration, the customer login to the UberEATS using their personal username and password. Then they order the needed food items from the options menu. After getting the customer’s order, all the requests have given to the nearest Uber drivers for delivery.
They also get the alert from the customer directly. In such situations they can contact the selected restaurants by the customer and place the order. If the items are ready, the drivers deliver it to the customer within the time limit (“Bangkok Food Delivery – UberEATS”, 2017).
With respect to the Z specification language, the system of mathematical model has presented along with the schema. The Z specification language will be supporting the incremental specification and it is built with the use of the schema based on its components. The presented schema based on the state space of the system with support towards the incremental specification. The schema for the UBER EATS has designed in terms of the following structures of the schema like schema name, schema signature and schema predicate.
All the specifications have referred using the schema name that has obtained. The signature of the schema declares the name and the types of the entities present in the schema. The relationship of the signature schema has predicted using the logical expression. The declaration made in the schema contains the specification based on the Uber Eats and the terms declared in the schema are as follows, users, drivers, order and checked. The first part of the schema describes about the pre-condition success process for the operation. The customer has to register their name first, then the nearest driver takes the order and checks the order and confirms to the customer about the selected item and the whole process has checked thoroughly for the delivery of the food for the right person within the specified place within the prescribed time.
Malik & Utting, 2005).
Mathematical Description
S € Set of users m users n is one of the user the mathematical description is below:
n € {m: S1…..m…..}? n € S ?(….n….)
d € {n: Checked/Order(n)=Item? / Driver = New Location?}
? d € Checked ? Order(n) = Item? ? Driver = New Location?
The ‘€’ describes the state that does not change. The ‘n’ will be determined as one of the users. The ‘d’ implies the delivery of the item also with some conditions present it, namely the location, item status and driver details. At last the delivery begins with respect to the order finalizing and the nearest location where the driver will be available (Saiedian, 2007).
With the help of following schema, the customer can easily add their details in the UberEATS app:
The alerts of UberEATS are declared by ΔUberEATS which helps to show the state of change. This schema introduces two different variables for adding new users such as users and users′. The first variable is used for state observations before changing the states and the second one is used state observations after changing the states. These variables must contain both the operations before and after which is entirely forced to fulfill the need of the user. In the declaration the question mark is added by convention. The pre-condition is defined for successful operation. The condition is each person must have one user name to access the application. If the condition is not satisfied, the details are not shown on the application. It also shows the error message which is produced from this app itself. If the condition is satisfied, the second line shows the function of new users to the given location.
The declaration of ΔUberEATS alerts helps to describe change in state. It consists of two various variables. There are Driver and Driver′. Driver variable is chosen for before state change and Driver′ variable is chosen for after state change. Both of the variables are indirectly forced for satisfying the user in before and after operations. The question mark is used for declaring the outputs. In this schema, two pre-conditions are used for completing the operations successfully. The conditions of each person should have the valid license and correct age. If any of these conditions are not satisfied, they can’t utilize this app and get the error message. If it is satisfied, they utilize this app by the function of a second line in the schema (Dongmo & Poll, 2011).
In the company schema, it also has two variables for state change. The variables are companylist and companylist′ which are used for the observations of the state before and after changing respectively. It checks the existing company list with the added list. If it is new, it adds the company list into the existing list. Otherwise, it neglects it.
Every Driver in the Uber has the details of the customer for delivering their orders. The details of the customer must include the name of the customer, items ordered by the customer and contact details of the customer. At the time of delivery the Uber Driver must check the exact details of the customer before delivering the food items. For verifying the customer details, the UberEATS uses the Phone Book System. This system helps to contact the customer, when the Driver reaches the customer’s location. This schema consists of two different variables which are known and phone number. The first variable known is used to identify the customer for delivering the food items ordered by them. The second variable is used to get the domain variable. The domain variable is ‘Known = dom ph.no’.
The Phone Book state space system has two different states such as success and failure. Phone number and the order details of the customer are important while delivering the food items by the Driver. Some verification is needed for delivery. So when the driver has the contact number of the customer, it will be easy for driver to deliver the food items. Then the process is declared as successful. If the food items are not delivered to the customer properly, the process is considered as failure. In case the driver can’t get the details of the customer, the process will be stopped. The pre-condition of this schema is the failure state is assigned, if the driver can’t get the contact number of the customer. If the customer verification is failed, the process is stopped (Jusoh, Md Saman, & Man, 2015).
In Not known operation, the name and reply are the variables which are used to show the driver can’t get the details of the customer. This operation shows the message that is ‘failure to fetch’ and it stops the process. During a successful operation, the reply is only one variable for indicating the process as success. It shows that the process is ‘Ok’ and it declares the process is successfully completed (Dr. A.K.Sharma, 2013).
The Z schema is used to define the dynamic and static features of the system. The static feature covers the states and supports the relationship of all the invariants which are specified in every state. It easily changes the states, from any state in the system. The dynamic feature covers all the available operations, which are present in the system and support the input and output relationships of the system. The dynamic feature is specified as the state change in this system. This schema is also used for replacing the state of transformation. The pre-condition is described to do the particular operation. Functionality is examined with the help of this operation (Farahbod, Gervasi, & Glässer, 2014).
This UberEATS app is developed for managing the company database. Every company consists of the contact details of the labors and restaurants which supplies the food for the customers. This database is acting as a state space system. The state variable of this schema is UberEATS. The available variable is PName and Location. The variable PName is used to show the partner’s name. The variable Location is used to show the location of the company. The PName variable input is used to assign the location of the company. If the partner’s details are retrieved from the database, the name of the company is not enough for getting the full information about the partner. The database should be modified according to the number of customers. The Domain is mentioned as Location.
The remove schema has designed to remove the information of the company and delete the whole database about that company. The partnership company links are also deleted, if the company remove their relationship with the UberEATS. The function of a company’s database contains a single variable such as NAME, this variable is mentioned as declaration variable. The company details are deleted from the database by inserting the variables such as NAME and Location′. The company details are searched by using the Location′ variable. This is used to show the location of the company that matches with the input given. Finally, it removes the database from the list.
The customers should pay the bill for their order before delivering the ordered food items. They can’t pay instant cash, only through online transaction. For online transaction, the card details of the customer must need. So the separate schema was created that is card schema. The card schema is used for getting the details of the customer’s credit card. These details must contain the customer’s name, account number, expiry date and CVV number. It is not easy to identify the customer through their card number. So the name and other details are included in that schema. The detail function is used for collecting the information on customer’s card. The detail is used as a domain variable which is given below (Smith, 2017).
The declaration of ΔCardInfo alerts helps to define the state change. The variables of this schema are known and Detail′. Known variable is taken as a pre-condition which is verified it is already existed or not for getting information. If the customer’s name is verified successfully, the details of the customer are received by this schema. The Detail′ variable is used for collecting the information on the customer’s card.
The find card schema is used to identify the customer’s card details in the whole list. The known variable and the name′ variable are described for determining the information. If the card number is inserted in this schema, the name of the customer will be displayed in the application. It is very helpful for the owners to find whose card number is this. Known variable is used to get the card number and name′ variable is used to display the customer’s details.
This schema was created for removing the card details of the customer in the list. It consists of a single variable such as Detail′. This variable is used to delete the card details of the customer by getting the input as card number (Saiedian, 2007).
With the help of Z schema calculus, the lookup schema was created in the robust version. For making the robust version, this lookup schema was created to expand the lookup operation. This schema was created to identify the customer’s name by giving the card number as input. By using Card Info schema, the customer details can be easily detected. So the lookup schema has easily identify the name of the customer. Name has taken as a variable in this schema. If the customer enters the correct card number, it shows the name of the customer. The domain variable of this schema is given as follows:
The bad lookup schema has created for showing the reply of failure in lookup schema. This schema consists of two variables such as name and r. The variable name is used to check, if the name exists in the list of the customer while checking the details by using card number. When they enter the unknown card number of the customer, it replies the statement as ‘not known’. The r variable is used to show the statement. The lookup operation using the robust version, then it is called bad lookup (Haghighi & Afshar, 2012).
During successful operation, the r is the only variable for indicating the process as success. It shows that the process is ‘Ok’ and it declares the process is successfully completed. If the lookup operation is successful, it goes to success operation.
The Z specification language has a large set of symbols. The structure is too complex to understand. There are lots of symbols used in the Z specification language. They are material function, Enumeration (e1, . . .,en), element-of-relation (∈),Union (∪), Abbreviation, Conjunction (∧), Equivalence(⇔). It should be given as a clear mathematical expression. The functions of each schema are based on the notations of Z specification. The Z notations have complex symbols so it cannot be understood easily. Because of its complexity, the functional part of the schema will be affected. In Z notation, only less amount of tools used. So the functionality risk has increased to specify the functions. The quality, time effective and cost has reported at high risk. CICS has many specification properties. The execution delay is one of them. But the Z notation does not handle this property (Katz, 2017).
The design of the Z specification language is more expressive and so the complexity increases. This complex design is understood by computer only. The humans cannot recognize the notations and its complex design easily. So the design becomes a threat for the Z notation. Thus the notation is not easy to understand and it leads to high risk. The requirements of specifications calculated by using software. So the manual calculation is impossible to generate code.
Possible ways to deduct risk
Z notation is not a well-known language, but it is used within a working environment. A formal method is used to overcome this problem. The Z specification language is a combination of unifies modelling language, Object Constraint language and Object modelling language. The Entity relationship diagram is used for modelling. The given input is recognized as ASCII file by using CADIZ, in Eclipse software. This file contains instructions to use Z Specification language. By examining the file performance, the required specifications are verified. In the software engineering process the Z notations are initiated. So, the exceptions are handled implicitly (Zeller, 2009).
Conclusion
The state space system for UberEATS application is analyzed. In food ordering system there are lots of operations are performed by the customer, Uber driver, Restaurant and Uber Company. These operations are managed by mobile phones. The operations performed in the state space of this system represented as the schema by using Z specification language. The Mathematical description of the states of customer, driver, company database and phonebook is derived. The UberEATS payment process has analyzed and the operation has performed by using the account number, name of the account holder, expiry date of card and CVV number. The schema which was developed for this operation uses Z notations. While performing a food order and payment operations, various risks are identified based on its function and design. Thus the Z specification language is learned in an easiest way.
References
Bangkok Food Delivery – UberEATS. (2017). Ubereats.com. Retrieved 21 January 2017, from https://www.ubereats.com/bangkok/
Course CS5232: Formal Specification and Design Techniques. (2017). Comp.nus.edu.sg. Retrieved 24 January 2017, from https://www.comp.nus.edu.sg/~dongjs/ic52z5.html
Dongmo, C. & Poll, J. (2011). Toward The Formalisation Of Use Case Maps. University Of South Africa.
Dr. A.K.Sharma, D. (2013). Comparison of the Formal Specification Languages Based Upon Various Parameters. IOSR Journal Of Computer Engineering, 11(5), 37-39. https://dx.doi.org/10.9790/0661-1153739
Farahbod, R., Gervasi, V., & Glässer, U. (2014). Executable formal specifications of complex distributed systems with CoreASM. Science Of Computer Programming, 79, 23-38. https://dx.doi.org/10.1016/j.scico.2012.02.001
Haghighi, H. & Afshar, M. (2012). A Z-Based Formalism to Specify Markov Chains. Computer Science And Engineering, 2(3), 24-31. https://dx.doi.org/10.5923/j.computer.20120203.04
Jusoh, J., Md Saman, M., & Man, M. (2015). Formal Specification Approach In Designing Database System Using Z. ARPN Journal Of Engineering And Applied Sciences, 10(3).
Katz, S. (2017). The Schema Calculus.
Khalafinejad, S. & Mirian-Hosseinabadi, S. (2013). Translation of Z specifications to executable code: Application to the database domain. Information And Software Technology, 55(6), 1017-1044. https://dx.doi.org/10.1016/j.infsof.2012.12.007
Malik, P. & Utting, M. (2005). CZT: A Framework for Z Tools. The University Of Waikato, Hamilton, New Zealand.
Saiedian, H. (2007). Developing Formal Specifications in Z. University Of Kansas.
Smith, G. (2017). The Object-Z Specification Language. Software Verification Research Centre.
Stacewicz, P. (2015). Evolutionary Schema of Modeling Based on Genetic Algorithms. Studies In Logic, Grammar And Rhetoric, 40(1). https://dx.doi.org/10.1515/slgr-2015-0011
Ulfah Siregar, M. (2016). Support for Model Checking Z Specifications. Information Reuse And Integration (IRI).
Ulfah Siregar, M., Derrick, J., North, S., & J. H. Simons, A. (2015). Experiences using Z2SAL. Advanced Computer Science And Information Systems (ICACSIS).
Utting, M., Malik, P., & Toyn, I. (2010). Transformation Rules for Z.
What is Z?. (2017). Staff.washington.edu. Retrieved 21 January 2017, from https://staff.washington.edu/jon/z-book/what-is-z.html
Woodcock, J. & Davies, J. (2017). Using Z Specification, Refinement, and Proof. University Of Oxford.
Z lecture notes: Schemas and Schema Calculus. (2017). Staff.washington.edu. Retrieved 24 January 2017, from https://staff.washington.edu/jon/z-lectures/schema.html
Zeller, A. (2009). Formal Specification with Z. Saarland University.
Essay Writing Service Features
Our Experience
No matter how complex your assignment is, we can find the right professional for your specific task. Contact Essay is an essay writing company that hires only the smartest minds to help you with your projects. Our expertise allows us to provide students with high-quality academic writing, editing & proofreading services.Free Features
Free revision policy
$10Free bibliography & reference
$8Free title page
$8Free formatting
$8How Our Essay Writing Service Works
First, you will need to complete an order form. It's not difficult but, in case there is anything you find not to be clear, you may always call us so that we can guide you through it. On the order form, you will need to include some basic information concerning your order: subject, topic, number of pages, etc. We also encourage our clients to upload any relevant information or sources that will help.
Complete the order formOnce we have all the information and instructions that we need, we select the most suitable writer for your assignment. While everything seems to be clear, the writer, who has complete knowledge of the subject, may need clarification from you. It is at that point that you would receive a call or email from us.
Writer’s assignmentAs soon as the writer has finished, it will be delivered both to the website and to your email address so that you will not miss it. If your deadline is close at hand, we will place a call to you to make sure that you receive the paper on time.
Completing the order and download