You are on page 1of 28

Introduction

To write
2. System Analysis
System analysis is the process of gathering and interpreting facts, diagnosing problems and
using the information to recommend improvements on the existing system. System analysis is
a problem solving activity that requires intensive communication between the system users
and system developers.

System analysis or study is an important phase of any system development process. The
system is viewed as a whole, the inputs are identified and the system is subjected to close
study to identify the problem areas. The solutions are given as a proposal. The proposal is
reviewed on user request and suitable changes are made. This loop ends as soon as the user is
satisfied with the proposal.

2.1. Existing System


There are many online shopping websites today. However, consumers still hesitate a
lot before making a purchase online. Consumers often compare the prices &
specification of the products before making a purchase. Also, consumers often have
many questions about the product and during online shopping consumers dont know
whom to ask such questions. This situation doesnt arise while shopping through
offline modes where the physical stores & shops often have experts to answer
consumer questions about the product.

2.2 Drawbacks in the Existing System


User cant compare prices
Users cant compare specification of the product
Users cant ask clarification questions about the product to Product Experts
Users find the online shopping very time consuming
Product description is limited
Users cant set price alert for a product

2.3. Proposed System


The objective of the project is to design an online shopping system which allows user
to compare various products based on price and other specifications, set price alerts or
to direct their questions about a product to a knowledgeable expert.

2.4. Need for Proposed System


The proposed online shopping system would have many advantages compared to other
traditional online shopping websites.
Features:
Users can ask questions about the product to a Product Expert
Users can set price alerts on a product
Users can compare prices of a product with similar products on the website

2.5. Scope
This document details out all the information required in the Software Development Life
Cycle (SDLC) to develop an Online Shopping System. It is meant for use by the developers
and will be the basis during testing phase. Any changes made to the requirements in the
future will have to go through formal change approval process.

2.6. Feasibility Study


Feasibility study is the process of determination of whether or not a project is worth doing.
Feasibility studies are undertaken within tight time constraints and normally culminate in a
written and oral feasibility report. I have taken two weeks in feasibility study with my co-
developer. The contents and recommendations of this feasibility study helped us as a sound
basis for deciding how to proceed the project. It helped in taking decisions such as which
software to use, hardware combinations, etc.
2.6.1. Technical Feasibility
Technical feasibility determines whether the work for the project can be done with the
existing equipment, software technology and available personnel. Technical
feasibility is concerned with specifying equipment and software that will satisfy the
user requirement. This project is technically feasible given the present Front End and
Backend Technology we have.
2.6.2. Financial & Operational Feasibility
Economical feasibility determines whether there are sufficient benefits in creating to
make the cost acceptable, or is the cost of the system too high. This requires doing a
cost benefit analysis. On the behalf of the cost-benefit analysis, the proposed system is
feasible and is economical regarding its pre-assumed cost for making a system as it
provides users a superior experience compared to traditional online shopping websites
where users cant ask questions about products, set price alerts or compare prices of
similar products.

Operational feasibility criteria measure if it feasible to support the backend and supply
chain operations of the project. Even operationally, the project is feasible given that
the only extra requirement for this project compared to the traditional online shopping
websites is the availability of product experts.
3. Requirement Analysis

The requirements analysis and gathering processes are critical for the success of any software
engineering project. Requirements analysis in software engineering is a process that
determines the tasks that are required to determine the needs and conditions to design a new
product or to make modifications in any existing product/application. This process considers
all the stakeholders conflicting requirements, and analyzes the documentation and validation
of the system. The requirements should be actionable, measurable, testable, and related to the
defined needs of the system design. From the software-engineering perspective, requirements
analysis is a three-step process.

A. Requirements Elicitation:
Elicitation of requirements, also known as requirements gathering, includes the task
of identifying various requirement types from stakeholders or from project
documentation.

B. Requirements Analysis:
Analysis of requirements determines if the gathered requirements are clear, complete,
and consistent. The analysis also handles any ambiguous requirements that do not
clearly state what needs to be implemented, which could create a loss of resources and
time if identified later in the development or testing phase.

Requirement analysis requires identifying the stakeholders and taking their needs into
account to help them understand the implications of designing the new system, along
with what modules are worth implementing and which ones are more cost efficient,
and then to create a software-requirement specification document. To clearly elicit the
stakeholders requirements, different processes, such as developing a scenario or user
stories, and identifying the use case which is being used for the project, can be
utilized. Stakeholder analysis says that, to clearly gather the requirements of the
project, analysts first need to identify the stakeholders. Stakeholders are people or
organizations that have a valid interest or use in the system.

The steps to identify the stakeholders are as follows:

Anyone who operates the system.


Anyone who benefits from the system
Anyone who is directly or indirectly involved in purchasing the system
People or organizations opposed to the system
Organizations responsible for the system design
Organizations that regulate the financial or safety aspects of the system

Once the stakeholders are successfully identified, interviews are conducted through
different processes; the needs and requirements of the system are identified, and a
requirements specification document is prepared. The document is then discussed
with the major stakeholders to identify any ambiguity with the requirements and
understanding of the system.

C. Requirements Documentation:
This step involves documenting the requirements in various forms, including
summary lists, natural language documents, visual documents, use cases, user stories,
or process specifications. A requirement specification document is categorized in
different ways according to the stakeholders need, helping to create a clear contract
between development and business. The following sections include the different 9
categories of requirements specification document that are essential for designing this
application: the functional requirements, constraints, system requirements, etc.

3.1. User Characteristics:


The users of the online shopping-cart application, based on their roles, are:

Customer who visit the website to browse/buy products


Admin who manage the website and operations
Product Experts who answer customer queries about products

3.2. Functional Requirements


This section contains the functional requirements for the online shopping-cart
application. The functional requirements, as collected from the users, have been
categorized as follows to support types of user interactions that the system shall have:
3.2.1. Customer
As a customer, I should be able to navigate the website and look at different product
categories, subcategories and different brands and products within the subcategories.
As a customer, I should be able to login into the website using a username &
password
As a customer, I should be able to add/delete a product to cart and do checkout.
As a customer, during checkout I should be able to complete payment, mention my
delivery address and get an invoice for the ordered product
As a customer, I should be able to compare prices of similar products
As a customer, I should be able to raise queries about a product to a product expert.

3.2.2. Administrator
As an administrator, I should be able to add/remove/update details of products, add
categories, subcategories
As an administrator, I should be able to enable successful payment during checkout
process, generate invoice
As an administrator, I should be able to ensure delivery of the ordered product to the
address mentioned by the customer by passing the information to the supply chain
team.
As an administrator, I should be able to direct product queries of customers to
relevant product experts.

3.2.3. Product Experts


As a Product Expert, I should be able to view & respond to the questions customer
has for a particular product.

3.3. Performance Requirements


This section lists the performance requirements expected from the online shopping-cart
application.
The users shall be able to add an item to the cart in fewer than 5 seconds.
The users shall be able to view information about an item in fewer than 5 seconds.
The users shall be able to check out the items in the shopping cart within 10 seconds
after completing the order form.
The navigation between pages shall take fewer than 5 seconds.
The application shall be able to do a validation check on the information provided in
the user-authentication form and the place-order form to avoid false or incomplete
information.

3.4. Non-functional Requirements

EFFICIENCY REQUIREMENT
When an online shopping cart android application implemented customer can
purchase product in an efficient manner.

RELIABILITY REQUIREMENT
The system should provide a reliable environment to both customers and owner. All
orders should be reaching at the admin without any errors.

USABILITY REQUIREMENT
The android application is designed for user friendly environment and ease of use.

IMPLEMENTATION REQUIREMENT
Implementation of the system using CSS and HTML in front end with JSP as back
end and it will be used for database connectivity. And the database part is developed
in MySQL. Responsive web designing is used for making the website compatible for
any type of screen.

DELIVERY REQUIREMENT
The whole system is expected to be delivered in four months of time with a weekly
evaluation by the project guide.

3.5. External Interfaces Requirements


The interface types found in the online shopping-cart application are as follows:

3.5.1. User Interface:


Users are able to view the home page of the shopping-cart application, browse the different
categories, browse and add any number of items from any categories in the shopping cart,
look for information about each product, raise questions about a product with a product
expert, compare prices of similar product, set price alert for a product, delete the items in the
shopping cart, save the cart for later viewing, check out or continue shopping after adding the
item to the cart, and check out the items by completing the required information in the order
form.

3.5.2. Admin Interface:


The Administrator is able to view the users information that was entered during checkout in
the database, can update the information, price, shipping costs of the items, add or remove
items from the main display.

3.5.3. Product Expert Interface:


The Product Expert is able to view the users questions about a product and can respond to
the questions.

All these interfaces are described, in detail, in the Interface Requirement section.
4. System Design
Architectural Design
Refer Design & Implementation of Ecommerce site for online shopping

To Do

4.1. Data Flow Diagrams


A Data Flow Diagram (DFD) is a diagram that describes the flow of data and the processes
that change data throughout a system. Its a structured analysis and design tool that can be
used for flowcharting in place of or in association with information oriented and process
oriented system flowcharts. When analysts prepare the Data Flow Diagram, they specify the
user needs at a level of detail that virtually determines the information flow into and out of
the system and the required data resources. This network is constructed by using a set of
symbols that do not imply physical implementations. The Data Flow Diagram reviews the
current physical system, prepares input and output specification, specifies the implementation
plan etc.

Data Flow Diagram Symbols:


Four basic symbols are used to construct data flow diagrams. They are symbols that represent
data source, data flows, and data transformations and data storage. The points at which data
are transformed are represented by enclosed figures, usually circles, which are called nodes.
Source or Destination of data
Data Flow
Process
Storage

Steps to Construct Data Flow Diagrams:


Four steps are commonly used to construct a DFD
1. Process should be named and numbered for easy reference. Each name should be
representative of the process.
2. The destination of flow is from top to bottom and from left to right.
3. When a process is exploded in to lower level details they are numbered.
4. The names of data stores, sources and destinations are written in capital letters.

Rules for constructing a Data Flow Diagram:


Arrows should not cross each other.
Squares, circles and files must bear names.
Decomposed data flow squares and circles can have same names.
Draw all data flow around the outside of the diagram.
Symbols Description

Source Or Destination

Data Flow

Process

Storage

Data Flow Diagram Level 0

Administrator

Manage Products,
Categories & Users

Browse & Buy Online Shopping Answer User Queries


Products, System
Raise Query
Product Experts
Visitor/
Registered User
Data Flow Diagram for Admin Task Level 1

Administrator 1. Add /Edit


Category

2. Add /Edit Brand

3. Add/Edit Product

Data Flow Diagram for Add Category Level 2

1.1 Obtain
Administrator
Category details

1.2 Generate a unique


Category id

Category Data Store 1.3 Save Category


details
Data Flow Diagram for Edit Category Level 2

Administrator 1.1 Get Category


details

1.2 Edit Category


details

Category Data Store 1.3 Save Category


details

Data Flow Diagram for Add Brand Level 2

2.1 Obtain Brand


Administrator
details

2.2 Generate a
unique Brand_id

Brand Data Store 2.3 Save Brand


details
Data Flow Diagram for Add Brand Level 3

2.1 Get Brand Category Data


Administrator Store
List

2.2 Select a Category


to add Brand

2.3 obtain Brand


details

2.4 Generate a
unique Brand_id

Brand Data Store 2.5 Save Brand


details
Data Flow Diagram for Edit Brand Level 2

2.1 Get a Brand to


Administrator
edit

2.2 Obtain Brand


details to edit

2.3 Update Brand Brand Data Store


details

