Develop an object-oriented domain model

Assignment Help Software Engineering
Reference no: EM132143916

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 <directory or file name>

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

Reference no: EM132143916

Questions Cloud

Formulate linear programming model : Formulate a linear programming model that can be used to determine amount that should be shipped from each plant to each retail store to minimize total cost
Prepare a quality management plan using the elements : Prepare a quality management plan using the elements described in the PMBOK 6e (Section 8.1.3.1) for the Suburban Homes Construction Project.
How many were patient-centered : Patient-Centered Care is defined as the care that is respectful of, and responsive to, individual patient preferences, needs and values, and ensuring.
Perfectly competitive and has no control over price : A firm has hired you as a consultant. This firm is perfectly competitive and has no control over price.
Develop an object-oriented domain model : Identify the relevant use cases for a given application, describe the use cases and develop an object-oriented domain model
Based on your analysis what do you recommend : The marginal revenue is about $4, it costs them about $5 to make another unit. Per unit variable costs are about $5 per unit.
How are the participating providers reimbursed : What type of insurance product (e.g., HMO or PPO) do the participating payers include? How are the participating providers reimbursed?
Research and discuss about the operational barriers : Describe the approach used to address these barriers, and explain whether it was successful or unsuccessful.
Expected inflation rate : While the real interest rate and the expected inflation rate are unchanged, then the price level increases by

Reviews

len2143916

10/18/2018 12:02:42 AM

Task 1 - 60 marks 1. Add a new product /5 In: Product ID [] Pre: ID is new [] In: Description [] Post: Save details [] Readability [] 3. Add a new customer In: Customer ID, name [] /18 Pre: ID exists [] Repeat for addresses [] - In: Address ID & details [] - Pre: Address is new [] Repeat for orders [] - In: Order ID [] - Pre: Order ID is new [] - In: Delivery address ID [] - Pre: ID validated [] - In: Start date, End date [] - Pre: Start date <= End date [] - In: Product Id [] - Pre: Product ID exists [] - In: quantities for days of week [] - Pre: all quantities = 0 [] - Post: Save all details [] Readability []

len2143916

10/18/2018 12:02:29 AM

Task 2 - 40 marks Classes: 15 marks Elements Breakdowns Product 0.5 1 Customer 0.5 1 1.5 2 Address 0.5 1 Standing Order 1 1.5 2 4 Delivery 1 1.5 2 4 Delivery Item 0.5 1 1.5 Attribute types 0.5 1 1.5 Relationships: 25 marks Customer-Address 1 2 2.5 3 Standing Order-Customer 1 2 3 4 Standing Order - Product 1 2 3 4 Delivery - Customer 1 2 2.5 3 Delivery – Delivery Item 1 2 2.5 3 Delivery Item – Standing Order 1 2 2.5 3 Delivery - Address 1 2 2.5 3 Choices of relationship names 0.5 1 1.5 2

Write a Review

Software Engineering Questions & Answers

  Research report on software design

Write a Research Report on software design and answer diffrent type of questions related to design. Report contain diffrent basic questions related to software design.

  A case study in c to java conversion and extensibility

A Case Study in C to Java Conversion and Extensibility

  Create a structural model

Structural modeling is a different view of the same system that you analyzed from a functional perspective. This model shows how data is organized within the system.

  Write an report on a significant software security

Write an report on a significant software security

  Development of a small software system

Analysis, design and development of a small software system.

  Systems analysis and design requirements

Systems Analysis and Design requirements

  Create a complete limited entry decision table

Create a complete limited entry decision table

  Explain flow boundaries map

Explain flow boundaries map the dfd into a software architecture using transform mapping.

  Frame diagrams

Prepare a frame diagram for the software systems.

  Identified systems and elements of the sap system

Identify computing devices, which could be used to support Your Improved Process

  Design a wireframe prototype

Design a wireframe prototype to meet the needs of the personas and requirements.

  Explain the characteristics of visual studio 2005

Explain the characteristics of Visual Studio 2005.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd