You are on page 1of 73

ANDHRA UNIVERSITY COLLEGE OF ENGINEERING (A)

DEPARTMENT OF COMPUTER SCIENCE AND SYSTEMS


ENGINEERING

CERTIFICATE

This is to certify that this is the bonafide work done by


Mr/Ms..………………………………………………………………….. bearing
Regd. No……………………………………… of 1/2 M.Tech CST in OBJECT
ORIENTED SOFTWARE ENGINEERING LAB during the year 2017-2018.

Prof. Kuda Nageswara Rao Prof. Kuda Nageswara Rao


Head of the Department Professor
Department of CS&SE Department of CS&SE
CONTENTS
Chapter 1: Problem Statement 01
1.1 Problem Definition
1.2 Existing System
1.3 Problems in Existing System
1.4 Proposed System
Chapter 2: Software Requirements Software05
2.1 Introduction
2.2 Overall Description
2.3System Features
2.4 External Interface Requirements
2.5Non Functional Requirements
Chapter 3: Design Document 20
3.1 Context Diagram
3.2 UML Diagrams
3.3 Database Design
3.4 User Interface
Chapter 4: Testing63
4.1 Testing Objectives
4.2 Testing Principles
4.3 Types of Testing
4.4 System Testing
4.5 Test Cases
CHAPTER 1

PROBLEM STATEMENT

1.1PROBLEM DEFINITION

People when transfer their packages using any courier service want to know
whether their package has been delivered to the desired destination or not, if not
at what time it will be delivered and its current status. Taking all this information
manually is time consuming process. To handle these activities, include various
paper work from management side also.

1
1.2EXISTING SYSTEM

The courier system involves a lot of the employees at the office. The data for a
particular courier maintained in a proper file. An employee summarizes all the
data of the courier in a register, this work requires a high-level of attention since
it must be taken care that no wrong entry goes into the register. This repetitive
work may lead to errors in the entry thus resulting in the wrong entry of courier
packed data. Since the data is maintained in the registers, the modification of data
can't be done easily. The previous information must be erased and overwritten or
a new page must be allocated so that both the old and new information can be
written on the same page. The summarizing of the data i.e. preparation of an up
to data report is very complex, it requires a lot of hard work and searching through
the different register to condense the data for presentation.

2
1.3PROBLEMS IN EXISTING SYSTEM

From the client side, the entire work was achieved manually, and they manageall
their billing and services manually. Because of the manual system there are
somany problems occurred in the existing system:

• It involves managing a huge amount of data each having separate data


items.
• All the work is done at a very large volume, so we have a possibility of
losing the data.
• To look for a particular problem the entire system is searched, so the
processbecomes more time consuming.

There is need for a courier management system that can overcome the limitations
of the existing courier system.

3
1.4PROPOSED SYSTEM

The system we provide leads to an error free, secure, cost effective and fast
management system. The proposed system solves the problems in existing system
i.e., reduces the manual work for managing the information about customers,
courier, delivery, payments etc. This system has many modules. The login section
deals with login facility for admin, employees and customers. While taking
ordering form customers, it will collect details like customer name, customer
address, email, mobile number and recipient address with contact information.
During billing, a tracking ID is generated. Through this tracking ID, customer
will be able to track the whereabouts of courier. The status of courier will be
provided after placing order. Customer can also place courier by contacting our
agents thorough the contact number give in our website.The system maintains a
Database to store and help in data handling issues like courier details etc.

4
CHAPTER 2

SOFTWARE REQUIREMENTS SPECIFICATION

2.1 INTRODUCTION

Purpose

The aim of this project is to develop an online courier management system


which can be ease the courier process. The system will be used for day to day
activities like payments of customers, managing orders, status updates,
managing employee details and pickup centers.Actually,itis not easy to do this
process manually because it would become very difficult. Hence it is
recommended to automate the process by developing the relevant software as
the world is moving from manual working to information and technology era
where computerization becomes important in all walks of life. It is developed to
address problems which arise during courier transit from source to destination.
This automation is intended for better utility of resources available, smooth
working of environment and improvement of client business.

Document Conventions

Main Section Titles

• Font: Times New Roman


• Face: Bold
• Size: 18

Sub Section Titles

• Font: Times New Roman


• Face: Bold
• Size: 16

5
Other Text Explanations

• Font: Times New Roman


• Face: Normal
• Size: 14

Intended Audience and Reading Suggestions

Clients: The clients of the system will get a clear idea of the software and
hardware requirements to be engaged in the system.

Users:The users of the system will get a clear idea of how to use the software for
automation of different activities.

Developers:Project developers have an advantage of quickly understanding the