Data Flow Diagram for Add Product Level 2

3.1 Obtain
Administrator
Product
details

3.2 Generate a
unique Product
id

Product Data 3.3 Save


Store Product
details
Data Flow Diagram for Add Product Level 3

Administrator 3.1 Get Category Category Data Store


List

3.2 Select a
Category to add
Product

3.3 obtain
Product details

3.4 Generate a
unique Product
id

Product Data Store 3.5 Save


Product details

Data Flow Diagram for Edit Product Level 2

3.1 Get a
Administrator Product to edit

3.2 Obtain
details to edit

3.3 Update Product Data


Product Store
details
Data Flow Diagram for Product Listing Level 1

1. List
User Product Data Store
Products

2. Buy
Product

Data Flow Diagram for Product Listing Level 2

Visitor

1.1 List 1.1 List Products 1.1 List Products


Products by by Brand by Price
Category

Product Data
Store

Data Flow Diagram for Buying Product Level 2


To Do

Data Flow Diagram for Product Expert Level 2


To Do
4.2 E-R Diagram:
E-R diagram are used to organize data as a relation, normalizing relations and finally
obtaining a relational database model.

Below are the elements of an E-R diagram.

Elements Representation

ENTITY: This specifies the real life objects & is


represented as

RELATIONSHIPS: These connect entities &


establish meaningful dependencies between them
and are represented as

ATTRIBUTES: They specify the properties of


entities & are represented by

To Modify ER Diagram for Product Expert


ONLINE SHOPPING SYSTEM ER DIAGRAM

Customer Address

MobNo.
Name
Password
Email

Customer

Give
buys s

Order

Product Category _Id

Order Id

Has

Customer_id Order Date

Category
Has Product
P_Name price
Cat_Feature Discount
P_image
Cat_Description P_Name
P_id
4.4 User Case Diagrams
Register & Login

Browse Categories

Add items to cart

Give Shipping Info

Do Payment & Checkout

User Raise query to experts

Set Price Alerts

Add/Delete Category

Add/Delete Brand

Add/Delete Product

Generate Bill

Register Order &


Product Delivery
Admin

Manage Payment

Manage Product Experts


Login

Receive Customer Query

Respond to Customer Query

Product
Experts
4.5. Tools/Platforms and Languages Used
JAVA DEVELOPMENT KIT
Java Development Kit is used for producing Java programs. The JDK is
developed by Sun Microsystemss Java Soft division. The most recent versions
include the JavaBeans component architecture and support for JDBC.

JAVA SERVLET DEVELOPMENT KIT


The kit for developing Servlets, containing the Servlet API classes and tools, used
to be called the Java Servlet Development Kit (JSDK). ServletRunner is a stand-
alone Servlet Engine which implements the JSDK environment.

JAVABEANS DEVELOPMENT KIT


The JavaBeans Development Kit (BDK) is intended to support the development of
JavaBeans components and to act as a standard reference base for both component
developers and tool vendors. The BDK provides a reference Bean container, the
"Bean Box" and a variety of reusable example source code (in the demo and bean
box subdirectories) for use by both tool and beans developers.

JAVA DATABASE CONNECTIVITY


Java Database Connectivity, a Java API that enables Java programs to execute
SQL statements. This allows Java programs to interact with any SQL-compliant
database. Since nearly all relational database management systems (DBMS)
support SQL, and because Java itself runs on most platforms, JDBC makes it
possible to write a single database application that can run on different platforms
and interact with different DBMS.

WEB SERVER
The Sun Java System Application Server Platform Edition 8 is a J2EE 1.4
platform compatible server for the development and deployment of J2EE
applications and Java Web Services .The runtime portion of a J2EE product. A
J2EE server provides EJB and Web containers.
ENTERPRISE JAVABEANS (EJB) CONTAINER
1) Manages the execution of enterprise beans for J2EE applications. Enterprise.
2) Beans and their container run on the J2EE server.

