0% found this document useful (0 votes)
79 views78 pages

Souravsaini Report

Uploaded by

Aman
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views78 pages

Souravsaini Report

Uploaded by

Aman
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 78

Project report

On

Online Book Store Website

Submitted in partial fulfilment of the requirements for the Award of the


degree of

MASTER OF COMPUTER APPLICATIONS

(Session 2022-2024)

DEPARTMENT OF COMPUTER SCIENCE AND APPLICATIONS


PANJAB UNIVERSITY, CHANDIGARH

Submitted By: Sourav Saini Submitted To: Prof. Anuj Sharma

Roll no:93 DCSA, Panjab


University

MCA-4th Sem (Evening) Chandigarh


CERTIFICATE

This is to certify that the project entitled “ONLINE BOOKSTORE


WEBSITE” submitted to the department of Computer Application,
Panjab University, Chandigarh embodies the work carried out by Sourav
Saini of MCA, 4th semester, under my supervision and worthy in
consideration of award of MCA degree. This work has not been in part
or full for any other Degree/ Diploma to this or any other institution.
ACKNOWLEDGEMENT

First of all, I am indebted to the God Almighty for giving me an


opportunity to excel in my efforts to complete this project on time.
I am extremely grateful to Department of Computer Science and
Application, Panjab University, Chandigarh, for providing all the
required resources for the successful completion of my project.
My heartfelt gratitude to my project guide Prof. Anuj Sharma for his
valuable suggestions and guidance in the preparation of the project
report. I express my thanks to all the staff members and friends for all
the help and co-ordination extended in bringing out this seminar
successfully in time. I will be failing in duty of I do not acknowledge
with grateful thanks to the authors of the references and other literatures
refer to in this seminar.
Last but not the least, I am very much thankful to my parents who
guided me in my every step which I took.
All may not have been mentioned, but none is forgotten from my
heart.

Sourav Saini

Roll No. 93
ONLINE BOOKSTORE

(Online Bookstore website in PHP)

Online Book store is an online web application where the customer can purchase
books online. Through a web browser the customers can search for a book by its
title or author, later can add to the shopping cart and finally purchase using credit
card transaction. The user can login using his account details or new customers can
set up an account very quickly. They should give the details of their name, contact
number and shipping address. The user can also give feedback to a book by giving
ratings on a score of five. The books are divided into many categories based on
subject like Software, Database, English, Architecture, Biography etc.

The Online Book Store Website provides customers with online shopping through a
web browser. A customer can, create, sign in to his account, place items into a
shopping cart and purchase using his credit card details.
Brief overview of the technology:

Front end: HTML, CSS, JavaScript

1. HTML: HTML is used to create and save web document.


E.g. Notepad/Notepad++
2. CSS: (Cascading Style Sheets) Create attractive Layout
3. Bootstrap: Responsive design mobile friendly site.
4. JavaScript: It is a programming language, commonly use with
web browsers.

Back end: PHP, MySQL


1. PHP: Hypertext Pre-processor (PHP) is a technology that
allows software developers to create dynamically generated
web pages, in HTML, XML, or other document types, as
per client request. PHP is open source software.
2. MySQL: MySQL is a database, widely used for
accessing querying, updating, and managing data in
databases.
Software Requirement (any one)

• WAMP Server

• XAMPP Server (Used in this Project)

• MAMP Server

• LAMP Server

Admin login details Login


ID: admin
Password: password
OBJECTIVE OF THE PROJECT:

. The Online Book Store Website provides customers with online shopping through
a web browser. A customer can, create, sign in to his account, place items into a
shopping cart and purchase using his credit card details.

1. Problem Definition:

Online Book Store is a specific requirement of the client that


integrates the buying and selling services specifically to their
customers.

2. Existing System:

Present System developed in asp.In asp there are some limitations.

 It is scripting language.
 It is very code complexity.
 There is server controls in asp.
 It Doesn’t Support language interoperability.
3. Proposed System:

PHP Support code behind this

technology This project contains three

modules:

1. users
2. cart
3. category
1. Users: In this users can see the Books and upcoming books
details, buying books and Registering as members.
2. Cart: In this details about books which user want to
purchase, book quantity, total price.
3. Category: In this users can search the books which he want to
purchase like biography, novel, action, history, geography etc.

It may help collecting perfect management in details. In a very short time,


the collection will be obvious, simple and sensible. It will help a person
to know the management of passed year perfectly and vividly. It also helps
in current all works relative to online books purchasing. It will be also
reduced the cost of collecting the management & collection procedure
will go on smoothly. Our project aims at Business process automation.

PROJECT CATEGORY

This project falls under e-commerce website.

Relational Database Management System (RDBMS):

This is an RDBMS based project which is currently using MySQL for all
the transaction statements. MySQL is an open source RDBMS System.

Brief Introduction about RDBSM :

A relational database management system (RDBMS) is a database


management system (DBMS) that is based on the relational model as
invented by E. F. Codd, of IBM's San Jose Research Laboratory. Many
popular databases currently in use are based on the relational database
model. RDBMSs have become a predominant choice for the storage of
information in new databases used for financial records, manufacturing
and logistical information, personnel data, and much more since the
1980s. Relational databases have often replaced legacy hierarchical
databases and network databases because they are easier to understand
and use. However, relational databases have been challenged by object
databases, which were introduced in an attempt to address the object-
relational impedance mismatch in relational database, and XML
databases.
Why the new system?

With the new system the following activities get more


momentum.

1. The actual process of the organization can be modularized into two


different independent views:
a. User view
b. System administrators view

2. The user at any time can view the required information whether
the books available for particular type. He can collect all
information like as books Details, cost etc.

3. The information while it is collected can referentially be

segregated into their respective databases from single

window, saving the time of multiple data entries.