methodology enabled and personalizing the product.

The authors would suggest clients to go through the requirement section


thoroughly before installing the software so that any inconveniences can be
avoided. Developers can utilize the documentation as a resource in developing
the project to a new product and also to make updates and modifications to the
present system.

Project Scope

This era is a data driven era and people are mostly trying to automate their
business for better and faster results. As the people are depending largely on the
online services for their needs, it is getting very difficult for the companies with
a huge number of customers to provide service to their customers. The automation
of business activities and services can make the both companies and their
customers satisfied. And it is also difficult to depend on manual ways to provide
6
service to this vast number of customers. The main aim of this project is to
computerize and automate the maintenance of courier management.This system
will be designed to make the job easy for organization. The main part of system
will handle the main objects like route designing and time scheduling. A sub part
will be provided for agents to communicate with main software.

7
2.2 OVERALL DESCRIPTION

Product Perspective

The Courier Management System is a new, self-contained product. It manages


the user accounts, courier details, payment details. The different components
include Route Handler, Scheduler which are responsible for route design and time
scheduling by accessing information of transport system details from database.
And the tracker, traces the shipment position and updates the details to database
whenever required.This system consists of browser at users device and
application server. The browser at user device gives user to interact with the
system to register customers, request courier pickup, view customers, view
courier status, and all other kinds of functionalities while application server
manages the client information interacts with the data storage(database) used to
store and retrieve information about customers and couriers.

Block diagram of client server architecture

The clients in this perspective or according to our project are user/customer,


admin, employee. Each client should consist of a faster browser and device
connected to internet to connect with application server.
8
The client opens browser and type the URL provided by courier company to
connect to online courier management system. Then request is sent to the
application server which displays user interface as response to the request.

Application server is where the main logic and codes of all the functionalities
resides which is easy to maintain if there is any action of upgradation of the
system or updating the system software required it is easy because only
updating software at the application server is enough to update the whole
system.

Application server is connected to data storage (database) which is used to


store and retrieve records of customers registered, couriers requested , status of
the couriers, customer information, courier information etc.

Product Features

The users can easily handle the shipment transportations to different places and
the payments that are made by customers. The different components of system
include Route Handler, Scheduler which are responsible for route design and time
scheduling by accessing information of transport system details from database.
And the tracer, tracks the shipment position and updates the details to database
whenever required. The general users (customers) can easily register account and
place their request for courier service. The Route handler uses sophisticated and
efficient algorithms to generate the best route for transportation of courier from
source to destination by considering the constraints. The tracker provides users
with the information about the whereabouts of package. The payments of
customers are managed by the software by redirecting to payment portal. The
central database, stores all the data and can be accessed for report generation.

9
User Classes and Characteristics

General Users (customers): They will be in a position to access to the services


provided by system through the Internet and acknowledge their account status.
To do so, they need to register an account and login with the credentials. They
can also cancel the service depending on the situation.

Administrators: They are the core users and are able to add new users to the
system and manage their details and they can also make changes to database
information. They can update the detailed information about the transport system
and time slots. They can also get the overall report of the user accounts, courier
information and payment transactions.

Specific Users (employees): They login at the specific level and this is to get
access to the database at a specific level. They can view shipments status in the
system. They can also manage the courier transportation. They carefully look
after the all the shipment transportations from source to destination and detect the
problems during the transportation. They are responsible for addressing the
customer complaints and resolving them.

Operating Environment

The minimum hardware requirements needed are 1 GB RAM and 10 GB hard


disk space and Intel Pentium 4 processor or any other equivalent processor. But
for efficient use of software, recommended hardware requirements are 1 GB
RAM and 50 GB secondary storage and Intel i3 processor or any other equivalent
processor.
The Courier Management System can operate in different versions of Windows
platforms but the minimum requirement is windows xp and it can also run on
different flavors of Linux like Ubuntu, fedora, zorin, red Ubuntu and others. Even
though it can be used on different Operating systems, generally works well on
10
Windows platform and it is strongly recommended to use a windows operating
system for better use of software.A central Database server is required with Linux
environment and minimum 2 GB RAM and minimum 1 TB storage with Intel
core duo or higher.
Hardware Requirements

Processor : Pentium 4 or higher

RAM : 1GB or above

Hard Disk : 10GB or above

Software Requirements

Operating System : Windows XP or above, Linus, Mac

Latest Browser : Edge, Chrome, Firefox, etc

Oracle SQL : Version 9.0 or above

Programming Languages: JAVA,HTML,CSS

Design and Implementation Constraints

Each user must keep their password as confidential. General users can only access
the info about their accounts and orders. Specific users can access shipment
details. Only administrator can make changes to the specific information in
database, like transport system and time slots. As a central database is used, it
should be provided with the capability of backup and recovery if any damage
occurs. Providing concurrent access to server and avoiding conflicts even in the
times of overload to system should be taken care of. The components of software
should be designed in such a way that they should be capable of working error
free by interacting with each other and accessing database as different copies of
software are working from different places. To make it clear, as the different
components of software, like Route handler and scheduler will be working from

11
different places and share a common database, synchronization mechanisms
should be provided to avoid conflicts between the during the route design and
time schedule. The users who are accessing the services remotely should be
connected to software first then software must provide required services by
interacting with server.

User Documentation

The Online Courier Management System will be provided with user manual for
the administrator and specific users to understand the operations of software
system. A help menu will be provided in software system to get the information
about any specific aspect of software system operations. General users can access
the help from anywhere about the process of registration and steps and
precautions that need to be followed during the use of services provided by the
Online Courier Management System. Tutorials can be accessed if any one faces
difficulty with understanding user interface.

Assumptions and Dependencies

The Online Courier Management System is being developed assuming that the
data provided by the clients is appropriate for the algorithms used in Route
handler and Scheduler. The transport system data and the time slots available
should be carefully updated to the database server so that the components of the
system can work appropriately and efficiently. The Online Courier Management
System uses a central database to store data and to manage the different services
for clients. If the central database server crashes or faces any problem, then it
would directly affect the whole software and leads to the termination of service
until and unless an alternate central database server is provided with backup
data.The database server is assumed to be capable of handling multiple
concurrent accesses from different users with synchronization techniques

12
wherever required. The system depends on a 24/7 high-speed internet connection
to provide services to users. In the initialization process of the Courier
Management System Software, the basic information about transport system and
time slots available should be updated to the central database so that Route
handler and Scheduler can do their job as needed.

13
2.3 SYSTEM FEATURES

System Authentication

System makes sure that fraudulent behavior from users is prohibited and only
authenticated users can access data and make changes to data depending on their
authentication level.

Management

System provides effective ways for handling the details of customers, employees
and courier.

The whole management process is automated for the ease of organization and
their customers.

Tracking

System stores tracking status of courier so users can track the transit status of
their courier. These updates about the whereabouts of the shipments are uploaded
to database by a system software component called Tracker and it is responsible
for providing shipment status check service to users.

Payment handling

System provides gateways for payments through online from customer to


company and vice versa. The detailed report on payments and transactions can be
generated with the help of software.

14
Route designing and scheduling

System uses sophisticated and efficient algorithms to design routes and time
schedule for packages to travel in the best path and provides the employees with
different ways for transporting the courier from source to destination.

15
2.4 EXTERNAL INTERFACE REQUIREMENTS

User Interfaces

Login Screen: This is for the Administrator and users to get into the software. It
requires a user name and password.

New Registrations: This utility is to create new user accounts.

Reports: This utility is used to generate reports of the login and account details of
the users.

User Login (Client Side): The user has to give a username and password by which
he or she can access the services.

User Account: This enables the user to view the account status of their account.

Hardware Interfaces

The data is stored in the structured data format and a traditional database system
can be used with a simple ER model schema. The server is directly connected to
the main software system. Also the admin has the access to the database for
accessing the account details, payments report, courier details, and transportation
system details.

The user access to the database in the server is only read only whereas it is
read/write for administrator.

16
Software Interfaces
A central database system is maintained for the storage and management of the
data that is necessary for the software. A Linux based operating system is used
on the server side and any latest version windows or Linux operating system can
be used on client side. As the database is centralized, the software components
from different places share the data in the database. Especially the information
about available transport system and time slots is used as global data and shared
in a specific manner among different copies of software and hence it should be
provided with the synchronization access to avoid errors during route design and
schedule design.

Communications Interfaces

Following communication interfaces are used in system and data is actually


transmitted through physical layer of OSI Layers. IPv4 will be used for
connection.
Web Browser : Any HTTP supported web browser like IE, Firefox, etc.
Protocol : HTTP and TCP/IP.
Any web browsers listed above or any latest and faster web browser can be used
for communication between the Online crime reporting system and the user. And
the protocols used are HTTP and TCP/IP. If a general user wants to access the
services of Courier Management System from a remote place, it can be done using
a network connection and any latest browser as an interface between software
system and the user. The agents are supposed to update the status of shipments
that are related to them with the help of an application that is provided to them.

17
2.5 NON-FUNCTIONAL REQUIREMENTS

Performance Requirements

The performance of the system should be adequate for the users even if there are
thousands of users concurrently accessing the services. Unfortunately, if the
system failure occurs then the recovery process should be initialized and services
should be revived as soon as possible and the backup data must be loaded so that
the previous state of system can be re-spawned.

Safety Requirements

The whole information that is being used for the automation of the Courier
Management services is centralized. There may be situations where this data can
be damaged or lost because of some physical damage to database or any other
kind of damage. So, the backup of data should be created periodically. An
alternate central database system service should be provided as an insurance to
avoid termination of services during the current database system failure which is
not recoverable.

Security Requirements

The login facility of the system ensures only authorized users can access it, thus
provides security. The system should not be compromised with fraudulent
behaviour of the scammers.

Software Quality Attributes

Accessibility:

System can be accessible at any time and at any place.

18
Availability:

System will be available at any time i.e. 24 x 7 service.

Correctness:

The designed route and time schedule for the shipment transportation should be
valid and accurate.

Maintainability:

System provides the capability to backup data and keep log of all errors.

Flexibility:

The software should be flexible for changes in data size and service expansion.

Reliability:

System should be able to recover from failures with no loss of data.

19
CHAPTER 3

DESIGN DOCUMENT

3.1CONTEXT DIAGRAM

A system context diagram (SCD) in engineering is a diagram that defines the


boundary between the system, or part of a system, and its environment, showing
the entities that interact with it. This diagram is a high level view of a system. It
is similar to a block diagram. System context diagrams show a system, as a whole
and its inputs and outputs from/to external factors.

Here is a context diagram for Online Courier Management System.

20
3.2 UNIFIED MODELLING LANGUAGE(UML) DIAGRAMS

The Unified Modelling Language allows the software engineer to express an


analysis model using the modelling notation that is governed by a set of syntactic
semantic and pragmatic rules. The following are the UML diagrams.

Use case Diagram

Use case diagrams are a set of use cases, actors, and their relationships. They
represent the use case view of a system. A use case represents a particular
functionality of a system. Hence, use case diagram is used to describe the
relationships among the functionalities and their internal/external controllers.
These controllers are known as actors.

No of actors for the system: 3

1. User ( customer)
2. Employee
3. Admin

Use cases (activities) for actor User(customer) are

1. Log in
2. Update profile
3. Registration
4. Send courier
5. Make payment
6. View status
7. Cancel courier

Use cases (activities) for actor Employee are

1. Log in
2. Update profile
3. Update courier status
21
4. Manage courier
5. Manage customer

Use cases (activities) for actor Admin are

1. Log in
2. Update profile
3. Manage courier
4. Manage customer
5. Manage shipment
6. Manage employee

22
Use Case Diagram

23
Class Diagram

Class diagrams are the most common diagrams used in UML. Class diagram
consists of classes, interfaces, associations, and collaboration. Class diagrams
basically represent the object-oriented view of a system, which is static in nature.
Active class is used in a class diagram to represent the concurrency of the system.
Class diagram represents the object orientation of a system. Hence, it is generally
used for development purpose. This is the most widely used diagram at the time
of system construction.

Number of classes: 4

1. Customer
2. Employee
3. Courier
4. Admin

Class is represented by a rectangle that includes the class name, its attributes, its
operations.

Customer Class:

Attributes:

1.custName – Customer Name

2.custId – Customer Id

3.Addr – Customer Address

4.phnNo – Customer Phone Number

5.eMail – Customer E-Mail

Operations:

1.reqPickUp() : to request pick up of a courier

24
2.login() : to enter login credentials

3.makePayment() : to pay the money for the courier service

4.cancelCourier() : to cancel the courier

5.trackStatus() : to track the courier

6.updateProfile() : to update the profile of the customer

Employee Class:

Attributes:

1.empName – Employee Name

2.empId – Employee Id

3.empPhn – Employee Phone Number

Operations:

1.login() : to enter login credentials

2.checkCourier() : to check the courier details

3.checkCust() : to check the customer details

4.updateStatus() : to update the courier status

5.updateProfile() : to update the profile of the employee

Courier Class:

Attributes:

1.courierId – Courier Id

2.sourceAddr – Source Address

3.destAddr – Destination Address

4.courierType – Courier Type


25
Operations:

1.getId() : to get courier id

2.getStatus() : to get/know the courier status

Admin Class:

Attributes:

1.adminId – Admin Id

2.empName – Admin Name

Operations:

1.updateProfile() : to update the profile of the admin

2.manageEmp() : to manage theemployee details

3.manageCust() : to manage the customer details

4.manageShipment() : to manage the shipment(courier)details

Customer class has relationship with Employee and Courier classes. Both
relationships are bidirectional association. Customer and Courier is one to many
relationship. Customer and Employee is one to one relationship. Employee has
relationship one to one with customer, many to many with courier and many to
one with admin classes with bidirectional association with all three classes.
Courier class has relationship with customer, employee and admin classes with
bidirectional association. Many to many relationship with employee, many to one
relationship with customer and admin classes. Admin class has relationship one
to many with employee, courier and customer classes with bidirectional
association.

26
Class Diagram

27
Object Diagram

Object diagram represents an instance of a class diagram. The basic concepts are
similar for class and object diagrams. They also represent the static view of a
system but this static view is a snapshot of the system at a particular moment.
They are used to render a set of objects and their relationships as an instance.

Here the object diagram is a snapshot of the system at one particular moment.

Customer details:

name = prashanth, id = 1234, address = block 7 , phone = 9876543210, email =


prashanth@gmail.com

Employee details:

name = saicharan, id = 5432, phone = 8766543452

Courier details:

id = 65778867, source address = block 7, destination address = block 1, courier


type = fast

Admin details:

id = 111111, name = satya

28
Object Diagram

29
Sequence Diagram

A sequence diagram is an interaction diagram. From the name, it is clear that the
diagram deals with some sequences, which are the sequence of messages flowing
from one object to another. Interaction among the components of a system is very
important from implementation and execution perspective. Sequence diagram is
used to visualize the sequence of calls in a system to perform a specific
functionality.

Customer enters login credentials in to the system. System stores the credentials
to database.Database checks whether the credentials of customer correct or not.If
correct, it sends valid response to system.Then system response is success to the
customer.That is, customer successfully login in to the system.Customer sends
request courier to system.System asks for to enter details and courier
details.Customer enter the details in to the system.System stores the details in
database.An ID is generated by database for the details and returns the ID to the
system.System returns the order details to the customer (summary of order and
for confirmation).Customer makes the payment for the order.System creates a
payment portal.System enter the details, after entering system destroys the details
(eg: card details).Payment portal return the success message to system after
successful payment.And payment portal is destroyed means portal is
closed.System stores the payment details in database.Database generates the
payment receipt and send it to the system.System confirms the order by
generating confirmation receipt to the customer.

30
Sequence Diagram

31
Collaboration Diagram

A Communication diagram OR Collaboration Diagram models the interactions


between objects or parts in terms of sequenced messages. Communication
diagrams represent a combination of information taken from Class, Sequence,
and Use Case Diagrams describing both the static structure and dynamic
behaviour of a system.

Number of objects: 4

1. Customer
2. System
3. Payment portal
4. Database

Flow of communication among these four objects through messages (actions) or


message sequencing.

1. Customer login in to the system


2. System checks details with the help of database.
3. Database sends valid message to system.
4. System sends success message to customer.
5. Customer send request for courier to system.
6. System asks or send message to customer to enter the details.
7. Customer enter courier details and sends to system.
8. System stores the details in database.
9. Database returns ID to system.
10. System return order details to customer.
11. Customer make payment in the system.
12. System enter payment details in to the payment portal.
13. Payment portal returns payment success message to system.
14. System stores payment details in database.

32
15. Database sends payment receipt to system.
16. System sends order confirmation message to customer.

Collaboration Diagram

33
State chart Diagram

Statechart diagram describes the flow of control from one state to another state.
States are defined as a condition in which an object exists and it changes when
some event is triggered. The most important purpose of Statechart diagram is to
model lifetime of an object from creation to termination.

Statechart diagrams are also used for forward and reverse engineering of a
system. However, the main purpose is to model the reactive system.

From initial or start state the user can either go to register state (if new user) or
logged in state (already registered). From register state on successful registration
user goes to logged in state. From logged in state on request courier user goes to
enter courier info state. At this state by entering courier details user goes to next
state i.e. make payment. At this state user enters payment details. On successful
payment user goes to courier transit state which is the next state. Here courier
received by agent undergoes transitions to two states either courier delivered on
successful delivery or courier returned on failed delivery i.e. no receiver at
destination. After this is the final or end state.

34
Statechart Diagram

35
Activity Diagram

Activity diagram describes the flow of control in a system. It consists of activities


and links. The flow can be sequential, concurrent, or branched. Activities are
nothing but the functions of a system. Activity diagrams are used to visualize the
flow of controls in a system.

Customer control flow in system

Start

1. Sign in

2.Check details

I. if No return to action 1.

II. If yes then go to action 3.

3. Select option

I. Send courier

II. Track courier

III. Cancel courier

If it is I. Send courier then perform

1. Request for sending

2. Enter Courier details

3. Make payment

4. Payment Success

i. if no then return to Make Payment action

36
ii. if yes then continue

5. Confirmation

i. if yes then go to end state

ii. if no then perform Roll Back Payment

6. Roll Back Payment - repeat from action 1.

If it is II. Track courier then perform

1.Track Courier

2. Enter Courier ID

3. Valid Id

i. if no repeat from action 2.

ii. If yes then perform Display Courier Status action.

4.Display courier status andreaches end point.

If it is III. Cancel courier

1. Cancel courier

2. Enter courier ID

3. Valid Id

i. If no repeat from action 2.

ii. If yes then perform next action.

4. Choose reason

i. If Invalid reasonit reaches end point

ii. If Valid reason then perform next action.

5. Cancel courier thenreaches end point


37
Activity Diagram

38
Component Diagram

A component diagram displays the structural relationship of components of a


software system. These are mostly used when working with complex systems
with many components. Components communicate with each other using
interfaces. The interfaces are linked using connectors.

Here the components are:

Customer

Courier

Employee

Admin

Database

Customer component gives information through interfaces to the database,


employee and courier components and vice versa. Admin interacts with
components employee and database through interface and vice versa.

39
Component Diagram

40
Deployment Diagram

Deployment diagrams are a set of nodes and their relationships. These nodes are
physical entities where the components are deployed. Deployment diagrams are
used for visualizing the deployment view of a system. This is generally used by
the deployment team.

Node is hardware or software object.

Here the nodes are:

User(Customer)

Employee

Courier system Database

Admin

Courier system database communicate with the employee, employee


communicate with user, user communicate with admin and admin courier with
courier system database.

41
Deployment Diagram

42
3.3 DATABASE DESIGN

Entity Relationship Model

The relation upon the system is structure through a conceptual ER-Diagram,


which not only specifics the existential entities but also the standard relations
through which the system exists and the cardinalities that are necessary for the
system state to continue.

The entity Relationship Diagram (ERD) depicts the relationship between the data
objects. The ERD is the notation that is used to conduct the date modelling
activity the attributes of each data object noted is the ERD can be described resign
a data object descriptions.

The set of primary components that are identified by the ERD are

Data object Relationships

Attributes Various types of indicators.

The primary purpose of the ERD is to represent data objects and their
relationships.

Entity-Relationship(E-R) Diagram

An entity-relationship (E-R) diagramis a graphical representation of an


information system thatshows the relationship between people, objects, places,
concepts or events within that system. An E-R diagram is a data modelling
technique that can help define business processes and can be used as
thefoundation for a relational database.

43
Normalizationof Data Tables

It is a process of converting a relation to a standard form. The process is used to


handle the problems that can arise due to data redundancy i.e. repetition of data
in the database, maintain data integrity as well as handling problems that can arise
due to insertion, updation, deletion anomalies.

Decomposing is the process of splitting relations into multiple relations to


eliminate anomalies and maintain anomalies and maintain data integrity. To do
this we use normal forms or rules for structuring relation.

Insertion anomaly: Inability to add data to the database due to absence of other
data.

Deletion anomaly: Unintended loss of data due to deletion of other data.

44
Update anomaly: Data inconsistency resulting from data redundancy and partial
update.

Normal Forms

These are the rules for structuring relations that eliminate anomalies.

First Normal Form

A relation is said to be in first normal form if the values in the relation are atomic
for every attribute in the relation. By this we mean simply that no attribute value
can be a set of values or, as it is sometimes expressed, a repeating group.

Second Normal Form

A relation is said to be in second Normal form is it is in first normal form and it


should satisfy any one of the following rules.

1. Primary key is a not a composite primary key

2. No non key attributes are present

3. Every non key attribute is fully functionally dependent on full set of primary
key.

Third Normal Form

A relation is said to be in third normal form if their exits no transitive


dependencies.

Transitive Dependency :If two non key attributes depend on each other as well as
on the primary key then they are said to be transitively dependent.

The above normalization principles are applied to decompose the data in multiple
tables thereby making the data to be maintained in a consistent state.

45
Tables

The Online Courier Management System implements Oracle in the backend and
thus the database schema is defined and modified through Oracle SQL. The
Online Courier Management System consist of tables for Customers, Couriers,
Employees, Admin, Shipments

Customer

Name Type Null?


CustId Number(10) Primary Key
CustName Varchar(50) Not Null
CustAddress Varchar(50) Not Null
CustPhone Number(10) Not Null
CustEmail Varchar(25) Not Null

Courier

Name Type Null?


CourierId Number(10) Primary Key
SourceAddress Varchar(50) Not Null
DestAddress Varchar(50) Not Null
CourierType Varchar(10) Not Null

