Ask Software Engineering Expert

Assignment Part 1

Objectives: To learn to identify the relevant use cases for a given application, describe the use cases and develop an object-oriented domain model.

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
Products are identified by product ID. Each product has a short description which is to be recorded.

Customers
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
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
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.

Invoices
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.

Payments
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 behaviour of the system

An analysis of the behaviour of the system has been carried out. As a result, a number of use cases have been identified. More specifically, the following use cases, that need to be supported by the system.

1. Add a new product.
2. Remove a product - provided there are no standing orders for this product.
3. Add a new customer. At least one delivery address and one standing order need to be added for the new customer.
4. Add a delivery address to an existing customer.
5. Remove a delivery address, provided no deliveries have been made to this address.
6. Add a standing order to an existing customer.
7. Close a standing order - when the end-date is reached or when the customer cancels the order.
8. List standing orders that need to be filled for a particular date, sorted by customer name and, within a name, by id.
9. Add a delivery.
10. Generate a delivery docket.

Your Tasks

For Part 1 of the assignment, you are required to do the tasks described below. Clearly state any assumption you make. Your assumptions must not be inconsistent with what are given the description above.

Task 1 - Use Case Modeling

- Describe each of the use cases in the list, using the Main Flow/Extensions format.

Make sure you clearly number the use cases.

Notes:

- You are not required to draw use case diagrams.

- You are required to describe all use cases given in the list above. As for marking, about 5 of those use cases will be marked.

- Your use case descriptions should capture the functional requirements precisely and concisely. Use case descriptions with superfluous details may result in marks being deducted.

Task 2 - Domain Modeling

- Construct a domain class model, which may consist of one or more class diagrams.
- You should use enumerated types whenever appropriate (rather just using characters or strings).
- You are required to use Enterprise Architect to draw the class diagrams. Diagrams that are drawn by hand or with other software will have up to 50% of its marks deducted.
- You should include your class diagrams in your pdf document, not in separate files.

Assignment Part 2

You must submit your atomic use case specifications (in a pdf file) and your code via latcs8 using the submit command:

submit DES

For Students at Dandenong Campus: Please follow the instructions of your lecturer regarding assignment submission.

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: 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.

Problem Statement - Standing Orders Management System

For Part 2 of the assignment, you are to continue with the Standing Order System described in assignment Part 1. Whereas Part 1 is concerned with the analysis phase, Part 2 will be concerned with design, prototyping and testing. In Part 1, we have used the following use cases (1 - 10). In addition of these 10 use cases, in Part 2, we will consider 4 extra use cases (11 - 14) to construct the domain class diagram.

As the starting point for Part 2, assume that the following design class diagrams have been adopted. Figure 1 shows the classes representing the domain objects and Figure 2 shows the system class.
1. Add a new product.
2. Remove a product - provided there are no standing orders for this product.
3. Add a new customer. At least one delivery address and one standing order need to be added for the new customer.
4. Add a delivery address to an existing customer.
5. Remove a delivery address, provided no deliveries have been made to this address.
6. Add a standing order to an existing customer.
7. Close a standing order - when the end-date is reached or when the customer cancels the order.
8. List standing orders that need to be filled for a particular date, sorted by customer name and, within a name, by id.
9. Add a delivery.
10. Generate a delivery docket.
11. List all the customers who have delivery for a particular week, given the ending date of the week.
12. Add an invoice for a customer. The system is capable of automatically generating all the invoices for deliveries made in a given week. The invoice number is generated by the system.
13. Generate an invoice document, given the invoice number.
14. Record the payment for an invoice.

Your Tasks

For Part 2 of the assignment, you are required to do the tasks described below. Clearly state any assumption you make. Your assumptions must be consistent with what are given the description above.

Task 1 - Atomic Use Case Specifications

We have identified the following atomic use cases. Some important decisions regarding the atomic use cases are given as well.

1. Add a new product.
2. Add a new customer with one delivery address.
3. Add a delivery address to an existing customer.
4. Add a standing order to an existing customer.
Date is implemented as an integer. The quantities, as can be seen by the design model, are maintained as a list of integers (which can be implemented in Java as an Array or a List). The first number in the list is the quantity for Mondays; the second is that for Tuesdays, and so on. We will also assume that the day of the week for a date can be determined as the remainder obtained when we divide date by 7, with value 0 signifying Monday, 1 Tuesday, and so on.
5. List standing orders that need to be filled for a particular date, sorted by the customer name and, within a name, by the customer id.
6. Add a delivery.

