Software Engineering Methodologies Assignment
Specification of a System - Buy It (e-commerce management system)
Overview -
As a Software Engineering consultant, your task is to develop a formal specification in Z for the proposed system described below. You will present your work to show that your system works correctly and answer questions about the system specification your group has developed.
Assessment Details -
A new e-commerce management system called "Buy It" is going to be launched soon. The objective and operation of "Buy It" will be quite similar to that of eBay. This platform will allow consumer-to-consumer and business-to- consumer sales. Major components and operations of this system are discussed below. This system could be quite complicated. However, for this assignment you need to only consider the following components and operations.
Buyer and Seller -
Any user (e.g., individual or organisation) can register with the system with valid authentication details such as e- mail address, phone number, credit card and government issued ID. Each user can act as both buyer and seller for different products. The system only allows registered users to use the system to ensure privacy and security. A reputation score (0-5) is also associated with each user based on the ratings provided by other users after a successful transaction. The platform assigns ‘2.5' as the reputation score of a new user. If the reputation score of a user falls below ‘1' that user is black listed and banned from using the system.
Product purchase -
A seller can upload the details of a new or used product for selling. The details may contain specification of the product, its condition, price and postage details (Please refer to product description available in eBay for further information). For the sake of simplicity you can assume that the system does not allow auction and the products can only be bought for a fixed price mentioned by the seller. The buyers are able to search for a product using keywords, such as ‘product name', ‘price' and ‘location'. The buyer is able to initiate the purchase by agreeing to the terms and condition set by ‘Buy It' and the seller. Afterwards, the buyer needs to make the payment using a credit card to complete the purchase. After receiving confirmation about the payment from the system, the seller will deliver the product via postage or in person as mentioned in the original advertisement.
Reputation -
After each successful purchase and product delivery, both the buyer and the seller are provided with an opportunity to assign a reputation score within 0-5 for their counterparts based on their transaction experience. The system maintains an updated reputation score for each user. This score is updated whenever a new rating is received for a new transaction. Note that a single reputation score is used for both roles (e.g., buyer and seller). The reputation score indicates the trustworthiness and reliability of a buyer/seller. As alluded before, when the reputation score of a user falls below 1, that user is blacklisted and banned from the system.
Requirements -
Z Schema Operations
You are to create a Z schema that ‘Buy It'. It should include at least adequately describes the e-commerce management system of one state space and the following operations:
• An initialization operation called Init.
• An operation Register_new_user that allows a user to complete registration and use the system.
• An operation Upload_product_details that allows a seller to upload the details of a product in the system.
• An operation Search_product that allows a buyer to search for a product using ‘product name', ‘price range' and/or ‘product location'.
• An operation Purchase_product that calculates the price of a product by adding postage charge and allows the buyer to complete a transaction through credit card.
• An operation Update_reputation that allows the system to update the reputation score of a buyer and a seller based on the rating received from another user.
• An operation Punish_user that identifies the users whose reputation score is below 1 and adds them to the blacklist.
You should provide robust versions of each operation that are capable of handling any possible error conditions. For example, product details cannot be uploaded without a price and an error message should be displayed in this case.
The submissions will be considered for presentation, conciseness and correctness (both logically and notationally). Versions of the operations that are developed using the Z Schema Calculus will be more highly considered than monolithic versions that account for all conditions within a single schema.