Informal Requirements Specification Calgary Foods Department of Computer
Science Page maintainer: terrence@cpsc.ucalgary.ca |
Original Informal Specification (taken from the CPSC 451 Course Lab Notes)
Write a specification for a system linking supermarkets to a grocery supplier to process the ordering from one end and the invoicing from the other. Both sides should have strategies e.g. reorder when the stock drops to a certain level; do not invoice until the stock has been received. This requires the minimum data entry, but complete security.
Introduction
The Calgary Foods Supermarket chain is interested in a system to manage the ordering of inventory between an unspecified number of supermarkets and a single grocery supplier. For the supermarket, the system is required to track all current store inventory and to generate automated inventory restocking requests (hence forth known as purchase orders or POs) to be sent to the central grocery supplier. The grocery supplier will be required to accept the automated purchase orders and to generate shipment invoices. In addition, the system must maintain a complete purchase order and invoice trail for both filled and partially filled orders. Two major requirements of the system are complete security and fault tolerance with minimal down time.
The following requirement specification is divided into three main sections. Section 1 contains the requirements of the supermarket. Section 2 contains the requirements of the grocery supplier. Section 3 contains requirements common to both the supermarket and grocery suppliers.
At any given time, the supermarket maintains a large in-store inventory. A major requirement of the system is the maintenance of the entire store inventory. The minimal data that must be maintained for each item in the inventory includes:
Daily Supermarket Operation
Daily operation of the supermarket involves many employees and includes many diverse transactions. The system is required to manage these transaction in an efficient manner. Since the system involves many simultaneous inputs, data integrity must be maintained. System inputs include UPC scanning devices, on-shelf inventory increases by shipping personnel and adjustment of on-shelf inventory by department managers.
The following list outlines operational requirements of the system:
Purchase orders
Another major requirement of the system is the maintenance of the supermarket's entire history of purchase orders. Operations on the history of purchase orders are limited to retrieval by purchase order number or date.
Generated purchase orders are divided into three sections: header, body and footer. The header information includes a unique purchase order number, store identification code, pertinent store information, date and time the purchase order was generated and the relevant persons placing the order. Relevant persons include managers who approve orders and the persons generating manual orders. The body of the purchase order contains one product per line. Relevant product information includes the UPC, product description, quantity ordered, expected bulk unit price and the total cost of the product. The footer of the purchase order includes the total cost of the purchase. In addition, the footer contains signature lines when a hardcopy is generated. Hardcopies of all sent purchase orders are generated immediately for paper archival.
In the case that a shipment partially fills an order, the system must maintain the total product amount received for the purchase order and the total amount pending. Each purchase order should be matched with a complete invoice trail that fulfills the purchase order.
The majority of the grocery supplier's operation is automated. Hence the set of operations is limited. However, the grocery supplier's system should also maintain their entire warehouse inventory. The minimal data that must be maintained for each item in the inventory includes:
Supermarket Data
For each supermarket connected to the grocery supplier, the system must maintain the supermarket's identification code, name, shipping address, contact person and phone number.
Daily Supplier Operation
Invoices
Paralleling the supermarket's purchase orders, it is required that the grocery supplier's system maintain the entire purchase order and invoice history. Operations on this history are limited to retrieval by date, purchase order number or invoice number. In addition, each invoice must be matched to the corresponding purchase order.
Generated invoices are divided into three sections: header, body and footer. The header information includes a unique invoice number, the corresponding purchase order number, receiving supermarket's identification code, pertinent store information, the date and time shipment leaves the warehouse and the person who approves the outgoing shipment. The body of the invoice contains one product per line. Relevant product information includes the UPC, product description, quantity shipped, bulk unit price and the total cost of the product. The footer of the purchase order includes the total cost of the shipment. In addition, the footer also contains signature lines when a hardcopy is generated. Hardcopies of all invoices are generated for paper archival.
In the case of a partially filled shipment, the system must maintain the total amount shipped for each product on the invoice and the total amount pending.
Security
The system should allow for an unspecified number of security levels. Intra-operational transactions must be secure within each subsystem. In addition, functions should not be accessible to users without sufficient authority. All functions and transactions must have assignable security levels. All inter-operation transactions between the supermarket and supplier subsystems must be secure.
Backups
The loss of data is unacceptable. A hardware and software backup implementation is required to minimize data loss.