Your task is to formally specify the atomic use cases listed above, using the specification language introduced in the course.

Notes:

- In your answer, number the use cases (from 1 to 6) as shown above.
- Your specifications must be based on the design class diagrams given above.
- If necessary, refer to the problem statement given in Part 1 of the assignment.

What to submit for Task 1:

- The specifications of atomic use cases in a pdf document.

Task 2 - Prototyping

Prototype all the atomic use cases listed for Task 1 in Java. Your implementation of the prototype must be done in a systematic manner. In particular, for each use case, the preconditions should be checked first, and then the postconditions should be fulfilled.

Note:
- The Appendix provides a sample test program to illustrate how you should organize your test cases. You can use this as a means to quickly test your in- progress implementation.

What to submit for Task 2:

- Electronic copy of all the classes required for the prototype and for testing.

Task 3 - Testing the Prototype

The testing is to be done as described below.

- For each atomic use case, design the test cases and include them in a Java program, called StandingOrderSystemTester, to carry out the testing.

- The test program should be appropriately commented so that we can see the purpose of each of the test case.

- Even if your prototype is not complete, you still need to provide the test program for the parts that you have completed.

Task 4 -

Suppose we want to verify the structural design model, presented in Figures 1 and 2, completely.

- Is the set of six use cases that we have selected on Page 4 adequate for this purpose?

- If not, which other use cases listed on Page 2 would you add to the six use cases that we have selected?

You are required to select the minimum number of additional use cases adequate for the stated verification purpose. You must give reasons to support your answers.

Attachment:- Assignment Parts.rar

Software Engineering, Computer Science

  • Category:- Software Engineering
  • Reference No.:- M93131381
  • Price:- $160

Guranteed 48 Hours Delivery, In Price:- $160

Have any Question?


Related Questions in Software Engineering

In this assignment you will answer the following questions

In this assignment, you will answer the following questions related to Android platform and Android security design. 1. Describe Android architecture in detail by explaining the four conceptual layers. 2. Describe Androi ...

The research paper for this course is about some of the

The research paper for this course is about some of the best sources of digital evidence for child abuse and exploitation, domestic violence, and gambling according to the National Institute of Justice. Research commerci ...

Research projectin the course we have covered various

RESEARCH PROJECT In the course, we have covered various security and privacy issues that arise in the cyberspace field. We have learned to identify these risks and have discussed the current approaches and developments f ...

Overviewyou are required to modify and logically extend

Overview You are required to modify and logically extend the functionality of a provided code base to implement a game. This requires you to modify the code base as well as create documentation and implement various user ...

Address the following integrating biblical perspectives

Address the following, integrating biblical perspectives where appropriate: Define a hate crime and describe how white supremacist groups use the Internet to spread their message of hate. Explain why hate crime legislati ...

In this assignment you will answer the following review

In this assignment, you will answer the following review questions from the reading materials of the module/week. 1. "What are the key components of a typical P2P application? Describe their functions." 2. "What are the ...

Write reply to this article with references with apa

Write reply to this article with references with APA bibliography. Hate Crimes Over the past couple of years, hate crimes have been on the rise in America's largest cities. Studies show that there were sharp spikes in th ...

Reply to this article with apa referencehate crimes

Reply to this article with APA reference. Hate crimes According to Merriam-Webster, hate crime is any of various crimes (such as assault or defacement of property) when motivated by hostility to the victim as a member of ...

Proposaldesign of an efficient gps tracking system tag for

Proposal Design of an efficient GPS Tracking System (tag) for monitoring small species IMPLEMENTING EMBEDDED SYSTEMS USING SYSML Task Using PapyrusSysML Software (Downloadable online - Evaluation Copy- Latest Version) Mo ...

Write review on this article with apa formatgovernment

Write review on this article with APA format. Government surveillance is a major issue in the United States and globally. Surveillance refers to any collection and processing of personal data, whether, identifiable or no ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As