Admin

Name Type Null?


AdminId Number(10) Primary Key
AdminName Varchar(50) Not Null
AdminPhone Number(10) Not Null
AdminEmail Varchar(25) Not Null

46
Employee

Name Type Null?


EmpId Number(10) Primary Key
EmpName Varchar(50) Not Null
EmpAddress Varchar(50) Not Null
EmpPhone Number(10) Not Null
EmpEmail Varchar(25) Not Null
EmpSalary Number(10) Not Null

Shipment

Name Type Null?


ShipmentId Number(10) Primary Key
ShipmentDate Date Not Null
ShipmentType Varchar(50) Not Null
ShipmentDesc Varchar(50) Not Null

Specifying Primary key and Analysing Relationships

Customer(CustId, CustName, CustAddress, CustPhone, CustEmail)

Courier(CourierId, SourceAddress, DestAddress, CourierType)

Admin(AdminId, AdminName, AdminPhone, AdminEmail)

Employee(EmpId, EmpName, EmpAddress, EmpPhone, EmpEmail, EmpSalary)

Shipment(ShipmentId, ShipmentDate, ShipmentType, ShipmentDesc)

CustId, CourierId, AdminId, EmpId, ShipmentId are the primary keys.

47
Normalizing the Tables

After normalizing the tables using 1NF, 2NF, 3NF and BCNFwe observe there is
no need to divide the tables. Therefore the tables after normalization are in the
form given below

Customer

CustId CustName CustAddress CustPhone CustEmail

Courier

CourierId SourceAddress DestAddress CourierType

Admin

AdminId AdminName AdminPhone AdminEmail

Employee

EmpId EmpName EmpAddress EmpPhone EmpEmail EmpSalary

Shipment

ShipmentId ShipmentDate ShipmentType ShipmentDesc

48
3.4USER INTERFACE

Here are some of the screenshots of the proposed system.

Home Page

This is Home Page for the Online Courier Management System.

49
Admin login

This is the screenshot of Admin login. Admin log in to the system with his/her
username and password.

50
Admin Privileges

This is a screenshot of the Admin privileges. Some of them are Add an employee,
Employee details, Payslip, View salary details, Manage customer, Manage
shipment, Report to customer, View query of customer etc.

51
Employee registration

This is for registration of an employee. Employee should specify id, name,


password, date of birth, gender, address, email, phone numberinorder to register.

52
Employee details

In this section by selecting the employee id, details of a particular employee can
be retrieved. Employee details can also be updated using update option.
Employee details can be deleted after an employee resigns by selecting delete
option. View all gives details of all employees.

53
Employee privileges

This shows the Employee Privileges like view employee details, update profile,
update courier status, check customers, check couriers, view salary details etc.

54
Courier privileges

These are the privileges of a courier. They are booking details, incoming details,
non delivered details, delivery details, pickup centre, company details etc.

55
Payslip

This gives the Payslip details of Employees. Employees need to provide their id
and date of birth. Payslip is generated with their name, salary, advances,
incentives and net salary.

56
Query to customer/admin

Customer can pose a query by providing their id, name, date, time and query and
click submit. Admin can answer these queries by contacting the customers. In the
same way queries can be asked to customers also.

57
Courier booking

This is a screenshot for booking a courier. It includes several fields like id, date,
time, booked by(name), city, area, state, weight, amount, source address i.e. from
address, and destination address i.e. to address. Both Address has fields name,
address, phone number.

58
View courier details

This gives the details of the courier. By entering the courier ID details of courier
can be retrieved.

59
Customer privileges

This shows the privileges of the customer. They include book a courier, view
booked couriers, view status of courier, view customer details, query to admin.

60
View customer details

This gives the customer details. It retrieves details of particular customer by


selecting that customer’s id.

61
About Us

Gives details about the company.

Contact Us

Gives the contact information.


62
CHAPTER 4

TESTING
Software testing is a critical element of software quality assurance and represents
the ultimate service of specification design and coding. The increasing visibility
of software failure and motivating forces for well planned, through testing.

Testing is the process of finding differences between the expected behaviour


specified by system models and the observed behaviour of the system. Testing is
a critical role in quality assurance and ensuring the reliability of development and
these errors will be reflected in the code so the application should be thoroughly
tested and validated. Testing is the attempt of falsification of the system with the
respect to the system models.

4.1 TESTING OBJECTIVES

Testing is a process of executing a program with the intent of finding an error.

A good test case is one that has a high probability of finding an as yet
undiscovered error

A successful test is one that uncovers as yet undiscovered error.

