Milestone 3 for project for online food ordering system

profilenilex370
Sample-Project-Report-INSY-3305.pdf

Shipment Delivery Status System

Kaixuan Yin, 10011417

Chuqi Wang, 1001141754

Guoxin Gu, 1001145403

Kaixin Tian, 1001141755

2148-INSY-5341-001-ANALYSIS-AND-DESIGN--2014-Fall

Shipment Delivery Status System Final report

Team 3

2014/12/11

Shipment Delivery Status System

Introduction

This document is the final report of the team project. The project will be shown in four parts: planning, analysis, design and implementation.

The Planning part includes the introduction about the problem domain, System Request, Feasibility analysis and Requirements Definition.

The analysis part includes the activity diagram, use case descriptions, use case diagrams, initial class diagrams and sequence diagrams.

The design part includes the final class diagram, package diagram, database design and data access and manipulation design.

The implementation part includes the screen shot of the software.

1

Shipment Delivery Status System

Category Part 1: Planning ............................................................................................................................................. 3

1.1 Introduction about the problem domain ...................................................................................... 3

1.2 System Request ............................................................................................................................. 4

1.3 Feasibility analysis ......................................................................................................................... 5

1.4 Requirements Definition ............................................................................................................... 6

Part 2: Analysis .............................................................................................................................................. 7

2.1 Activity diagram ............................................................................................................................ 7

2.2 Use Case Diagram ......................................................................................................................... 8

2.3 Use Case Description .................................................................................................................... 9

2.4 Initial Class Diagram .................................................................................................................... 15

2.5 Sequence Diagram ...................................................................................................................... 16

Part 3: Design .............................................................................................................................................. 22

3.1 Final Class Diagram ..................................................................................................................... 22

3.2 Package Diagram ......................................................................................................................... 23

3.3 Database design .......................................................................................................................... 24

3.4 Data access and manipulation design ......................................................................................... 25

Part 4: Implementation ............................................................................................................................... 26

2

Shipment Delivery Status System

Part 1: Planning

1.1 Introduction about the problem domain

Nowadays, more and more people buy things from the Internet rather than go to malls. This phenomenon led to the development of the courier industry. Besides, people claims to have high quality delivery process and wants to get the package information at any time they want.

Some customers may encounter a problem when they are waiting a shipment: don’t know when their package will arrive. They can only keep checking the mailbox or call the express company. So the system is developed for an express company and is aimed at serving the customers that have a shipment.

3

Shipment Delivery Status System

1.2 System Request

System Request: Shipment Delivery Status System

Project Sponsor: Business Need: The system is developed for an express company and is aimed at serving

the customers that have a shipment.

Business Requirements:

Three kinds of users can access the system. They are: customers, couriers, and administrator.

 With providing the package number to the system, customers should be able to access the status of package they have send or will receive. The status should include: date of being sent out, route of shipment, shipping method (by air/train/car), current location, and estimated remaining delivery time of arriving.

 The couriers should access to the system and update the location of shipment as soon as they get to a transit station. At the beginning of delivery, the couriers should also input the information of the package into the system, which should include: package number, route of shipment, and shipping method. Couriers need to be verified with their account and password before they update the shipment information.

 There is only one administrator. He/she has a unique account to access the system. The administrator will be able to delete, change, and create account information of each courier. He/she can also inquire the history record of each shipment and make a decision of whether to delete it or not.

Business Value:

Some customers may encounter a problem when they are waiting a shipment. That is they sometimes don’t know when their package will arrive if there occurs a delay because of bad weather or other accident. By applying this system, customers can check the status of their package easily without continuing inquiring the company by a phone call.

As a result, the system can help increase service quality of an express company, also improve customers’ satisfaction when they will receive or send a package delivered by the express company. This will help the company in seeking out potential customers, as well as improve competitiveness among various express companies.

4

Shipment Delivery Status System

1.3 Feasibility analysis

Feasibility analysis

Technical Feasibility

The shipment delivery status management system is feasible technically, although there is some risk.

The project risk regarding familiarity with shipment delivery status management system is medium

• The basic process of the shipment delivery is clear. • The specific content of the status information database is not clarified.

The project risk regarding familiarity with programming language is medium

• There are four people included in the project, and two of them have confident software engineering experience before.

• Other two people have the experience to do some small Java programs and know the basic concept of Java well.

• Development tools for the program are available on the Internet.

The project size is considered medium risk

• The project team will include four people. • The project will last for about one and a half months. The time will be plenty enough for the project

unless delayed by any personal issues. • The system only needs one delivery loop.

The compatibility should be good

• The system does not need to integrate with any existing technology. • The system uses a simple database to store the shipment status data.

Economic Feasibility

Actually there will be no financial cost in this project.

The company is expected to reduce management cost since the shipment information can be easily uploaded through the system. The company can gain more customers since the customers are expected to appreciate for the easy way to know the up-to-date delivery information from the system.

Organizational Feasibility

From the organizational view, the project has low risk.

• The system’s size and function suit the champion’s need. • Every team member knows the concept of the system and how it works. • The customers are expected to appreciate for the easy way to know the up-to-date delivery

information from the system. • The couriers are expected to appreciate the new shortcut way to build new shipment and update

shipment information.

5

Shipment Delivery Status System

1.4 Requirements Definition

Requirements Definition

Nonfunctional Requirements

1. Operational Requirements • The system will calculate the estimated remaining delivery time according to the location and

shipping method. • The system will be able to show the lists of couriers’ accounts to the administrator.

2. Performance Requirements None

3. Security Requirements • There is a unique account for the administrator. • Each courier’s username and passport is decided by administrator. • Every user can access the status of package by inputting the package number without logging in.

4. Cultural and Political Requirements None

Functional Requirements

1. Status inquiry • By providing package number. Users of this system will be able to inquire the detail status of

package they sent out or will receive. • The status should include: route of shipment, shipping method, current location, and estimated

remaining delivery time. 2. Input package information

• At the beginning of a shipment, the related courier will input the information of the package into the system. The information should include: start point, route of shipment, and shipping method.

• By providing package number, the couriers will be able to access to the system and update the location of shipment during the shipping.

3. Management

• The administrator has ability to manage (modify, create) the username and password of each courier.

• The administrator can also access to the list of accounts. 4. Log in

• Couriers and administrator should input their username and password before they operate the system.

5. Maintain package information • The system needs a database of information about packages and accounts.

6

Shipment Delivery Status System

Part 2: Analysis

2.1 Activity diagram

The first part of our analysis is activity diagram, which is showed following.

We can see it has two loops. Whenever a user access to our system, they can do two things in the homepage: to search a package or login. And if he/she login, the system will check their identity and show them different modules.

7

Shipment Delivery Status System

2.2 Use Case Diagram

We designed 6 use cases for the system, which contains almost all of its functions. They are:

• Login • Create package • Update package • Create account • Update account • Get package Detail

Please find their relationships in use case diagram and details in use case descriptions.

8

Shipment Delivery Status System

2.3 Use Case Description

Use-Case Name: Login ID: 1 Importance Level: high Primary Actor: User Use Case Type: Detail, essential Stakeholders and Interests: Courier – wants to access the create package module and update package info module Administrator – wants to access the create account module and update account info module Brief Description: This use case describes how the users log into the system and access to different module Trigger: The user clicks on the “login” button Type: External Relationships:

Association: Administrator, Courier Include: create package, update package info, create account, update account info Extend: Generalization:

Normal Flow of Events: 1. The user clicks on the “login” button in home page 2. The user enters their login username and password 3. The username and password is available and the user is verified as courier or administrator If it is verified as courier, the S-1: login as courier subflow is performed.

If it is verified as administrator, the S-2: login as administrator subflow is performed. 4. The user clicks the logout button 5. The user returns to the home page Sub flows: S-1: login as courier

The user sees a page showing “create package”, “update package info” buttons S-2: login as administrator The user sees a page showing “create account” button and “update account info” button Alternate/Exceptional Flows: 3a1: The username or password is not valid 3a2: The system shows an error page 3a3: The user is returned to home page

9

Shipment Delivery Status System

Use-Case Name: Create package ID: 2 Importance Level: high Primary Actor: Courier Use Case Type: Detail, essential Stakeholders and Interests: Courier – wants to create a new package Brief Description: Trigger: The Courier clicks on the” create package” button Type: External Relationships:

Association: Include: Extend: Generalization:

Normal Flow of Events: 1. The courier accesses to the system 2. The courier clicks on “create package” button 3. The courier sees some blanks waiting to be filled in with the package information 4. The courier enters some package information to the tables 5. The courier clicks on the “submit” button 6. The new package is added to database 7. The courier can repeat 3-6, or quit the system Sub flows: Alternate/Exceptional Flows: 6a1: Not all blanks are filled 6a2: Courier will see a page showing error 6a3: Courier will return to the create package page and continue filling the infomation

10

Shipment Delivery Status System

Use-Case Name: Update package info ID: 3 Importance Level: high Primary Actor: Courier Use Case Type: Detail, essential Stakeholders and Interests: Courier – wants to ensure the satisfaction of customers Visitor – wants to see the newest status of package Brief Description: This use case describes how courier update the status of a package Trigger: Courier clicks on the “update package info” button Type: External Relationships:

Association: Include: Extend: Generalization:

Normal Flow of Events: 1. The courier accesses to the system and clicks on the “update package info” button 2. The courier inputs the ID of package that need be modified 3. System will match the package ID in database 4. The courier inputs the current location of that package 5. The courier clicks on the “submit” button 6. The package’s information is updated 7. The courier can repeat 2-6, or quit the system Sub flows: Alternate/Exceptional Flows: 3a1: The inputted number can’t be found in database. 3a2: Courier will see a page showing error 3a3: Courier will return to the package number inputting page

11

Shipment Delivery Status System

Use-Case Name: Create Account ID: 4 Importance Level: high Primary Actor: Administrator Use Case Type: Detail, essential Stakeholders and Interests: Administrator – wants to create new accounts for new couriers Courier – wants to log in the system Brief Description: This use case describes how the administrator create the usernames and passwords for couriers Trigger: The administrator clicks on the “create account” button Type: External Relationships:

Association: Include: Extend: Generalization:

Normal Flow of Events: 1. The administrator access to the system 2. The administrator click on “create account” button 3. The system shows a table with blanks for administrator to type in the new account information 4. The administrator types in the new username and password 5. The administrator clicks on “submit” 6. The new account is added to database 7. The administrator can repeat 3-6 or quit the system Sub flows: Alternate/Exceptional Flows: 6a1: Not all blanks are filled 6a2: Administrator will see a page showing error 6a3: Administrator is returned and continue to fill in the blanks

12

Shipment Delivery Status System

Use-Case Name: update account info ID: 5 Importance Level: high Primary Actor: administrator Use Case Type: Detail, essential Stakeholders and Interests: Administrator – wants to change the couriers’ account information Brief Description: This use case describes how an administrator change the couriers’ account information Trigger: Administrator access to the system and press the “update account info” button Type: External Relationships:

Association: Include: Extend: Generalization:

Normal Flow of Events: 1. The administrator accesses to the home page and press the “update account info” button 2. The system shows all accounts as a list, there exist buttons beside each account item called “update” 3. The administrator choose the account record he wants to update and clicks on the “update” button next to the record 4. The system will provide a table for administrator to change the information of the account 5. The administrator type the new information into the table 6. The administrator clicks on the “submit” button 7. The administrator can repeat 2-6, or quit the system Sub flows: None Alternate/Exceptional Flows: 6a1: Not all tables have been filled 6a2: Administrator will see a page showing error 6a3: Administrator is returned and continue to fill in the blanks

13

Shipment Delivery Status System

Use-Case Name: get package detail ID: 6 Importance Level: high Primary Actor: visitor Use Case Type: Detail, essential Stakeholders and Interests: Visitor – wants to know current location and estimated remaining time of arriving of a specific

package Brief Description: This use case describes how visitor get the package information they want Trigger: Visitor access to the system Type: External Relationships:

Association: Visitor Include: Extend: Generalization:

Normal Flow of Events: 1. The visitor accesses to the home page and input an order ID 2. The visitor clicks on the “search” button 3. The system will match the ID number in database 4. An item with same order ID in the database is found 5. The system calculates the remaining time of delivery 6. Detail status of the package and the remaining time are shown to the visitor 7. visitor can choose to return to home page or quit the system Sub flows: None Alternate/Exceptional Flows: 3a1: The inputted number can’t be found in database. 3a2: Visitor will see a page showing error 3a3: Visitor can choose to return to the home page or quit the system