4. If planned in an organized manner the users can be provided an

online terminal where they can access the information at their

own hands without the basic intervention manually.


5. The user can first Registration in enter the Personal details, and

User login and If you want to update personal Details and you

and update.

6. The User Can search book and after add it in cart and

display Payment Details.

7. The user collect all information like as books Details and cost

8. Administrator is maintain the Books Details, Cost details, and

Check the user details.

9. The Employee can check the user account details directly

from database.

10. Offer clear the Payment in bank.


2. SCOPE OF THE PROJECT

The Online Book Store Website provides customers with online shopping through a
web browser. A customer can, create, sign in to his account, place items into a
shopping cart and purchase using his credit card details.

 The system generates types of information that can be used for


various purposes.

 It satisfy the user requirement

 Be easy to understand by the user and operator

 Be easy to operate

 Have a good user interface

 Be expandable

 Delivered on schedule within the budget


SYSTEM STUDY

1. PRELIMINARY INVESTIGATION:

The old manual system was suffering from a series of drawbacks.


Since whole of the system was to be maintained with hands the process
of keeping, maintaining and retrieving the information was very
tedious and lengthy. The records were never used to be in a systematic
order.
There used to be lots of difficulties in associating any particular
transaction with a particular context.
If any information was to be found it was required to go through the
different registers, documents there would never exist anything like
report generation. There would always be unnecessary consumption of
time while entering records and retrieving records. One more problem
was that it was very difficult to find errors while entering the records.
Once the records were entered it was very difficult to update these
records. The reason behind it is that there is lot of information to be
maintained and have to be kept in mind while running the business. For
this reason we have provided features Present system is partially
automated (computerized), actually existing system is quite laborious
as one has to enter same information at three different places.
Following points should be well considered:

 Documents and reports that must be provided by the new system:


There can also be few reports, which can help management in decision-
making and cost controlling, but since these reports do not get required
attention, such kind of reports and information were also identified and
given required attention.

 Details of the information needed for each document and report.

 The required frequency and distribution for each document.

 Probable sources of information for each document and report.

 With the implementation of computerized system, the task of


keeping records in an organized manner will be solved. The greatest of
all is the retrieval of information, which will be at the click of the
mouse. So the proposed system helps in saving the time in different
operations and making information flow easy giving valuable reports.
Benefit to Organization

The organization will obviously be able to gain benefits such as savings


in operating cost, reduction in paperwork, better utilization of human
resources and more presentable image increasing goodwill.

The Initial Cost

The initial cost of setting up the system will include the cost of hardware
software (OS, add-on software, utilities) & labor (setup & maintenance).
The same has to bear by the organization.

System Identification

This phase is used to recognize the need for a new system. The system is
identified at this stage. It is very important step. Everything performed in
future depends on this definition and identification.

System Scope

The scope of the system is also recognized at this stage. A system can be
reduced in its scope due to financial, political or time problems.
Alternate Solutions

This phase is also used to find out alternate solutions for developing the
system. The best available solution must be used. The best way to do this
is to interview the concerned people in the organization. It may include
the clients, customer, supplier and consultants etc. The competitors can
also be an important source to find the best way to develop new system.

2. SYSTEM DEVELOPMENT LIFE CYCLE

The systems development life cycle (SDLC) is a conceptual model used


in project management that describes the stages involved in an
information system development project, from an initial feasibility study
through maintenance of the completed application. SDLC can apply to
technical and non-technical systems.

In general, an SDLC methodology follows these following steps:

1. Analysis: The existing system is evaluated. Deficiencies are


identified. This can be done by interviewing users of the system and
consulting with support personnel.
2. Plan and requirements: The new system requirements are defined.
In particular, the deficiencies in the existing system must be addressed
with specific proposals for improvement. Other factors defined include
needed features, functions and capabilities.

3. Design: The proposed system is designed. Plans are laid out


concerning the physical construction, hardware, operating systems,
programming, communications and security issues.

4. Development: The new system is developed. The new components


and programs must be obtained and installed. Users of the system must
be trained in its use.

5. Testing: All aspects of performance must be tested. If necessary,


adjustments must be made at this stage. Tests performed by quality
assurance (QA) teams may include systems integration and system
testing.

5. Deployment: The system is incorporated in a production environment.


This can be done in various ways. The new system can be phased in,
according to application or location, and the old system gradually
replaced. In some cases, it may be more cost-effective to shut down
the old system and implement the new system all at once.
6. Upkeep and maintenance: This step involves changing and updating the
system once it is in place. Hardware or software may need to be
upgraded, replaced or changed in some way to better fit the needs of the
end-users continuously. Users of the system should be kept up-to- date
concerning the latest modifications and procedures.

3. ECONOMIC FEASIBILITY:

After doing the project Online Books Purchasing System, study and
analyzing all the existing or required functionalities of the system, the
next task is to do the feasibility study for the project. All projects are
feasible - given unlimited resources and infinite time.

This is a very important aspect to be considered while developing a


project. We decided the technology based on minimum possible cost
factor.

 All hardware and software cost has to be borne by the organization.

 Overall we have estimated that the benefits the organization is going to


receive from the proposed system will surely overcome the initial costs
and the later on running cost for system.
In Economic Feasibility study cost and benefit of the project is analyzed.
Means under this feasibility study a detail analysis is carried out what

Will be cost of the project for development which includes all required
cost for final development like hardware and software resource required,

Design and development cost and operational cost and so on. After that
it is analyzed whether project will be beneficial in terms of finance for
organization or not.

4. TECHNICAL FEASIBILITY:

In Technical Feasibility current resources both hardware software along