The above objectives imply a dramatic change in view point. They move counter
to the commonly held view that a successfully, it will uncover errors in the
software.As a secondary benefit, testing demonstrates that software functions
appear to be working according to the specification and that performance
requirements appear to have been met. In addition, data collected as testing is
conducted provides a good indication of software.

Testing can’t show the absence of defects it can only show that the software errors
are present. It is important to keep this started in mind as testing is being
conducted.

63
4.2 TESTING PRINCIPLES

Before applying methods to design effective test cases, a software engineer must
understand the basic principles that guide software testing

• All tests should be traceable to customer requirements.

• Tests should be planned before testing begins.

• Testing should begin “in small” and progress towards testing “inlarge”

Exhaustive testing is not possible.

64
4.3 TYPES OF TESTING

There are three basic approaches to testing

Black Box Testing

It is designed to validate functional requirements without regard to working of


the program. In this test already trained input is given, it recognizes it. If not
trained input is given it gives the closely matched character in training set.

White Box Testing

It focuses on the program control structure. Test cases are derived to ensure that
all the statements in the program have been executed at least once during testing
and that all logical conditions have been exercised. In this testing the functions
are checked for correct execution. If the already trained character is added to
training set it gives error. If a new character is added it adds it to training set.

Condition Testing

It is a test case design method that exercises the logical conditions contained in a
module. The condition testing focuses on testing each condition in the operation.

65
4.4 SYSTEM TESTING

System testing is the important phase of testing. This phase is used to test the
satisfaction of functional and non-functional requirements that were in
Requirements Analysis Document. The tests included in this phase are as follows:

1. Functional test or Requirements test:

In this test we need to test the achievement of functional requirements stated in


Requirements Analysis Document are not met or not.

All inputs were processed through navigation of menus.

All computations were performed within the specified Functions.

Storage of training sets in a text file.

2. Performance test:

In this test we need to test the achievement of design goals stated in System
Design document.

3. Volume test:

When a large text is given as input for the system, it takes more time to train.

4. Timing test

Timing test is implemented to estimate the average time taken to process and
display the result.

66
4.5 TEST CASES

A test case is a specification of the inputs, execution conditions, testing


procedure, and expected results that define a single test to be executed to achieve
a particular software testing objective, such as to exercise a particular program
path or to verify compliance with a specific requirement. Test cases underlie
testing that is methodical rather than haphazard. Formally defined test cases allow
the same tests to be run repeatedly against successive versions of the software,
allowing for effective and consistent regression testing.

Some of the Test Cases of the proposed system are given below.

Test Case: Log-in to the system with valid details

Test Case No Purpose Input Expected Output

1 Checking log in with Enter correct User enters into the


valid details username and system
password

Test Case: Log-in to system with invalid details

Test Case No Purpose Input Expected Output

2 Checking log in with Enterwrong User should not enter


invalid details username or into the system. An error
password message is displayed

67
Test Case: Pressing Log-in button without specifying any details

Test Case No Purpose Input Expected Output

3 Checking response Press log-in An error message is


when username or without displayed
password is empty providing
and lo-in is pressed either
username or
password

Test Case: Data entry into the Database

Test Case No Purpose Input Expected Output

4 Checking data entry Insert data Data inserted into tables


into database from
mainframe

Test Case: Check response when user profile is updated

Test Case No Purpose Input Expected Output

5 Checking response Click update Displays message that


when user profile is profile and shows profile is updated
updated update the
user data and
click save

68
Test Case: Check response when customer requests courier pickup

Test Case No Purpose Input Expected Output

6 Checking response Click request Displays message that


when customer courier shows
requests courier pickup and
pickup enter
required data

Test Case: Customer cancels courier

Test Case No Purpose Input Expected Output

7 Checking response Customer enters Message should be


when customer courier id, clicks displayed that courier
cancels courier cancel courier is cancelled
and provides
valid reason

Test Case: Check response when Make Payment is pressed

Test Case No Purpose Input Expected Output

8 Checking payment Press Make User should enter


Payment Payment portal with
button many payment options

69
Test Case: Check Delivery status

Test Case No Purpose Input Expected Output

9 Checking delivery Change delivery Update in delivery


status status status is observed

Test Case: Check Employee details

Test Case No Purpose Input Expected Output

10 Checking employee Admin enters the Respective employee


details employee id and details are displayed
click get details

Test Case: Check Customer Details

Test Case No Purpose Input Expected Output

11 Checking customer Admin enters the Respective customer


details customer id and details are displayed
clicks get details

70
Test Case: Check Courier details

Test Case No Purpose Input Expected Output

12 Checking courier Admin enters the Respective courier


details courier id and details are displayed
click get details

71

You might also like