14

Shipment Delivery Status System

2.4 Initial Class Diagram

This is our initial Class Diagram. We’ve produced six classes for our project: User Class, Admin Class, Courier Class, Package Class and DBConnection Class.

There is a generalization relationship between User class, Admin Class and Courier Class, and the User class is a generalization of Admin class and Courier Class, the Admin class and Courier Class are two special cases of User class.

The administrator can manage the accounts of couriers through the method in the Admin class, and the Couriers can manage the package information through the methods in the Courier Class.

DBConnection class is used to connect the system with the database it needed.

Package class is used to store the package information gathered from the database. Also the method calculateTime() can be used to calculate the remaining delivery time.

15

Shipment Delivery Status System

2.5 Sequence Diagram

The sequence diagrams describe the objects that participate in the use cases and the messages that pass between them over time. One sequence is corresponded to one use case.

16

Shipment Delivery Status System

17

Shipment Delivery Status System

18

Shipment Delivery Status System

19

Shipment Delivery Status System

20

Shipment Delivery Status System

21

Shipment Delivery Status System

Part 3: Design

3.1 Final Class Diagram The final class diagram is slightly different with the initial one. Firstly, the DBConnection class has been deleted in the diagram because we found that there is no need to put the DBConnection class in the class diagram. Secondly, two new classes are added in to the diagram: ShipmentDetail class and BuildRoute diagram.

The ShipmentDetail class is used to contain the calculateTime() method and some of the shipment information.

The BuildRoute class is used to connect the courier class and package class. It can be used to show which courier is responsible for a certain package in a certain route.

22

Shipment Delivery Status System

3.2 Package Diagram

The Package Diagram is shown below.

User class with Admin class and Courier class is packaged together to be the User Package.

The Package class, ShipmentDetail class and BuildRoute class is packaged together to be the Shipment Package since they all contain some information of the package.

23

Shipment Delivery Status System

3.3 Database design The database design is shown below.

As shown in the diagram, the Route Table is used to be the Association table between Package Table and Account Table.

The package Table stores the package basic information such as package ID, the start point, the destination and etc. The Account Table contains the administrator and couriers’ account information. The Route Table contains the divided route information for every package. The shipMeSpeed Table defines the speed for each ship methods.

24

Shipment Delivery Status System

3.4 Data access and manipulation design The Data access and manipulation design shows the relationship between classes and databases.

Classes use DAM class to connect the database. The line pointed from database to class shows the corresponding relationship between classes and databases.

25

Shipment Delivery Status System

Part 4: Implementation

The implementation contains three parts: the interface (folder: “sdss”), which is coded by javascript and need a browser to display; the program (folder: “sdss_src”) which is coded by java; and the database (folder: “database”) which is constructed by SQL. The applications we used in our implementation are Dreamweaver, Eclipse, Tomcat, and Oracle

The screenshots of the system are showed following:

1. The homepage. Customer can access their package’s information by input the number. And the login module is on the upper-right.

2. Login as administrator, we can see the modules of modify couriers’ account. Let’s create a new account for courier “Charlie”

26

Shipment Delivery Status System

3. Now we can login as a courier.

4. We create a package with route 1, 2, 3, which means it will be delivered from 1 to 2, and then from 2 to 3.

27

Shipment Delivery Status System

5. An ID for this package has been created.

6. We now go back to the homepage and search for this package. We can see the details including remaining time, location, shipment method as well as the routes. (The courier of route 2 states null because the package has not been delivered to the start point of route 2.)

28

Shipment Delivery Status System

7. Then we login as another courier Kevin and update the location of this package.

8. We can see the updated information.

29

Shipment Delivery Status System

30

  • Part 1: Planning
    • 1.1 Introduction about the problem domain
    • 1.2 System Request
    • 1.3 Feasibility analysis
    • 1.4 Requirements Definition
  • Part 2: Analysis
    • 2.1 Activity diagram
    • 2.2 Use Case Diagram
    • 2.3 Use Case Description
    • 2.4 Initial Class Diagram
    • 2.5 Sequence Diagram
  • Part 3: Design
    • 3.1 Final Class Diagram
    • 3.2 Package Diagram
    • 3.3 Database design
    • 3.4 Data access and manipulation design
  • Part 4: Implementation