WEB CONTAINER
It manages the execution of JSP page and servlet components for J2EE
applications. Web components and their container run on the J2EE server.

J2EE Server and Containers

SOFTWARE SPECIFICATIONS
1. OPERATING SYSTEM Windows 2000, NT, XP prof., Vista, Windows 7
2. ENVIRONMENT Java
3. FRONT-END Java HTML-Web Browser (Internet Explorer, Google
chrome etc.)
4. TECHNOLOGY JSP, Servlets
5. BACK-END MySQL
HARDWARE SPECIFICATIONS
CLIENT SERVER

Recommended Minimum Recommended

Processor 850MHz 400MHz 1 GHZ

O.S 2000pro Win9X Win2000ServerEdition

Memory 1024Mb 256Mb 1Gb

Hard Disk 10.3Gb 4.3Gb 40Gb

Backup Extra hard disk Tape drive Dat drive

DEVELOPMENT LANGUAGES
JAVA
Java language was developed by Sun Microsystems in 1991. Java is a platform
independent object oriented programming language. When you are writing programs,
you always consider where this program is finally going to be executed. For instance,
if the program is going to be executed on windows platform, you use the Microsoft
Foundation Classes or if it is a Mac machine, then you use the Mac OS Toolbox.

Also, while finally implementing the programs you insure that along with the source
code the compiler has also been sent as every machine uses some or other kind of
processor, and it becomes necessary to compile your program according to the
destination machines processor. It would be virtually impossible to implement the
applications on the internet, if we imagine the same scenario there because you dont
know where your program is finally going to be downloaded and run. In order to
counteract this problem java has an inbuilt mechanism called JVM (Java Virtual
Machine) which makes your application compatible to the clients machine and your
program can run on any machine on the internet.

Java apart from being object oriented, and providing various features for the internet
programming has many more features which makes it distinctively an appealing
language. Some of these features are:

Architecture Neutral
Robust
Reliable, Safe and Secure
Distributed
HTML

Short for Hyper Text Markup Language, the authoring language used to create
documents on the World Wide Web. HTML defines the structure and layout of a Web
document by using a variety of tags and attributes. HTML is used to define the content
and sketch of the page. Its tags is used inside the codes of Java server pages(JSP)
directly in this project.HTML is a client-side technology, it means an HTML document
is processed entirely by the client or browser. Using HTML tag we can pass the
parameters or query-string variables directly from one page of jsp to another page.
Actually HTML is not a programming language, but it is used in jsp for all the above
reasons.

JAVA SERVER PAGES (JSP)


Java Server Pages is a technology for developing web pages that include dynamic
content. Unlike a plain HTML page, which contains static content that always remains the
same, a JSP page can change its content based on any number of variables items,
including the identity of the user, the users browser type, information provide by the
user, and selection made by the users browser type, information provide by the user, and
selection made by the user.

A JSP page contains standard markup language elements, such as html tags, just like a
regular web page. However, a JSP page also contains special JSP elements that allow the
server to insert dynamic content in the page. JSP elements are widely used for variety of
purposes, such as retrieving information from a database or registering user preferences.
When a user ask for a JSP page, the server executes the JSP elements merges the results
with the static parts of the page, and sends the dynamically composed page back to the
browser.

JAVA DATABASE CONNECTIVITY(JDBC)


The JDBC API is composed of methods defined by a set of classes and interfaces that
enables java applications to communicate with Database Management Systems (DBMS)
or Relational Database Management systems (RDBMS). For this to happen the database
should be installed on the computer and the RDBMS should provide a driver. JDBC
classes and interfaces defined in the package java.sql constitute the JDBC API.

The JDBC interface is a pure java API used to execute SQL statements. The JDBC
provides a set of classes and interfaces that can be used by developers to write database
applications. Basic JDBC interaction, in its simplest form, can be broken down into four
steps:

Open a connection to the database


Execute a SQL statement
Process the results
Close the connection to the database
5. Interface
To Do