with required technology are analyzed/assessed to develop project. This
technical feasibility study gives report whether there exists correct
required resources and technologies which will be used for project
development. Along with this, feasibility study also analyzes technical
skills and capabilities of technical team, existing technology can be used
or not, maintenance and up-gradation is easy or not for chosen technology
etc.
5. OPERATIONAL FEASIBLITY:

No doubt the proposed system is fully GUI based that is very user friendly
and all inputs to be taken all self-explanatory even to a layman. Besides,
a proper training has been conducted to let know the essence of the system
to the users so that they feel comfortable with new system.

As far our study is concerned the clients are comfortable and happy as
the system has cut down their loads and doing.
In Operational Feasibility degree of providing service to requirements is
analyzed along with how much easy product will be to operate and
maintenance after deployment. Along with this other operational scopes
are determining usability of product, Determining suggested solution by
software development team is acceptable or not etc.

6. FEASIBILITY REPORT:

The feasibility study is the second step of the SDLC. It is the stage at
which all of the software needs and requirements are written down and
thoroughly documented. This document is created in this stage with the
assistance of the Software Requirement Specification document. It is
referred to as the SRS paper. A feasibility report is a document
That assesses potential solutions to the business problem or opportunity,
and determines which of these are viable for further analysis.

SYSTEM ANALYSIS

1. IMPORTANCE OF COMPUTERISED SYSTEM:

Introduction –

Computer systems are everywhere today. From business to


entertainment, from shopping to education, in our daily lives,
communication and in every situation, it is difficult to imagine a world
without computers.

Communication –

Computer systems are more often than not linked together in networks
and the ability to connect with these networks is something we take for
granted now. We can now communicate across the planet at a speed that
was unimaginable only a few years ago. Using our smartphones, tablets,
laptops and personal computers, we can send and receive data from
wherever we are. We can do this across the Internet or via the phone
network using 3g or 4g.

Business –

Businesses make extensive use of computers. Jobs that used to take


specialists a long time to do can now be done by a lot of people. For
example, many people know how to set up and use spreadsheets for
looking after accounts. Word processors are used by many people to write
letters. Databases are used to search through millions of records and re-
organise them very quickly. Images, video and sound can be manipulated
easily now using a variety of packages. All of these types of jobs were
done by specialists in the past. Now they are accessible to everyone,
perhaps with some degree of training. Computers are used in factories to
control operations, to build things using robots and to monitor processes
in ways that are far better than humans ever could. Anyone can set-up a
business easily online using the Internet now and appear to be a very large
company and you can run an online business completely from home, too.

Employment –

There have been many changes to employment patterns. Increasingly,


people work from home (called 'tele-working'). They can organize their
working life around their home life, which might be important if someone
has children or a disability. A range of computer equipment now allows
someone to do their job and stay in contact with their employers. They
might use a computer, a tablet, a printer, a webcam and microphone, a
broadband modem and Internet connection, a smartphone and a FAX, for
example. If a company is based in Australia, they no longer need to look
for employees just in that country for some jobs - they can use tele-
workers. Workers can be based anywhere in the world. There are many
jobs that didn't exist a few years ago and in the future, there will be many
types of jobs that we can't predict today. This is why it is very important
for students to learn to be adaptable and to be able to change skills easily.

Education –

The way students learn now has changed beyond recognition. Whole
libraries of information are available via the Internet. The use of
interactive whiteboards, wireless connections, video cameras,
smartphones and tablets, for example, have changed the activities in a
classroom and exam boards are making increased use of online testing
and marking as well.
Entertainment –

Many people play computer games, a form of entertainment that didn't


exist before the mid 1970s. Computer power means that we can now
make and watch 3D films, can carry vast libraries of music and films
around with us on portable devices and can access a whole range of
entertainment via our TVs and portable devices by streaming films
directly to our homes.

Socializing –

We now socialize in ways we never used to. Facebook, Twitter,


YouTube, Dating Agencies, chat rooms, forums and so on are all ways
which we connect to other people. In the past, we used to socialize with
only those people we met whereas now, we can socialize with people from
all over the world.
2. SYSTEM ANALYSIS:

It is a process of planning a new business system or replacing an existing


system by defining its components or modules to satisfy specific
requirements. System analysis and design can be considered the meta-
development activity, which serves to set the stage and bound the
problem.

7 Steps of Agile System Analysis Process

 Identify System Users. This is the most important question


 Define Main Users Goals.
 Define System Usage Patterns.
 Invent Functional Solution to Meet Users Goals and
Usage Patterns.
 Define Main Navigation Paths.
 Create UI Mockups.
 Polish UI Elements.

There are 6 stages of system analysis i.e. systematic process, known as a


system life cycle, which consists of six stages: feasibility study, system
analysis, system design, programming and testing, installation, and
operation and maintenance.
3. METHODS USED FOR GATHERING
INFORMATION:
 Interviews
 Questionnaires or Surveys
 User Observation
 Document Analysis
 Interface Analysis
 Workshops
 Brainstorming
 Role-Play
 Use Cases and Scenarios
 Focus Groups
 Prototyping

Interviews –
Interviews are a great way to start the requirements elicitation process.
They are invaluable for gathering background information on business
needs, customers’ and users’ problems, and the concerns of support staff
and other relevant stakeholders. Interviews can also be used in follow-
up to gather more detailed information.

Interviews should cover a diverse and representative cross-section of


the system’s stakeholders. You will want to include the full range of
customer and user profiles. This is necessary to gain a proper
perspective on competing needs, so your system requirements aren’t
slanted in favor of one group.

When you conduct interviews, it is important to ask open-ended


questions. Open-ended questions are those that cannot be answered
with a simple “yes” or “no.” They draw out specific information. They
require the interviewee to explain their thoughts and provide reasons,
which in turn provides context for evaluating and validating
the requirements.

