CSE2DES/CSE5DES Assignment 1
Assessment: This assignment 1 is worth 15% of the final mark for CSE2DES/CSE5DES.
This is an individual assignment.
Copying, Plagiarism: Plagiarism is the submission of somebody else’s work in a manner that gives the impression that the work is your own. The Department of Computer Science and Computer Engineering treats plagiarism very seriously. When it is detected, penalties are strictly imposed. Students are referred to the Department of Computer Science and Computer Engineering's Handbook and policy documents with regard to plagiarism.
No extensions will be given: Penalties are applied to late assignments (5% of total assignment mark given is deducted per day, accepted up to 5 days after the due date only). If there are circumstances that prevent the assignment being submitted on time, an application for special consideration may be made. See the departmental Student Handbook for details. Note that delays caused by computer downtime cannot be accepted as a valid reason for a late submission without penalty. Students must plan their work to allow for both scheduled and unscheduled downtime.
Return of Assignments: Students are referred to the departmental Student Handbook for details.
Objectives: To learn to identify and specify the relevant use-cases and develop an object oriented domain model as part of the applications development process.
Problem Statement - Standing Orders Management System
A distribution company supplies various kinds of products to customers on a daily basis according to the standing orders placed by the customers.
The company wants to set up a system to maintain information about the products that the company can supply, its customers, the standing orders, together with information about deliveries, invoices, and payments.
Products are identified by product ID. Each product has a short description which is to be recorded.
Customers are identified by customer ID. Each customer has a name and one or more delivery addresses. Each delivery address has a contact person, whose name and phone number are recorded. Note that the names of the contact persons may not be unique. In addition, each delivery address is given a system-wide unique ID.
Standing orders are identified by standing order ID. Each standing order is for one product to be supplied to one customer on an agreed price for the standing order. The standing order states the quantity required for each day of the week. Each standing order has a date initiated and termination date. When a standing order is first created, it has the status of being “active”. The status is changed to “closed” when the termination date is past or when the customer cancels the order.
Deliveries are made on each day to satisfy orders for that day. Each delivery is identified by a delivery number, made to one particular delivery address of a customer, and can include products from more than one standing order for the customer.
A delivery docket (identified by the delivery number) is made out at each delivery. It contains delivery date, the day of the week, the quantity delivered for each product, together with the standing order number for that product. The quantity delivered for a standing order on a particular day is usually equal to the quantity specified in the standing order, but occasionally it may be different. In later case, a star (*) is marked against it.
Every week an invoice is prepared and sent to the customers. The invoice consists of all the deliveries made up to the Friday of the previous week to one customer. A sketch of the invoice is given below.
Customer ID:_____Week Ending: ___
Delivery St. Order Product.
Qty Price Cost
_____ _____ _____
Amount due: ______
Customers pay by direct debit. Once the payment is made and confirmed, the date on which the direct debit is made is recorded against the invoice as payment date. A debit account has an account number, the business name and the name of the authorization person.
Results of an analysis of the required behavior of the system
An analysis of the behavior of the system has been carried out. As a result, a number of use cases have been identified. More specifically, the following use cases – at least – have been identified as use cases that need to be supported by the system.
- Add a new product
- Remove a product - provided there are no standing orders for this product.
- Add a new customer. At least one delivery address and one standing order need to be added for the new customer.
- Add a delivery address to an existing customer.
- Remove a delivery address, provided no deliveries have been made to this address.
- Add a standing order to an existing customer.
- Close a standing order – when the end-date is reached or when the customer cancels the order.
- List standing orders that need to be filled for a particular date, sorted by customer name and, within a name, by id.
- Add a delivery.
- Generate a delivery docket.
- List all the customers who have delivery for a particular week, given the ending date of the week.
- Add an invoice for a customer.
The system is capable of automatically generating all the invoices for deliveries made in a given week. This capability is envisaged as part of the functionality of the final system. However, for the initial development of the system, this capability is put on hold. Instead, as part of the core functionality provided by the system, a simpler use case is considered. It is the use case which adds, to the system’s information base, the details of an invoice for a customer for deliveries in a particular week. The invoice number is generated by the system.
- Generate an invoice document, given the invoice number.
- Record the payment for an invoice.
You are required to
Task 1 (60 marks out of 100 marks for Assignment 1) Describe the use cases identified above.
If there are other use cases you think would be needed to support the aforementioned use cases, point out these additional use cases and specify them.
NOTE ON MARKING: You are required to describe all the use cases, but about 4 use case descriptions will be selected to mark in detail.
Task 2 (40 marks)
Construct the structural domain model
Clearly state any assumptions you make.