6. Testing
Software testing is a critical element of software quality assurance and represents the review
of specification, design and code generation. The increasing visibility of software as a system
element and the attendant costs associated with a software failure are motivating forces for
well-planned thorough testing.

Once source code has been generated, software must be tested to uncover as many errors as
possible before delivery to customer. The goal is to design a series of test cases that have a
high likelihood of finding errors but how? Thats where software testing techniques enter the
pictures.

Software testing involves executing an implementation of the software with test data and
examining the outputs of the software and its operational behavior to check that it is
performing as required. Testing is a dynamic technique of verification and validation because
it works with an executable representation of the system.

6.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 undiscovered error.
A successful test is that uncovers an as-yet- undiscovered error.

6.2. Testing Principle


All tests should be traceable to customer requirement.
Tests should be planned long before testing begins.
The Pareto principle applies to software testing.
Exhaustive testing is not possible.
To be most effective, an independent third party should conduct testing.

6.3. Testing Methods


System testing is the stage of implementation. This is to check whether the system
works accurately and efficiently before live operation commences. Testing is vital to
the success of the system. The candidate system is subject to a variety of tests: on line
response, volume, stress, recovery, security and usability tests. A series of tests are
performed for the proposed system is ready for user acceptance testing.

The Testing Steps are:

6.3.1. Unit Testing


Unit testing focuses efforts on the smallest unit of software design. This is known as
module testing. The modules are tested separately. The test is carried out during
programming stage itself. In this step, each module is found to be working satisfactory
as regards to the expected output from the module.

6.3.2. Integration Testing


Data can be lost across an interface. One module can have an adverse effect on
another, sub functions, when combined, may not be linked in desired manner in major
functions. Integration testing is a systematic approach for constructing the program
structure, while at the same time conducting test to uncover errors associated within
the interface. The objective is to take unit tested modules and builds program
structure. All the modules are combined and tested as a whole.

6.3.3. Validation
At the culmination of the integration testing, Software is completely assembled as a
package. Interfacing errors have been uncovered and corrected and a final series of
software test begin in validation testing. Validation testing can be defined in many
ways, but a simple definition is that the validation succeeds when the software
functions in a manner that is expected by the customer. After validation test has been
conducted, one of the three possible conditions exists.

a) The function or performance characteristics confirm to specification and are


accepted.

b) A deviation from specification is uncovered and a deficiency lists is created.

c) Proposed system under consideration has been tested by using validation test and
found to be working satisfactory.
6.3.4. Output Testing
After performing the validation testing, the next step is output testing of the proposed
system, since no system could be useful if it does not produce the required output in a
specific format. The output format on the screen is found to be correct. The format
was designed in the system design time according to the user needs. For the hard copy
also; the output comes as per the specified requirements by the user. Hence output
testing did not result in any correction for the system.

6.3.5. User Acceptance Testing


User acceptance of a system is the key factor for the success of any system. The
system under consideration is tested for the user acceptance by constantly keeping in
touch with the prospective system users at the time of developing and making changes
whenever required.

This is done in regard to the following point:

a) Input Screen Design

b) Output Screen Design

c) Format of reports and other outputs.

6.4 Test Cases

This section lists the test-cases that were used to test the online shopping-cart application:

Serial No. Details


Test Case 1 To test the Login/Authentication interface for the Admin
Test Case 2 To test the Login/Authentication interface for the users
Test Case 3 To test, users can view the items they add in the shopping cart.
Test Case 4 To test, Admin can upload new/revised categories.
Test Case 5 To test, Admin can view all the users registered in the system
Test Case 6 To test, Admin can view the information about all the users who successfully
placed an order.
Test Case 7 To test that users cannot check out with an empty shopping cart.
Test Case 8 To test that users are not able to submit an order form if the information in
any of the fields is not valid.
Test Case 9 To test that users are not able to submit an order form if the information in
any of the fields is left blank.
Test Case 10 To Do
7. Conclusion

8. Scope for further development

9. Bibliography

You might also like