You’ll also want to ask a lot of follow-up questions during the interview.
Good follow-up questions either drill down for more detail or pull up to
get an overview of the context. Some people will tend to talk specifics
and exceptions. With them, you’ll need to pull up. Others will talk about
context without ever getting into specifics. With those folks, you’ll need
to drill down.

Questionnaires or survey –

Individual interviews present several challenges. They can be tricky to


schedule and time-consuming for the interviewers. Plus, the requirements
you gather may only scratch the surface; not every interviewer is skilled
at asking follow-up questions in real time.

Questionnaires (or surveys) can provide an efficient alternative. They


allow follow-up with multiple stakeholders at the same time.

A well-thought-out questionnaire—one that asks probing questions—is a


good tool for getting at those underlying requirements of which
stakeholders may not be fully conscious, but which are essential to a
successful design.
User observation –

One of the best ways to understand what users truly need is to observe
them performing their daily tasks.

User observation can be either passive or active. Active observation—


asking questions of users while observing them—is the best approach for
gaining an understanding of an existing process. Passive observation is
more effective when gathering user feedback on a design prototype (see
technique #11).

When observing users, record the actions and activities that take place.
What already works well? What causes users difficulty? Note the
obstacles users must routinely overcome.

By observing end users in the real context in which they perform their
tasks, you’ll gain a true understanding of what they are up against and
what improvements they need so they can perform better. You’ll then be
better able to specify a system that successfully reinvents users’ processes
and grants them far greater productivity and usability, rather than simply
providing them an incremental improvement.
Document analysis –

Frequently overlooked, document analysis is another highly effective


technique for gathering requirements.

Reviewing the documentation of the current system you’re seeking to


replace can help you in performing AS-IS process analysis and gap
analysis. The former helps you see where you can improve the user’s
process. The latter will aid you in determining where the business needs
revealed earlier—through your interviews, questionnaires, and user
observation—are not being met.

Naturally, you’ll want to analyze the system’s requirements documents,


if available, but you should also look at other system-level
documentation, such as users’ manuals and problem reports.

Nuggets of information on why the existing system works as it does are


often buried within the specifications and design documentation. The
insights gained from document analysis can help you formulate further
questions and evaluate the completeness of your requirement set.

Interface analysis –

Analyzing a system’s interfaces, both human and machine, is vitally


important to ensure requirements are complete and the system will
be usable.

Interfaces for a software product will include those with:

 End users
 System components the software interacts with (e.g., sensors
or other peripherals)
 External systems the software interacts with
Thorough interface analysis—really understanding the interactive
context of the system— will frequently uncover requirements not
readily visible to users.

Workshops –

When gathering requirements from a broad spectrum of stakeholders,


it’s only natural that you’ll get conflicting opinions. You will need to
resolve these issues, however, before implementation begins.

Requirements workshops are a good method for resolving such conflicts.

Once you have a broad set of candidate requirements defined and


organized, convene your stakeholders and hash through these
candidates together. Gather additional detail. Give a fair hearing to
opposing views. Grant everyone ample opportunity to provide the
rationale for their positions.

Seek to resolve discrepancies and conflicts, gain consensus, and validate


your requirements. These activities are vital to ensuring your system will
best meet the needs of all users and stakeholders, not just the most vocal
groups.

Brainstorming –

Brainstorming can be performed as part of a workshop (see technique


#7, which follows) or on its own, in either large or small groups.

In your brainstorming session, consider different parts of the system


individually. Explore various what-if scenarios and blue-sky ideas.
The general idea is to break away from existing conventions. Consider
visionary ideas for pushing current boundaries.
Useful tools for brainstorming sessions include whiteboards, mind
mapping software, and empathy maps (the latter for exploring user
needs).

Role-play –

Some systems—certain kinds of enterprise software, like ERP, for


example—must meet the needs of a variety of user types. Role-play
can help to ensure that the needs of all users are being met.

In a role-play session, different people take the roles of the different


user types. Having the various roles interact with one another helps
examine individual system requirements from different perspectives
and generates discussions and new ideas.

In effect, role-play is an additional brainstorming technique. It is a good


way to gain a solid understanding of how the various parts of the system
need to function to support the overall process.

Use cases and scenarios –

Once you have high-level functional requirements in place, it is a good


idea to explore a variety of use cases and scenarios.

Use cases are the specific, individual business objectives the system
must accomplish and the various situations in which a given feature or
functionality will be used. They describe the various external entities
that act on the system and the specific interactions they have with the
system to accomplish the business objective. Use cases are expressed
as step-by-step lists of tasks performed during a process.
Scenarios, also called user stories, are similar to use cases in that they
describe how the system will carry out a process to fulfill a business
objective. Their form, however, is a narrative, rather than an enumerated
list. They are essentially short stories with the user in the role of the
protagonist. Scenarios describe:

 Tasks users perform


 Information users see
 How users interact with the system

Use cases and scenarios can be used to validate the features and
functional requirements of the system across a wide range of situations.
They can also help you discover exceptions and boundary cases that
need consideration.

Focus groups –

A focus group (or user group) is a gathering of customers or user


representatives who meet with you to

 Provide feedback on your product


 Express their needs
 Help guide your software development

Focus groups can be convened to

either:

 Gather information for the development of requirements, or


 Gain feedback aimed at validated previously elicited requirements

Focus groups are different from brainstorming. Brainstorming is a


managed process that generally involves internal stakeholders.
Focus groups typically involve external stakeholders.
Many systems engineers and business analysts are skeptical of using
focus groups to gather requirements. Meetings can be dominated by
vocal individuals with narrow agendas. Strong disagreements on needs
and features can make these meetings unproductive. Focus groups can,
however, be extremely useful in certain situations. One of these is the
evaluation of design prototypes (see technique #11) to help validate and
finalize requirements.

Prototyping –

Prototyping gives users a chance to try out ideas on what their next
solution could look like. Today’s rapid prototyping tools allow
developers to quickly put together any number of interactive mock-
ups for users to try.

Once the initial mock-up is built, the process is an iterative one:

 Trial of the prototype by users


 Feedback from users
 Modification of the prototype

Modern prototyping tools make it easy for developers to modify the


prototype on the fly, so users can help you quickly discover what will
satisfy them. From that working model, it’s then a relatively simple
matter to reverse engineer the requirements that describe the accepted
functionality.
SYSTEM DESIGN

In this phase, a logical system is built which fulfils the given


requirements. Design phase of software development deals with
transforming the client’s requirements into a logically working system.
Normally, design is performed in the following in the following two
steps:
1. Primary Design Phase:
In this phase, the system is designed at block level. The blocks are
created on the basis of analysis done in the problem identification phase.
Different blocks are created for different functions emphasis is put on
minimizing the information flow between blocks. Thus, all activities
which require more interaction are kept in one block.

2. Secondary Design Phase:


In the secondary phase the detailed design of every block
is performed.

The general tasks involved in the design process are the following:
1. Design various blocks for overall system processes.
2. Design smaller, compact and workable modules in each block.
3. Design various database structures.
4. Specify details of programs to achieve desired functionality.
5. Design the form of inputs, and outputs of the system.
6. Perform documentation of the design.
7. System reviews.
3. PHYSICAL DESIGN:

Physical design relates to the actual input and output processes of the
system. It focuses on how data is entered into a system, verified,
processed, and displayed as output.

It produces the working system by defining the design specification


that specifies exactly what the candidate system does. It is concerned
with user interface design, process design, and data design.

It consists of the following steps −

 Specifying the input/output media, designing the database,


and specifying backup procedures.

 Planning system implementation.

 Devising a test and implementation plan, and specifying any


new hardware and software.

 Updating costs, benefits, conversion dates, and system constraints.

4. MODULE DESCRIPTION :

Modular design (or modularity) is an approach used to design various


products or applications – by breaking it down into separate or
independent parts. These individual parts (for example, a laptop battery)
can then be used for the same functionality in different systems or
products.

A module is a software component or part of a program that contains


one or more routines. One or more independently developed modules
make up a program. An enterprise-level software application may
contain several different modules, and each module serves unique
and separate business operations.

Modular design, or modularity in design, is a design principle that


subdivides a system into smaller parts called modules (such as modular
process skids), which can be independently created, modified,
replaced, or exchanged with other modules or between different
systems.

These criteria are defined by Meyer. Some of them are given below:

 Modular Decomposability –
Decomposability simply means to break down something into smaller
pieces. Modular decomposability means to break down the problem into
different sub-problems in a systematic manner. Solving a large problem
is difficult sometimes, so the decomposition helps in reducing the
complexity of the problem, and sub-problems created can be solved
independently. This helps in achieving the basic principle of modularity.

 Modular Composability –
Composability simply means the ability to combine modules that are
created. It’s actually the principle of system design that deals with the
way in which two or more components are related or connected to each
other. Modular composability means to assemble the modules into a
new system that means to connect the combine the components into a
new system.

 Modular Understandability –
Understandability simply means the capability of being understood,
quality of comprehensible. Modular understandability means to
make it easier for the user to understand each module so that it is
very easy to develop software and change it as per requirement.
Sometimes it’s not
easy to understand the process models because of its complexity and its
large size in structure. Using modularity understandability, it becomes
easier to understand the problem in an efficient way without any issue.

 Modular Continuity –
Continuity simply means unbroken or consistent or uninterrupted
connection for a long period of time without any change or being
stopped. Modular continuity means making changes to the system
requirements that will cause changes in the modules individually
without causing any effect or change in the overall system or software.

 Modular Protection –
Protection simply means to keep something safe from any harms, to
protect against any unpleasant means or damage. Modular protection
means to keep safe the other modules from the abnormal condition
occurring in a particular module at run time. The abnormal condition
can be an error or failure also known as run-time errors. The side
effects of these errors are constrained within the module.
SYSTEM DEVELOPMENT

1. CODING:

Once the system design phase is over, the next phase is coding. In this
phase, developers start build the entire system by writing code using
the chosen programming language. In the coding phase, tasks are
divided into units or modules and assigned to the various developers.

Importance of coding –
During the coding phase, developers analyze the feasibility of each
coding language and begin programming according to coding
specifications. Without proper coding, the product won't function
according to the customer's specifications, and new codes may need to
be implemented.

What is coding used for?

Coding creates a set of instructions for computers to follow. These


instructions determine what actions a computer can and cannot take.
Coding allows programmers to build programs, such as websites and
apps. Computer programmers can also tell computers how to process data
in better, faster ways.
What are the 4 types of coding?

There are four types of coding:

 Data compression (or source coding)


 Error control (or channel coding)
 Cryptographic coding.
 Line coding.

2. CODE EFFICIENCY:
Code efficiency is a broad term used to depict the reliability, speed
and programming methodology used in developing codes for an
application. Code efficiency is directly linked with algorithmic
efficiency and the speed of runtime execution for software. It is the
key element in ensuring high performance.

Why is it important to code efficiently ?

Efficiency in coding is very important. It allows you to speed up your


development time and makes your code easier to read, debug and
maintain. There are a number of different ways in which you can
make your code more efficient, including: Use of loops for repeated
actions.
How can code efficiency be improved?

 Build a conducive work environment. ...


 Establish a good SOP. ...
 Encourage verbose documentation. ...
 Discourage unnecessary documentation. ...
 White space is your friend. ...
 Prefer simplicity over complexity. ...
 Test exhaustively.
 Use version control.

How do you measure code efficiency?

Code efficiency can be calculated by using the below two formulas:

1. Test Efficiency = (Total number of bugs found in


unit+integration+system) / (total number of defects found in
unit+integration+system+User acceptance testing)
2. Testing Efficiency = Number of bugs resolved/ number of bugs
raised *100.
What is the use of efficiency?

The term efficiency refers to the peak level of performance that uses the
least amount of inputs to achieve the highest amount of output. Efficiency
requires reducing the number of unnecessary resources used to produce a
given output, including personal time and energy.

3. OPTIMISATION OF CODE :

Optimization of the code is often performed at the end of the development


stage since it reduces readability and adds code that is used to increase
the performance. Why Optimize? Optimizing an algorithm is beyond the
scope of the code optimization phase. So the program is optimized.

Code optimization is any method of code modification to improve code


quality and efficiency. A program may be optimized so that it becomes a
smaller size, consumes less memory, executes more rapidly, or performs
fewer input/output operations.

The basic requirements optimization methods should comply with, is that


an optimized program must have the same output and side effects as
its non-optimized version. This requirement, however, may be ignored
in the case that the benefit from optimization, is estimated to be more
important than probable consequences of a change in the program
behavior.
Types and levels of optimization -

Optimization can be performed by automatic optimizers, or


programmers. An optimizer is either a specialized software tool or a built-
in unit of a compiler (the so-called optimizing compiler). Modern
processors can also optimize the execution order of code instructions.

Optimizations are classified into high-level and low-level optimizations.


High-level optimizations are usually performed by the programmer, who
handles abstract entities (functions, procedures, classes, etc.) and keeps
in mind the general framework of the task to optimize the design of a
system. Optimizations performed at the level of elementary structural
blocks of source code - loops, branches, etc. - are usually referred to as
high-level optimizations too, while some authors classify them into a
separate ("middle") level (N. Wirth?). Low-level optimizations are
performed at the stage when source code is compiled into a set of machine
instructions, and it is at this stage that automated optimization is usually
employed. Assembler programmers believe however, that no machine,
however perfect, can do this better than a skilled programmer
(yet everybody agrees that a poor programmer will do much worse
than a computer).

What are the code optimization techniques?

 Code Optimization Techniques-


 Compile Time Evaluation.
 Common sub-expression elimination.
 Dead Code Elimination.
 Code Movement.
 Strength Reduction.

TESTING

The main goal of the testing procedures is to report, monitor, resolve and
retest software components until they reach the quality standards defined
in the initial SRS. Many teams use documents such as RTM to trace the
main requirements of the project and see how they affect each other.

This stage is usually a subset of all the stages as in the modern SDLC
models, the testing activities are mostly involved in all the stages of
SDLC. However, this stage refers to the testing only stage of the product
where product defects are reported, tracked, fixed and retested, until the
product reaches the quality standards defined in the SRS.

SDLC MODELS

There are various software development life cycle models defined and
designed which are followed during the software development process.
These models are also referred as Software Development Process
Models". Each process model follows a Series of steps unique to its type
to ensure success in the process of software development.

Following are the most important and popular SDLC models followed in
the industry −

 Waterfall Model
 Iterative Model
 Spiral Model
 V-Model
 Big Bang Model

Other related methodologies are Agile Model, RAD Model, Rapid


Application Development and Prototyping Models.
PRINCIPLES OF TESTING:-

a. All the test should meet the customer requirements


b. To make our software testing should be performed by a third party
c. Exhaustive testing is not possible. As we need the optimal amount of
testing based on the risk assessment of the application.
d. All the test to be conducted should be planned before implementing it
e. It follows the Pareto rule(80/20 rule) which states that 80% of errors
come from 20% of program components.
f. `Start testing with small parts and extend it to large parts.

Testing is vital for the success of any software. no system design is ever
perfect. Testing is also carried in two phases. first phase is during the
software engineering that is during the module creation. second phase is
after the completion of software. this is system testing which verifies that
the whole set of programs hanged together.

White Box Testing:

In this technique, the close examination of the logical parts through the
software are tested by cases that exercise species sets of conditions or
loops. all logical parts of the software checked once. errors that can be
corrected using this technique are typographical errors, logical
expressions which should be executed once may be getting executed
more than once and error resulting by using wrong controls and loops.
When the box testing tests all the independent part within a module a
logical decisions on their true and the false side are exercised , all loops
and bounds within their operational bounds were exercised and internal
data structure to ensure their validity were exercised once.

Black Box Testing:

This method enables the software engineer to device sets of input


techniques that fully exercise all functional requirements for a program.
black box testing tests the input, the output and the external data. it checks
whether the input data is correct and whether we are getting the desired
output.

Alpha Testing:

Acceptance testing is also sometimes called alpha testing. Be spoke


systems are developed for a single customer. The alpha testing proceeds
until the system developer and the customer agree that the provided
system is an acceptable implementation of the system requirements.

Beta Testing:

On the other hand, when a system isto be marked as a software product,


another process called beta testing is often conducted. During beta
testing, a system is delivered among a number of potential users who
agree to use it. The customers then report problems to the developers.
This provides the product for real use and detects errors which may not
have been anticipated by the system developers.

Unit Testing:

Each module is considered independently. it focuses on each unit of


software as implemented in the source code. it is white box testing.

Integration Testing:

Integration testing aims at constructing the program structure while at the


same constructing tests to uncover errors associated with interfacing the
modules. Modules are integrated by using the top down approach.

Validation Testing:

Validation testing was performed to ensure that all the functional and
performance requirements are met.
System Testing:

It is executing programs to check logical changes made in it with intention


of finding errors. a system is tested for online response, volume of
transaction, recovery from failure etc. System testing is done to ensure
that the system satisfies all the user requirements.

2. TEST CASES –
Test cases define how to test a system, software or an application. A test
case is a singular set of actions or instructions for a tester to perform that
validates a specific aspect of a product or application functionality. If the
test fails, the result might be a software defect that the organization can
triage.

A test case is a document, which has a set of test data, preconditions,


expected results and post conditions, developed for a particular test
scenario in order to verify compliance against a specific requirement.

Test Case acts as the starting point for the test execution, and after
applying a set of input values, the application has a definitive outcome
and leaves the system at some end point or also known as execution post
condition.
WHAT ARE TEST CASE TYPES?

It can be functional, integration or system test cases or positive or


negative or positive and negative test cases.

VERIFICATION AND VALIDATION

VERIFICATION TESTING -

Verification testing includes different activities such as business


requirements, system requirements, design review, and code walkthrough
while developing a product.

It is also known as static testing, where we are ensuring that "we are
developing the right product or not". And it also checks that the developed
application fulfilling all the requirements given by the client.

VALIDATION TESTING -

Validation testing is testing where tester performed functional and non-


functional testing. Here functional testing includes Unit Testing (UT),
Integration Testing (IT) and System Testing (ST), and non-functional
testing includes User acceptance testing (UAT).
Validation testing is also known as dynamic testing, where we are
ensuring that "we have developed the product right." And it also checks
that the software meets the business needs of the client.

WHEN TO USE VERIFICATION TESTING -

Verification tests must be run at every stage of development before any


feature is implemented.

For example, let’s consider a button labeled “Add to Cart”. Before


starting off with creating this button, verification tests would look through
all relevant requirements previously decided in the ideation and
brainstorming phases.

Let’s say the documentation says the button must be black with the
lettering in white. It should be no larger than 10mm X 10mm, and it
should be constantly visible in the top right corner of every product page
of the website. Another button with the same text, color, and dimensions
should be placed under every product on the page.

Before creating the button, design and requirements documents must be


reviewed, and all necessary specifications must be listed down before
work begins. This must be done before working on every feature or
element on the page so the devs do not miss any guidelines.
WHEN TO USE VALIDATION TESTING -
Validation tests must be run after every feature or step in the development
process is completed. For example, unit tests, a form of validation tests,
are run after every unit of code has been created. Integration tests are run
after multiple modules have been completed individually and are ready
to be combined.

An important element of validation testing is the running of cross browser


testing. QAs must check that every function, feature, and design element
appears and functions as expected on different browser-device- os
combinations. For example, does the “Add to Cart” button show up and
work perfectly on Chrome-Samsung Galaxy A23 and on Safari- iPhone
X?

The easiest way to run these tests is to use manual testing and automated
testing on a cloud-based testing platform like BrowserStack. Use 3000+
real browsers and devices on the cloud to check every aspect of the
software while it is accessed by different devices running various
browsers and browsers versions running on different operating systems.
SYSTEM IMPLEMENTATION MAINTENANCE AND
REVIEW

1. HARDWARE EVALUATION FACTORS –


The hardware evaluation consists of following things

 Security analysis
 Physical Security of the hardware
 Design review
 Power analysis
 Electromagnetic Emanation analysis
 Laser fault injection
 Frequency manipulation
 Differential Fault analysis
 Electromagnetic fault injection

There may be other tests in the hardware evaluation but the above
mentioned things are the basic operations for the hardware
evaluation. Let us have a brief introduction about some of the above
mentioned tests.
HARDWARE & SOFTWARE EVALUATION FACTORS
CONVERSION AND TRAINING NEEDS

The personnel in the system must know in detail what their roles will be,
how they can use the system, and what the system will or will not do. The
success or failure of well-designed and technically elegant systems can
depend on the way they are operated and used.
Training Systems Operators
Systems operators must be trained properly such that they can handle all
possible operations, both routine and extraordinary. The operators should
be trained in what common malfunctions may occur, how to recognize
them, and what steps to take when they come.
Training involves creating troubleshooting lists to identify possible
problems and remedies for them, as well as the names and telephone
numbers of individuals to contact when unexpected or unusual problems
arise.
Training also involves familiarization with run procedures, which
involves working through the sequence of activities needed to use a new
system.
User Training
 End-user training is an important part of the computer-based
information system development, which must be provided to
employees to enable them to do their own problem solving.
 User training involves how to operate the equipment,
troubleshooting the system problem, determining whether a
problem that arose is caused by the equipment or software.
 Most user training deals with the operation of the system itself. The
training courses must be designed to help the user with fast
mobilization for the organization.
Training Guidelines
 Establishing measurable objectives
 Using appropriate training methods
 Selecting suitable training sites
 Employing understandable training materials
Conversion
It is a process of migrating from the old system to the new one. It provides
understandable and structured approach to improve the communication
between management and project team.
Conversion Plan
It contains description of all the activities that must occur during
implementation of the new system and put it into operation. It anticipates
possible problems and solutions to deal with them.
It includes the following activities −
 Name all files for conversions.
 Identifying the data requirements to develop new files
during conversion.
 Listing all the new documents and procedures that are required.
 Identifying the controls to be used in each activity.
 Identifying the responsibility of person for each activity.
 Verifying conversion schedules.
Conversion Methods
The four methods of conversion are −
 Parallel Conversion
 Direct Cutover Conversion
 Pilot Approach
 Phase-In Method
Method Description Advantages Disadvantages

Provides fallback Causes cost overruns.


Paralle Old and new systems when new system New system may not
l are used simultaneously. fails. get fair trail.
Convers Offers greatest
ion security and
ultimately testing
of new system.
Forces users to No fall back if
Direct New system is make new system problems arise with
Cutover implemented and old work new system
Convers system is replaced Immediate Requires most
ion completely. benefit from new careful
methods and planning
control.
Allows training A long term phasein
and installation causes a problem of
Pilot Supports phased without whether conversion
Approa approach that gradually unnecessary use goes well or not.
ch implement system of resources.
across all users Avoid
larg
e
contingencies
from risk
management.

Provides Gives impression


Working version of experience and that old system is
system implemented in line test before erroneous and it is
Phase- one part of organization implementation not reliable.
In based on feedback, it is When preferred
Meth installed throughout the new system
od organization all alone or involves new
stage by stage. technology or
drastic changes
i
n
performance.
DATA FLOW DIAGRAM

Dataflow Diagram: Data flow diagram is the starting point of the design
phase that functionally decomposes the requirements specification. A
DFD consists of a series of bubbles joined by lines. The bubbles represent
data transformation and the lines represent data flows in the system. A
DFD describes what data flow rather than how they are processed, so it
does not hardware, software and data structure.

A data-flow diagram (DFD) is a graphical representation of the "flow" of


data through an information system. DFDs can also be used for the
visualization of data processing (structured design). A data flow diagram
(DFD) is a significant modeling technique for analyzing and constructing
information processes. DFD literally means an illustration that explains
the course or movement of information in a process. DFD illustrates this
flow of information in a process based on the inputs and outputs. A DFD
can be referred to as a Process Model.

The data flow diagram is a graphical description of a system’s data and


how to Process transform the data is known as Data Flow Diagram
(DFD). Unlike details flow chart, DFDs don’t supply detail descriptions
of modules that graphically describe a system’s data and how the data
interact with the system. Data flow diagram number of symbols and the
following symbols are of by DeMarco.
There are seven rules for construct a data flow diagram.

i) Arrows should not cross each other.


ii) Squares, circles and files must wears names.
iii) Decomposed data flows must be balanced.
iv) No two data flows, squares or circles can be the same
names.
v) Draw all data flows around the outside of the diagram.
vi) Choose meaningful names for data flows, processes & data
stores.
vii) Control information such as record units, password and
validation requirements are not penitent to a data flow
diagram.

Additionally, a DFD can be utilized to visualize data processing or a


structured design. This basic DFD can be then disintegrated to a lower
level diagram demonstrating smaller steps exhibiting details of the system
that is being modeled. On a DFD, data items flow from an external data
source or an internal data store to an internal data store or an external data
sink, via an internal process. It is common practice to draw a context-level
data flow diagram first, which shows the interaction between the system
and external agents, which act as data sources and data sinks. On the
context diagram (also known as the Level 0 DFD’), the system's
interactions with the outside world are modeled purely in terms of data
flows across the system boundary. The context diagram
shows the entire system as a single process, and gives no clues as to its
internal organization. This context-level DFD is next "exploded", to

produce a Level 1 DFD that shows some of the detail of the system being
modeled. The Level 1 DFD shows how the system is divided into sub-
systems (processes), each of which deals with one or more of the data
flows to or from an external agent, and which together provide all of the
functionality of the system as a whole. The level 1 DFD is further
spreaded and split into more descriptive and detailed description about
the project as level 2 DFD. The level 2 DFD can be a number of data
flows which will finally show the entire description of the software
project.

Model View Controller or MVC as it is popularly called, is a software


design pattern for developing web applications.

A Model View Controller pattern is made up of the following three


parts:

 Model - The lowest level of the pattern which is responsible for


maintaining data.

 View - This is responsible for displaying all or a portion of the data to


the user.

 Controller - Software Code that controls the interactions between the


Model and View. MVC is popular as it isolates the application logic
from the user interface layer and supports separation of concerns. Here
the Controller receives all requests for the application and then works
with the Model to prepare any data needed by the View. The View then
uses the data prepared by the Controller to generate a final presentable
response. The MVC abstraction can be graphically represented as
follows.

MVC (Model View Controller Flow) Diagram


DFD Model of (Online Books Purchasing website)
E-R Diagram

About ER Diagram:

Entity Relationship Diagram

E-R Model is a popular high level conceptual data model. This model
and its variations are frequently used for the conceptual design of
database application and many database design tools employ its
concept. A database that confirms to an E-R diagram can be represented
by a collecton of tables in the relational system.

The mapping of E-R diagram to the entities are:

 Attributes

 Relations

o Many-to-many

o Many-to-one

o One-to-many

o One-to-one

 Weak entities

 Sub-type and super-type


The entities and their relationships between them are shown using the
following conventions.  An entity is shown in rectangle.  A
diamond represent the relationship among number of entities.  The
attributes shown as ovals are connected to the entities or relationship
by lines.  Diamond, oval and relationships are labeled.

Model is an abstraction process that hides super details while


highlighting details relation to application at end.

 A data model is a mechanism that provides this abstraction


for database application.

 Data modeling is used for representing entities and their relationship


in the database.

 Entities are the basic units used in modeling database entities can
have concrete existence or constitute ideas or concepts.

 Entity type or entity set is a group of similar objects concern to


an organization for which it maintain data,

 Properties are characteristics of an entity also called as attributes.

 A key is a single attribute or combination of 2 or more attributes of


an entity set is used to identify one or more instances of the set.
 In relational model we represent the entity by a relation and use
tuples to represent an instance of the entity.

 Relationship is used in data modeling to represent in


association between an entity set.

 An association between two attributes indicates that the values of


the associated attributes are independent.

E-R Diagram of (Online Books Purchasing website)


SCREENSHOTS OF THE PROJECT ONLINE BOOKSTORE
WEBSITE

#1 Home Page

#2 Search
#3 Login Page

#4 On login
#5 Cart Page

#6 Discription
Database-architecture(structure)

#Sourcecodeester_bookdb

#Cart
#Products

#users

You might also like