0% found this document useful (0 votes)
67 views46 pages

Project Report

Uploaded by

08 sangeeta
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)
67 views46 pages

Project Report

Uploaded by

08 sangeeta
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/ 46

CHAPTER 1

INTRODUCTION

1.1 OBJECTIVE

The food industry is highly labor intensive and the biggest expense in the food industry is the cost
of employing the right kind of people to do the work. Labor rates are steadily rising year in and
year out, making it difficult to hire labor. One of the ways to reduce this expense is to use modern
technology to replace some of the jobs done by human beings and make machines do the work.
Here we propose an “Online Food Ordering Management System” that has been designed for Fast
Food restaurants, Take-Out or College Cafeterias. The system may well be implemented in any
organization that distributes foodstuff. Because the whole process of accepting orders is automated,
the meal ordering experience for both the client and the restaurant is optimized. Online food real-
time ordering management system's objective is to give customers a way to order food and drinks
over the internet. The primary reason for all of this is because it is beneficial to both the client and
vendor

Functionalities provided by Food Ordering Management System are as


follows:
• Provides the searching facilities based on various factors. Such as Room, Booking,
Tariffs, Food Bill
• Food Ordering Management System also manage the Laundry Bill details online
for Tariffsdetails, Food Bill details, Room.
• It tracks all the information of Customer, Laundry Bill, Tariffs etc
• Manage the information of Customer
• Shows the information and description of the Room, Booking
• To increase efficiency of managing the Room, Customer
• It deals with monitoring the information and transactions of Tariffs.
• Manage the information of Room
• Editing, adding and updating of Records is improved which results in proper resource
management of Room data.
• Manage the information of Tariffs
• Integration of all records of Food Bill.

1.2 INTRODUCTION

1
The "Food Ordering Management System" has been developed to override the problems
prevailing in the practicing manual system. This software is supported to eliminate and, in
some cases, reduce the hardships faced by this existing system. Moreover, this system is
designed for the particular need of the company to carry out operations in a smooth and
effective manner.

The application is reduced as much as possible to avoid errors while entering thedata. It also
provides error message while entering invalid data. No formal knowledge is needed for the
user to use this system. Thus by this all it proves it is user-friendly. Food Ordering
Management System , as described above, can lead to error free, secure, reliable and fast
management system. It can assist the user to concentrate on their other activities rather to
concentrate on the record keeping. Thus it will help organization in better utilization of
resources.

Every organization, whether big or small, has challenges to overcome and managing the
information of Customer, Room, Tariffs, Laundry Bill, Food Bill. Every Food Ordering
Management System has different Room needs, therefore we design exclusive employee
management systems that are adapted to your managerial requirements. This is designed to
assist in strategic planning, and will help you ensure that your organization is equipped with
the rightlevel of information and details for your future goals. Also, for those busy executive
who are always on the go, our systems come with remote access features, which will allow
you to manage your workforce anytime, at all times. These systems will ultimately allow you
to better manage resources.

1.3. PROBLEM STATEMENTS

Despite the availability of many systems in the market, there is still a need for a system that
provides users with a seamless and secure communication experience. Current chat apps may lack
certain features, such as end-to-end encryption or a user-friendly interface, which can make them
vulnerable to cyber threats and difficult to use. Additionally, some systems may not be accessible
on all platforms or may require a high-speed internet connection, making it difficult for users in
certain regions to communicate with others.
Thus, there is a need for a chat app that offers a secure and user-friendly interface, while also
2
being easily accessible on a variety of platforms and network conditions. This app should
prioritize user privacy and security, while also providing the necessary features to ensure real-
time communication between users, regardless of their location or device. Additionally, the app
should be designed to scale and accommodate a growing user base, while also being customizable
to meet the needs and preferences of individual users.

1.4. SCOPE

o 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 Food
Ordering Management System. It will be also reduced the cost of collecting the
management & collection procedure will go on smoothly.
o Our project aims at Business process automation, i.e. we have tried to computerize
various processes of Food Ordering Management System.
o In computer system the person has to fill the various forms & number of copies of the
forms can be easily generated at a time.
o In computer system, it is not necessary to create the manifest but we can directly print
it, which saves our time.
o To assist the staff in capturing the effort spent on their respective working areas.
o To utilize resources in an efficient manner by increasing their productivity through
automation.
o The system generates types of information that can be used for various purposes.
o It satisfy the user requirement
o Be easy to understand by the user and operator
o Be easy to operate
o Have a good user interface
o Be expandable
o Delivered on schedule within the budget.
o It generates the report on Room, Customer, Laundry Bill
o Provide filter reports on Booking, Tariffs, Food Bill
o You can easily export PDF for the Room, Laundry Bill, Tariffs
o Application also provides excel export for Customer, Booking, Food Bill
o You can also export the report into csv format for Room, Customer, Food Bill

3
Modules of Food Ordering Management System:

o Room Management Module: Used for managing the Room details.


o Food Bill Module : Used for managing the details of Food Bill
o Laundry Bill Module : Used for managing the details of Laundry Bill
o Customer Management Module: Used for managing the information and details of
the Customer.
o Booking Module : Used for managing the Booking details
o Tariffs Module : Used for managing the Tariffs information
o Login Module: Used for managing the login details
o Users Module : Used for managing the users of the system

In a nutshell, it can be summarized that the future scope of the project circles around
maintaining information regarding:

• We can add printer in future.


• We can give more advance software for Food Ordering Management System
including morefacilities
• We will host the platform on online servers to make it accessible worldwide
• Integrate multiple load balancers to distribute the loads of the system
• Create the master and slave database structure to reduce the overload of the database
queries
• Implement the backup mechanism for taking backup of codebase and database on
regular basis on different servers

The above-mentioned points are the enhancements which can be done to increase the
applicability and usage of this project. Here we can maintain the records of Room and
Customer. Also, as it can be seen that now-a-days the players are versatile, i.e. so there is a
scope for introducing a method to maintain the Food Ordering Management System.
Enhancements can be done to maintain all the Room, Customer, Booking, Tariffs, Food Bill.

We have left all the options open so that if there is any other future requirement in the system
by the user for the enhancement of the system then it is possible to implement them.In the
last we would like to thanks all the persons involved in the development of the system directly
or indirectly. We hope that the project will serve its purpose for which it is develop there by
underlining success of process.

.
4
CHAPTER 2
HARDWARE & SOFTWARE
REQUIREMENT

Hardware and soft requirements:


This software is designed to be light weighted so that it doesn’t be a burden on the machine
running it. This system is being built keeping in mind the generally available hardware and
software compatibility. Here are the minimum hardware and software requirements for Chat
Application.

2.1 HARDWARE REQUIREMENT


In hardware requirement we require all those components which will provide us the platform
for the development of the project. The minimum hardware required for the development of
this project is as follows--

• 4GB RAM (or above)


• 20 GB or more storage
• These are all the minimum hardware requirements required for our project. We want to
make our project to be used in any type of device therefore we have taken minimum
configuration to a large extent.

2.2 SOFTWARE REQUIREMENT

Language Python Browser Python Idle

Relational Database Management System

Relational Database Management System (RDBMS) : This is an RDBMS based project which
is currently using MySQL for all the transaction statements. MySQL is an opensource
RDBMS System.

5
Brief Introduction about RDBMS:

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 XMLdatabases.

6
7
CHAPTER 3
FEASIBILITY STUDY

After doing the project Hotel Management, 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.
Feasibility study includes consideration of all the possible ways to provide a solution to the
given problem. The proposed solution should satisfy all the user requirements and should be
flexible enough so that future changes can be easily done based on the future upcoming
requirements.
Economical Feasibility
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.

Technical Feasibility
This included the study of function, performance and constraints that may affect the ability
to achieve an acceptable system. For this feasibility study, we studied complete functionality
to be provided in the system, as described in the System Requirement Specification (SRS),
and checked if everything was possible using different type of frontend and backend
plaformst.

Operational Feasibility
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.
8
System Design of Food Ordering Management System

In this phase, a logical system is built which fulfils the given requirements. Design phase of
software development deals with transforming the clients's requirements into a logically
working system. Normally, design is performed in the following in the following two steps:

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 minimising the information flow
between blocks. Thus, all activities which require more interaction are kept in one
block.
Secondary Design Phase:
In the secondary phase the detailed design of every block is performed.

The general tasks involved in the designing 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.

User Interface Design


User Interface Design is concerned with the dialogue between a user and the computer. It is

concerned with everything from starting the system or logging into the system to the

eventually presentation of desired inputs and outputs. The overall flow of screens and

messages is called a dialogue.

The following steps are various guidelines for User Interface Design:

9
1. The system user should always be aware of what to do next.

2. The screen should be formatted so that various types of information, instructions and

messages always appear in the same general display area.

3. Message, instructions or information should be displayed long enough to allow the

system user to read them.

4. Use display attributes sparingly.

5. Default values for fields and answers to be entered by the user should be specified.

6. A user should not be allowed to proceed without correcting an error.

7. The system user should never get an operating system message or fatal error.

Preliminary Product Description:

The first step in the system development life cycle is the preliminary investigation to determine
the feasibility of the system. The purpose of the preliminary investigation is to evaluate project
requests. It is not a design study nor does it include the collection of details to describe the
business system in all respect. Rather, it is the collecting of information that helps committee
members to evaluate the merits of the project request and make an informed judgment about
the feasibility of the proposed project.

Analysts working on the preliminary investigation should accomplish the following


objectives:

• Clarify and understand the project request


• Determine the size of the project.
• Assess costs and benefits of alternative approaches.
• Determine the technical and operational feasibility of alternative approaches.
• Report the findings to management, with recommendations outlining the
acceptance or rejection of the proposal.

• 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.

10
• The Initial Cost

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

Running Cost

Besides, the initial cost the long term cost will include the running cost for the system
including the AMC, stationary charges, cost for human resources, cost for update/renewal of
various related software.

• Need for Training

The users along with the administrator need to be trained at the time of
implementation of the system for smooth running of the system. The client will provide the
training site.

We talked to the management people who were managing a the financial issues of the
center, the staff who were keeping the records in lots of registers and the reporting manager
regarding their existing system, their requirements and their expectations from the new
proposed system. Then, we did the system study of the entire system based on their
requirements and the additional features they wanted to incorporate in this system.

Reliable, accurate and secure data was also considered to be a complex task without
this proposed system. Because there was no such record for keeping track of all the activities,
which was done by the Food Ordering Management System on the daily basis.

The new system proposed and then developed by me will ease the task of the
organization in consideration. It will be helpful in generating the required reports by the staff,
which will help them to track their progress and services.

Thus, it will ease the task of Management to a great extent as all the major activities
to be performed, are computerized through this system.

11
CHAPTER 4
SOFTWARE ANALYSIS & DESIGN

4.1 SOFTWARE ANALYSIS

4.1.1 SOFTWARE DEVELOPMENT LIFE CYCLE


4.1.2 DESCRIPTION OF USED MODEL

The Waterfall Model


The Waterfall model is a sequential software development process, in which progress is seen as
flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation,
Analysis, Design (validation), Construction, Testing and Maintenance.

To follow the waterfall model, one proceeds from one phase to the next in a sequential manner.
For example, one first completes requirements specification, which after signoff are considered
"set in stone." When the requirements are fully completed, one proceeds to design. The software
in question is designed and a blueprint is drawn for implementers (coders) to follow
— this design should be a plan for implementing the requirements given. When the design is
fully completed, an implementation of that design is made by coders. Towards the later stages
of this implementation phase, separate software components produced are combined to
introduce new functionality and reduce risk through the removal of errors.

Thus, the waterfall model maintains that one should move to a phase only when its preceding
phase is completed and perfected. However, there are various modified waterfall models
(including Royce's final model) that may include slight or major variations upon this process.
Time spent early in the software production cycle can lead to greater economy at later stages.
It has been shown that a bug found in the early stages (such as requirements specification or
design) is cheaper in terms of money, effort and time, to fix than the same bug found later in
the process. To take an extreme example, if a program design turns out to be impossible to
implement, it is easier to fix the design at the design stage than to realize months later, when
program components are being integrated, that all the work done so far has to be scrapped
because of a broken design.

This is the central idea behind the waterfall model - time spent early on making sure that
requirements and design are correct will save you much time and effort later. Thus, the thinking
of those who follow the waterfall process goes, one should make sure that each phase is 100%
complete and absolutely correct before proceeding to the next phase of program creation.
Program requirements should be set in stone before design is started (otherwise work put into
a design based on incorrect requirements is wasted); the program's design should be perfect
before people begin work on implementing the design (otherwise they are implementing the
wrong design and their work is wasted), etc.
A further argument for the waterfall model is that it places emphasis on documentation (such
as requirements documents and design documents) as well as source code. In less designed and
documented methodologies, should team members leave, much knowledge is lost and may be
difficult for a project to recover from. Should a fully working design document be present (as
is the intent of Big Design Up Front and the waterfall model) new team members or even
entirely new teams should be able to familiarize themselves by reading the documents.

Basic principles of the waterfall model are:

Project is divided into sequential phases, with some overlap and splash back acceptable
between phases.

Emphasis is on planning, time schedules, target dates, budgets and implementation of an entire
system at one time.

Tight control is maintained over the life of the project through the use of extensive written
documentation, as well as through formal reviews and approval/signoff by the user and
information technology management occurring at the end of most phases before beginning the
next phase.

Project Profile

There has been continuous effort to develop tools, which can ease the process of software
development. But, with the evolving trend of different programming paradigms today's
software developers are really challenged to deal with thechanging technology. Among other
issues, software re-engineering is being regarded as an important process in the software
development industry. One of the major tasks here is to understand software systems that are
already developed and to transform them to a different software environment. Generally, this
requires a lot of manual effort in going through a program that might have been developed
by another programmer. This project makes a novel attempt to address the issued of program
analysis and generation of diagrams, which can depict the structure of a program in a better
way. Today, UML is being considered as an industrial standard for software engineering
design process. It essential provides several diagramming tools that can express different
aspects/ characteristics of program such as

Use cases: Elicit requirement from users in meaningful chunks. Construction planning is built
around delivering some use cases n each interaction basis for system testing.
Class diagrams: shows static structure of concepts, types and class. Concepts how users
think about the world; type shows interfaces of software components; classes shows
implementation of software components.

Interaction diagrams: shows how several objects collaborate in single use case.

Package diagram: show group of classes and dependencies among them.

State diagram: show how single object behaves across many use cases.

Activity diagram: shows behavior with control structure. Can show many objects over many
uses, many object in single use case, or implementations methods encourage parallel
behavior, etc.

The end-product of this project is a comprehensive tool that can parse any vb.net program
and extract most of the object oriented features inherent in the program such as
polymorphism, inheritance, encapsulation and abstraction.

What is UML?

UML stands for Unified Modeling Language is the successor to the wave of Object Oriented
Analysis and Design (OOA&D) methodsthat appeared in the late 80's. It most directly unifies
the methods of Booch, Rumbaugh (OMT) and Jacobson. The UML is called a modeling
language, not a method. Most methods consist at least in principle, of both a modeling
language and a process. The Modeling language is that notation that methods used to express
design.

Notations and meta-models:

The notation is the graphical stuff; it is the syntax of the modeling language. For instance,
class diagram notation defines how items are concepts such as class, association, and
multiplicity is represented. These are:

Class Diagram: The class diagram technique has become truly central within object•
oriented methods. Virtually every method has included some variation on this technique.
Class diagram is also subject to the greatest range of modeling concept. Although the basic
elements are needed by everyone, advanced concepts are used less often. A class diagram
describes the types of objects in the system and the various kinds of static relationship that
exist among them. There are two principal kinds of static relationship:

• Association
• Subtype
Class diagram also show the attributes and operations of a class and the constraints that apply
to the way objects are connected.
Association: Association represent between instances of class. From the conceptual
perspective, association represents conceptual relations between classes. Each association has
two roles. Each role is a direction on the association. A role also has multiplicity, which is a
indication of how many object may participate in the given relationship.

Generalization: A typical example of generalization evolves the personal and corporate


customer of a business. They have differences but also many similarity. The similarities can
be placed in generalization with personal customer and corporate customer sub type.

Aggregation: aggregation is the part of relationship. It is like saying a car has engine and
wheels as its parts. This sounds good, but difficult thing is considering, what is the difference
is aggregation and association.

Interaction: interaction diagrams are models that describes how groups of objects
collaboration in some behavior.

Typically, an interaction diagram captures the behavior a single use cases. The diagram shows
a number of example objects and the messages that are passed between these objects in use
cases. These are following approaches with simple use case that exhibits the following
behavior.

Objects can send a message to another. Each message is checks with given stock item. There
are two diagrams: Sequence and Collaboration diagram.

Package Diagram: One of the oldest questions in software methods is: how do you break
down a large system into smaller systems? It becomes difficult to understand and the changes
we make to them.

Structured methods used functional decomposition in which the overall system was mapped
as a function broken down into sub function, which is further broken down into sub function
and so forth. The separation of process data is gone, functional decomposition is gone, but
the old question is still remains. One idea is to group the classes together into higher-level
unit. This idea, applied very loosely, appears in many objects. In UML, this grouping
mechanism is package. The term package diagram for a diagram that shows packages of
classes and the dependencies among them.

A dependency exists between two elements if changes to the definition of one element may
cause to other. With classes, dependencies exist for various reasons: one class sends a
message to another; one class has another as part of its data; one class mentions another as a
parameter to an operation. A dependency between two packages exists; and any dependencies
exist between any two classes in the package.

State diagram: State diagram are a familiar technique to describe the behavior of a system.
They describe all the possible states a particular object can get into and how the objects state
changes as a result of events that reach the objects. In most 00 technique, state diagrams are
drawn for a single class to show the lifetime behavior of a singe object. There are many form
of state diagram, each with slightly different semantics. The most popular one used in 00
technique is based on David Harel's state chart.
CHAPTER 5
METHODOLGY

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

DATA FLOW DIAGRAMS

Model
 Encapsulates application state
 Responds tostatequeries
 Exposes application functionality
[r • Notifies views of changes
View
• Renders the models
• Requests updates from models
• Sends user gestures to controller
• Allows controller to select view
View Selection

Cl Cl DD
User Gesture

Controller
• Defines application behavior
• Maps useractions to model updates
• Selects view for response
• Uses onefor each functionality

Method Invocations
□ c;> Events

Project Planning:

Software project plan can be viewed as the following:

1) Within the organization: How the project is to be implemented? What are various
constraints (time, cost, staff)? What is market strategy?
2) With respect to the customer: Weekly or timely meetings with the customer with
presentation on status reports. Customers feedback is also taken and further
modification and developments are done. Project milestones and deliverables are also
presented to the customer.

For a successful software project, the following steps can be followed:

• Select a project

o Identifying project's aims and objectives

o Understanding requirements and specification

o Methods of analysis, design and implementation

o Testing techniques
o Documentation

• Project milestones and deliverables

• Budget allocation

o Exceeding limits within control

• Project Estimates

o Cost

o Time

o Size of code

o Duration

• Resource Allocation
o
o Hardware
o
o Software
o
o Previous relevant project information
o
o Digital Library
o
• Risk Management
o
o Risk avoidance
o
o Risk detection
o

Project Scheduling:
An elementary Gantt chart or Timeline chart for the development plan is given below. The
plan explains the tasks versus the time (in weeks) they will take to complete.

January February March

Requirement
Gathering

Analysis

Design

Coding

Testing

Implement

w w w w w w w w w w w w
1 2 3 4 1 2 3 4 1 2 3 4

Wi's are weeks of the months, for i =1, 2, 3, 4

Cost estimation of the project:


Software cost comprises a small percentage of overall computer-based system cost. There are
a number of factors, which are considered, that can affect the ultimate cost of the software
such as - human, technical, Hardware and Software availability etc.

The main point that was considered during the cost estimation of project was its sizing. In
spite of complete software sizing, function point and approximate lines of code were also
used to "size" each element of the Software and their costing.

The cost estimation done by me for Project also depend upon the baseline metrics collected
from past projects and these were used in conjunction with estimation variables to develop
cost and effort projections.

We have basically estimated this project mainly on two bases -

1) Effort Estimation - This refers to the total man-hours required for the development of
the project. It even includes the time required for doing documentation and user manual.

2) Hardware Required Estimation - This includes the cost of the PCs and the hardware
cost required for development of this project.

PERT CHART (Program Evaluation Review Technique)

PERT chart is organized for events, activities or tasks. It is a scheduling device that shows
graphically the order of the tasks to be performed. It enables the calculation of the critical
path. The time and cost associated along a path is calculated and the path requires the greatest
amount of elapsed time in critical path.
GANTT CHART

It is also known as Bar chart is used exclusively for scheduling purpose. It is a project
controlling technique. It is used for scheduling. Budgeting and resourcing planning. A Gantt
is a bar chart with each bar representing activity. The bars are drawn against a time line. The
length of time planned for the activity. The Gantt chart in the figure shows the Gray parts is
slack time that is the latest by which a task has been finished.

GANTT CHART REPRESENTATION

Use Case Model of the Project:

The use case model for any system consists of "use cases". Use cases represent different
ways in which the system can be used by the user. A simple way to find all the use case of
a system is to ask the questions "What the user can do using the system?" The use cases
partition the system behavior into transactions such that each transaction performs some
useful action from the users' point of view.

The purpose of the use case to define a piece of coherent behavior without reveling
the internal structure of the system. An use case typically represents a sequence of interaction
between the user and the system. These interactions consists of one main line sequence is
represent the normal interaction between the user and the system. The use case model is an
important analysis and design artifact (task).Use cases can be represented by drawing a use
case diagram and writing an accompany text elaborating the drawing.
In the use case diagram each use case is represented by an ellipse with the name of use case
written inside the ellipse. All the ellipses of the system are enclosed with in a rectangle
which represents the system boundary. The name of the system being moduled appears
inside the rectangle. The different users of the system are represented by using stick person
icon. The stick person icon is normally referred to as an Actor. The line connecting the actor
and the use cases is called the communication relationship. When a stick person icon
represents an external system it is annotated by the stereo type<<external system>>.

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 dataflow 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 OFO 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 dataflow 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 O 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.

About ER Diagram:
Entity Relationship Diagram

E-R Model is a popular high level conceptual datamodel. 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 relationshops between them are shown using the following
conventions.

• An entity is shown in rectangle.

• The attributes shown as ovals are connected to the entities or relationship by


lines.

• Diamond.oval and relationships are labeled.

o Model is an abstraction process that hides super details while


highlighting details relation to application at end.
o A data model is a mechanism that provides this abstraction for database
application.
o Data modeling is used for representing entities and their relationship in the
database.
o Entities are the basic units used in modeling database entities can have
concrete existence or constitute ideas or concepts.
o Entity type or entity set is a group of similar objects concern to an
organization for which it maintain data,
o Properties are characteristics of an entity also called as attributes.
o 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.
o In relational model we represent the entity by a relation and use tuples to
represent an instance of the entity.
o Relationship is used in data modeling to represent in association between an
entity set.
o An association between two attributes indicates that the values of the
associated attributes are independent.
Data Dictionary:

This is normally represented as the data about data. It is also termed as metadata some times
which gives the data about the data stored in the database. It defines each data term
encountered during the analysis and design of a new system. Data elements can describe files
or the processes.

Following are some major symbols used in the data dictionary

• = equivalent to
• + and
• [) either/ or
• () Optional entry

Following are some rules, which defines the construction of data dictionary
entries:

1. Words should be defined to understand for what they need and not the variable
need by which they may be described in the program .
2. Each word must be unique. We cannot have two definition of the same client.
3. Aliases or synonyms are allowed when two or more enters shows the same
meaning. For example a vendor number may also be called as customer number.
4. A self-defining word should not be decomposed. It means that the reduction of
any information in to subpart should be done only if it is really required that is
it is not easy to understand directly.
Data dictionary includes information such as the number of records in file, the
frequency a process will run, security factor like pass word which user must enter to
get excess to the information.

Code to Design and for structure of Project


print("\n" * 5) #Starting after 5x empty lines.

import datetime #Deltatime library, to get Real Date information.


import os #OS (Operating system) , To provide cross-platform compatibility
list_foods = [] #Variable List of foods, names + prices.
list_drinks = [] #Variable List of drinks, names + prices.
list_services = [] #Variable List of other services, names + prices.

list_item_price = [0] * 100 #Variable List of item prices. Index: 0-39 for foods, index: 40-79 for
drinks,
#Index: 80-99 for other services.
var_discount_1 = 200 #First discount starts.
var_discount_2 = 1000 #Second discount starts.
var_discount_3 = 5000 #Third discount starts.
var_discount_1_rate = 0.05 #First discount rate.
var_discount_2_rate = 0.10 #Second discount rate.
var_discount_3_rate = 0.15 #Third discount rate.

navigator_symbol = "/" # This will make the program runnable on any unix based enviroument
because it has differnet file system
if os.name == "nt":
navigator_symbol = "\\" # This will make the program runnable on Windows

def def_default():
global list_drinks, list_foods, list_services, list_item_order, list_item_price
list_item_order = [0] * 100 #Create a list, length 100. Max index number is 99.
def_default() #Index: 0-39 for foods, index: 40-79 for drinks,
#Index: 80-99 for other services. Global variables.

def def_main():
while True: #Repeat Menu until stops.
print("*" * 31 + "MAIN MENU" + "*" * 32 + "\n" #Design for Main Menu.
"\t(O) ORDER\n" #"*" * 31 means, write (*) 31 times.
"\t(R) REPORT\n"
"\t(P) PAYMENT\n"
"\t(E) EXIT\n" +
"_" * 72)

input_1 = str(input("Please Select Your Operation: ")).upper() #Input, have to choose


operation. Make everything UPPER symbol.
if (len(input_1) == 1): #Checking input length.
if (input_1 == 'O'): #If input is "O".
print("\n" * 10) #Create 100 empty lines.
def_order_menu() #Start Order Menu function.
break #Stop repeating Main Menu.
elif (input_1 == 'R'): #If input is "R".
print("\n" * 10) #Create 100 empty lines.
def_report() #Start Report function.
break #Stop repeating Main Menu.
elif (input_1 == 'P'): #If input is "P".
print("\n" * 10) #Create 100 empty lines.
def_payment() #Start Payment function.
break #Stop repeating Main Menu.
elif (input_1 == 'E'): #If input is "E".
print("*" * 32 + "THANK YOU" + "*" * 31 + "\n") #Good bye comment.
break #Stop repeating Main Menu.
else: #If O, R, P, E not inserted then...
print("\n" * 10 + "ERROR: Invalid Input (" + str(input_1) + "). Try again!") #Invalid
input.
else: #If input length not equal to 1...
print("\n" * 10 + "ERROR: Invalid Input (" + str(input_1) + "). Try again!") #Invalid
input.

def def_order_menu(): #yousef


while True: # While looping to keep menu alive
print("*" * 31 + "ORDER PAGE" + "*" * 31 + "\n" # Mail Menu
"\t(F) FOODS AND DRINKS\n"
"\t(O) OTHER SERVICES\n"
"\t(M) MAIN MENU\n"
"\t(E) EXIT\n" +
"_" * 72)

input_1 = str(input("Please Select Your Operation: ")).upper() # Options Handling : F-O-M-E.


if len(input_1) == 1:
if (input_1 == 'F'): #Easy Access Checking Logic
print("\n" * 10)
def_food_drink_order() # Show Food/Drinks Menu
break
elif (input_1 == 'O'):
print("\n" * 10)
def_other_services() # Show Services Menu
break
elif (input_1 == 'M'):
print("\n" * 10)
def_main() # Show Main Menu
break
elif (input_1 == 'E'):
print("*" * 32 + "THANK YOU" + "*" * 31 + "\n")
break
else:
print("\n" * 10 + "ERROR: Invalid Input (" + str(input_1) + "). Try again!") # Handling
Bad Inputs
else:
print("\n" * 10 + "ERROR: Invalid Input (" + str(input_1) + "). Try again!")

def def_full_file_reader(): #mustafa


file_foods = open('files'+navigator_symbol+'list_foods.fsd', 'r') # Reading Food List
for i in file_foods: # Line by line reading
list_foods.append(str(i.strip())) # Adding each line (Food) into an array after applying Strip
function to remove out extra spaces in front and back
file_foods.close()

file_drinks = open('files'+navigator_symbol+'list_drinks.fsd', 'r') # Reading Drinks List


for i in file_drinks:
list_drinks.append(str(i.strip()))
file_drinks.close()

file_services = open('files'+navigator_symbol+'list_services.fsd', 'r') # Reading Services


for i in file_services:
list_services.append(str(i.strip()))
file_services.close()

i=0
while i <= (len(list_foods) - 1): #Enumarte through food list to filter out prices and setup print
Formatting by replacing spaces with count difference of string length and align Prices to the most left
of the terminal
if 'RM' in list_foods[i]:
list_foods[i] = str(list_foods[i][:list_foods[i].index('RM') - 1]) + ' ' * (20 -
(list_foods[i].index('RM') - 1)) + str(list_foods[i][list_foods[i].index('RM'):])
i += 1

i=0
while i <= (len(list_drinks) - 1):
if 'RM' in list_drinks[i]:
list_drinks[i] = str(list_drinks[i][:list_drinks[i].index('RM') - 1]) + ' ' * (20 -
(list_drinks[i].index('RM') - 1)) + str(list_drinks[i][list_drinks[i].index('RM'):])
i += 1

i=0
while i <= (len(list_services) - 1):
if 'RM' in list_services[i]:
list_services[i] = str(list_services[i][:list_services[i].index('RM') - 1]) + ' ' * (20 -
(list_services[i].index('RM') - 1)) + str(list_services[i][list_services[i].index('RM'):])
i += 1
def_full_file_reader()

def def_file_sorter(): # Applying Sorting to the array to be sorted from A-Z ASC ((AND)) Extracting
out prices after sorting and appending them to a prices array accordingly to a parrallel indexes
global list_foods, list_drinks, list_services
list_foods = sorted(list_foods)
list_drinks = sorted(list_drinks)
list_services = sorted(list_services)

i=0
while i < len(list_foods):
list_item_price[i] = float(list_foods[i][int(list_foods[i].index("RM") + 3):]) # Extracting Out
"RM" + [SPACE] from and cast out the string into an integer
i += 1

i=0
while i < len(list_drinks):
list_item_price[40 + i] = float(list_drinks[i][int(list_drinks[i].index("RM") + 3):]) # Applying
extraction on 40 and above items which are the drinks
i += 1

i=0
while i < len(list_services):
list_item_price[80 + i] = float(list_services[i][int(list_services[i].index("RM") + 3):]) #
Applying extraction on 80 and above items wich are Services
i += 1
def_file_sorter()

def def_food_drink_order():
while True:
print("*" * 26 + "ORDER FOODS & DRINKS" + "*" * 26)
print(" |NO| |FOOD NAME| |PRICE| | |NO| |DRINK NAME| |PRICE|")

i=0
while i < len(list_foods) or i < len(list_drinks):
var_space = 1
if i <= 8: # To fix up to space indention in console or terminal by applying
detection rule to figure out spacing for TWO DIGITS numbers
var_space = 2

if i < len(list_foods):
food = " (" + str(i + 1) + ")" + " " * var_space + str(list_foods[i]) + " | " # Styling out the
index number for the food or item and starting out from 1 for better human readability
else:
food = " " * 36 + "| " # 36 is a constant for indention in console to fixup list in print
if i < len(list_drinks):
drink = "(" + str(41 + i) + ")" + " " + str(list_drinks[i])
else:
drink = ""
print(food, drink)
i += 1

print("\n (M) MAIN MENU (P) PAYMENT (E) EXIT\n" + "_" * 72)

input_1 = input("Please Select Your Operation: ").upper() #Handling Menu Selection


if (input_1 == 'M'):
print("\n" * 10)
def_main() # Return to main menu by calling it out
break
if (input_1 == 'E'):
print("*" * 32 + "THANK YOU" + "*" * 31 + "\n") # Handling Exit and print out thank
you
break
if (input_1 == 'P'):
print("\n" * 10)
def_payment() # Handling payment || More details below
break
try: #Cautions Error Handling to prevent program crashing and hand out exceptions as a
readable error to notify user
int(input_1)
if ((int(input_1) <= len(list_foods) and int(input_1) > 0) or (int(input_1) <= len(list_drinks)
+ 40 and int(input_1) > 40)):
try:
print("\n" + "_" * 72 + "\n" + str(list_foods[int(input_1) - 1])) # Handling Food
Selection / The try/Execpt to handle out of index error as if it not exists in the array
except:
pass
try:
print("\n" + "_" * 72 + "\n" + str(list_drinks[int(input_1) - 41])) # Handling Drinks
Selection / The try/Execpt to handle out of index error as if it not exists in the array
except:
pass

input_2 = input("How Many You Want to Order?: ").upper() # Handling Quantity input
if int(input_2) > 0:
list_item_order[int(input_1) - 1] += int(input_2) # adding item to Orders Array
print("\n" * 10)
print("Successfully Ordered!")
def_food_drink_order() # Return food/drinks Menu
break
else:
print("\n" * 10 + "ERROR: Invalid Input (" + str(input_2) + "). Try again!")
except:
print("\n" * 10 + "ERROR: Invalid Input (" + str(input_1) + "). Try again!")

def def_other_services():
while True:
print("*" * 29 + "OTHER SERVICES" + "*" * 29)
print(" |NO| |SERVICE NAME| |PRICE|") # Services Menu Structure

i=0
while i < len(list_services):
print(" (" + str(81+ i) + ")" + " " + str(list_services[i])) # Services starts from 81 + and now it
is being enumarated into a list.

i += 1

print("\n (M) MAIN MENU (P) PAYMENT (E) EXIT\n" + "_" * 72)

input_1 = input("Please Select Your Operation: ").upper()


if (input_1 == 'M'):
print("\n" * 10)
def_main() # Navigate Back to main menu
break
if (input_1 == 'E'):
print("*" * 32 + "THANK YOU" + "*" * 31 + "\n")
break
if (input_1 == 'P'):
print("\n" * 10)
def_payment() # navigate to payment
break
try:
int(input_1)
if (int(input_1) > 80) and (int(input_1) < 100):
print("\n" * 10)
print("Successfully Ordered: " + str(list_services[int(input_1) - 81])) # Adding services to
orders array (AND) encapsulate errors with try/except
list_item_order[int(input_1) - 1] = 1
def_other_services()
break
else:
print("\n" * 10 + "ERROR: Invalid Input (" + str(input_1) + "). Try again!")
except:
print("\n" * 10 + "ERROR: Invalid Input (" + str(input_1) + "). Try again!")

def def_report():
while True:
print("*" * 33 + "REPORT" + "*" * 33 + "\n")
file_report = open('files'+navigator_symbol+'report.fsd', 'r').read() # Reading out reports from
report.fsd
print(file_report)
print("\n(M) MAIN MENU (E) EXIT\n" + "_" * 72)
input_1 = str(input("Please Select Your Operation: ")).upper()
if (input_1 == 'M'):
print("\n" * 10)
def_main() # Navigate back to menu
break
elif (input_1 == 'E'):
print("*" * 32 + "THANK YOU" + "*" * 31 + "\n") # Exit and break up the loop
break
else:
print("\n" * 10 + "ERROR: Invalid Input (" + str(input_1) + "). Try again!")

def def_payment():
while True:
print("*" * 32 + "PAYMENT" + "*" * 33 + "\n") # Header & Styling
total_price = 0 # alloc/init a variable to handle total_price

report_new = "\n\n\n" + " " * 17 + "*" * 35 + "\n" + " " * 17 + "DATE: " +
str(datetime.datetime.now())[:19] + "\n" + " " * 17 + "-" * 35 #building up report string header
i=0
while i < len(list_item_order): #Enumarating order array items and summing up its prices *
quantities
if(list_item_order[i] != 0):
if (i >= 0) and (i < 40):
report_new += "\n" + " " * 17 + str(list_foods[i]) + " x " + str(list_item_order[i]) #
string appending the formated food name and formated order structure from quantity and final price
print(" " * 17 + str(list_foods[i]) + " x " + str(list_item_order[i])) #print it out
total_price += list_item_price[i] * list_item_order[i] # Calculating the total price for food
if (i >= 40) and (i < 80):
report_new += "\n" + " " * 17 + str(list_drinks[i - 40]) + " x " + str(list_item_order[i])
print(" " * 17 + str(list_drinks[i - 40]) + " x " + str(list_item_order[i]))
total_price += list_item_price[i] * list_item_order[i] # Calculating the total price for
drinks
if (i >= 80) and (i < 100):
report_new += "\n" + " " * 17 + str(list_services[i - 80])
print(" " * 17 + str(list_services[i - 80]))
total_price += list_item_price[i] * list_item_order[i] # Calculating the total price for
services
i += 1
else:
i += 1
### Applying Discounts Ruless
if total_price > var_discount_3: ### price > 5000
total_price -= total_price * var_discount_3_rate # Discount fees from the total_price by 0.15
or 15%
report_new += "\n" + " " * 17 + "-" * 35 + "\n" \
"" + " " * 17 + "DISCOUNT RATES: % " + str(var_discount_3_rate * 100) + "\n" \
"" + " " * 17 + "DISCOUNT AMOUNTS: RM " + str(round(total_price *
var_discount_3_rate, 2)) + "\n" + " " * 17 + "_" * 35 + "\n" \
"" + " " * 17 + "TOTAL PRICES: RM " + str(round(total_price, 2)) + "\n" + " " * 17 +
"*" * 35 # Round() to flour the float into an interger
print(" " * 17 + "-" * 35 + "\n"
"" + " " * 17 + "DISCOUNT RATES: % " + str(var_discount_3_rate * 100) + "\n"
"" + " " * 17 + "DISCOUNT AMOUNTS: RM " + str(round(total_price *
var_discount_3_rate, 2)) + "\n" + " " * 17 + "_" * 35 + "\n"
"" + " " * 17 + "TOTAL PRICES: RM " + str(round(total_price, 2)))
elif total_price > var_discount_2: ### price > 3000
total_price -= total_price * var_discount_2_rate # Discount fees from the total_price by 0.10
or 10%
report_new += "\n" + " " * 17 + "-" * 35 + "\n" \
"" + " " * 17 + "DISCOUNT RATES: % " + str(var_discount_2_rate * 100) + "\n" \
"" + " " * 17 + "DISCOUNT AMOUNTS: RM " + str(round(total_price *
var_discount_2_rate, 2)) + "\n" + " " * 17 + "_" * 35 + "\n" \
"" + " " * 17 + "TOTAL PRICES: RM " + str(round(total_price, 2)) + "\n" + " " * 17 +
"*" * 35 # Round() to flour the float into an interger
print(" " * 17 + "-" * 35 + "\n"
"" + " " * 17 + "DISCOUNT RATES: % " + str(var_discount_2_rate * 100) + "\n"
"" + " " * 17 + "DISCOUNT AMOUNTS: RM " + str(round(total_price *
var_discount_2_rate, 2)) + "\n" + " " * 17 + "_" * 35 + "\n"
"" + " " * 17 + "TOTAL PRICES: RM " + str(round(total_price, 2)))
elif total_price > var_discount_1: ### price > 200
total_price -= total_price * var_discount_1_rate # Discount fees from the total_price by 0.05
or 5%
report_new += "\n" + " " * 17 + "-" * 35 + "\n" \
"" + " " * 17 + "DISCOUNT RATES: % " + str(var_discount_1_rate * 100) + "\n" \
"" + " " * 17 + "DISCOUNT AMOUNTS: RM " + str(round(total_price *
var_discount_1_rate, 2)) + "\n" + " " * 17 + "_" * 35 + "\n" \
"" + " " * 17 + "TOTAL PRICES: RM " + str(round(total_price, 2)) + "\n" + " " * 17 +
"*" * 35 # Round() to flour the float into an interger
print(" " * 17 + "-" * 35 + "\n"
"" + " " * 17 + "DISCOUNT RATES: % " + str(var_discount_1_rate * 100) + "\n"
"" + " " * 17 + "DISCOUNT AMOUNTS: RM " + str(round(total_price *
var_discount_1_rate, 2)) + "\n" + " " * 17 + "_" * 35 + "\n"
"" + " " * 17 + "TOTAL PRICES: RM " + str(round(total_price, 2)))
else:
report_new += "\n" + " " * 17 + "-" * 35 + "\n" + " " * 17 + "TOTAL PRICES: RM " +
str(round(total_price, 2)) + "\n" + " " * 17 + "*" * 35
print(" " * 17 + "_" * 35 + "\n" + " " * 17 + "TOTAL PRICES: RM " +
str(round(total_price, 2)))
print("\n (P) PAY (M) MAIN MENU (R) REPORT (E) EXIT\n" + "_" * 72)
input_1 = str(input("Please Select Your Operation: ")).upper()
if (input_1 == 'P'):
print("\n" * 10)
print("Successfully Paid!")
file_report = open('files'+navigator_symbol+'report.fsd', 'a') # Save it into a file
file_report.write(report_new)
file_report.close()
def_default() #Reset the program for the name order
elif (input_1 == 'M'):
print("\n" * 10)
def_main() #Navigate back to the main menu
break
elif (input_1 == 'R'):
print("\n" * 10)
def_report() # Navigate to the reports
break
elif ('E' in input_1) or ('e' in input_1):
print("*" * 32 + "THANK YOU" + "*" * 31 + "\n")
break
else:
print("\n" * 10 + "ERROR: Invalid Input (" + str(input_1) + "). Try again!")
def_main() # Execute Main menu Loop
CHAPTER 6
TESTING
6.1 TESTING

Testing is more than just debugging. The purpose of testing can be quality assurance,
verification and validation, or reliability estimation. Correctness testing and reliability testing
are two major areas of testing. Software testing is a trade-off between budget, time and quality.

Software Testing
Software Testing is the process of executing a program or system with the intent of finding
errors. Or, it involves any activity aimed at evaluating an attribute or capability of a program or
system and determining that it meets its required results. Software is not unlike other physical
processes where inputs are received and outputs are produced. Where software differsis in the
manner in which it fails. Unlike most physical systems, most of the defects in softwareare design
errors, not manufacturing defects.

To improve quality
As computers and softwareare used in critical applications, the outcome of a bug can be severe.
Bugs can cause huge losses.

For Verification & Validation (V&V)


Another important purpose of testing is verification and validation (V&V). It is heavily used as
a tool in the V&V process. Testers can make claims based on interpretations of the testing
results, which either the product works under certain situations, or it does not work.

Software Testing Types:

Black-box testing
The black-box approach is a testing method in which test data are derived from the specified
functional requirements without regard to the final program structure. It is also termed data-
driven, input/output driven or requirements-based testing. A testing method emphasized on
executing the functions and examination of their input and output data.

White-box testing
Contrary to black-box testing, software is viewed as a white-box, or glass-box in white-box
testing, as the structure and flow of the software under test are visible to the tester. This testing
is based on knowledge of the internal logic of an application’s code. Testing plans are made
according to the details of the software implementation, such as programming language, logic,
and styles. Test cases are derived from the program structure.

Unit testing
This involves testing of individual software components or modules. Typically done by the
programmer and not by testers, as it requires detailed knowledge of the internal program design
and code.

System testing
Entire system is tested as per the requirements. Black-box type testing that is based on overall
requirements specifications, covers all combined parts of a system.

End-to-end testing
Similar to system testing, involves testing of a complete application environment in a situation
that mimics real-world use, such as interacting with a database, using network communications,
or interacting with other hardware, applications, or systems if appropriate.

Install/uninstall testing
Tested for full, partial, or upgrade install/uninstall processes on different operating systems
under different hardware, software environment.

Security testing

Can system be penetrated by any hacking way. Testing how well the system protects against
unauthorized internal or external access. Checked if system, database is safe from external
attacks.

Compatibility testing
Testing how well software performs in a particular hardware/software/operating
system/network environment and different combination s of above.
Comparison testing

Comparison of product strengths and weaknesses with previous versions or other similar
products. Alpha testing

In house virtual user environment can be created for this type of testing. Testing is done at

the end of development. Still minor design changes may be made as a result of such testing.

Beta testing
Testing typically done by end-users or others. Final testing before releasing application for
commercial purpose.
CHAPTER 7
BENEFITS

7.1 BENEFITS

The Chat Application offers several benefits to people providing a streamlined and efficient
platform for sharing information and resources. Some of the key benefits of this application
include:
 Improved communication: Chat apps offer a convenient and efficient way to
communicate with others, especially when compared to traditional methods such as
email or phone calls. They allow for quick and easy messaging between individuals or
groups, which can improve collaboration and productivity.
 Real-time communication: Chat apps enable real-time communication, which means that
users can exchange messages instantly, regardless of their location or time zone. This
makes it easy to have conversations and resolve issues quickly, without the need for
lengthy delays or scheduling.
 Multi-device support: Chat apps typically support multiple devices, which means that
users can access their messages from their desktop computer, laptop, tablet, or
smartphone. This provides greater flexibility and convenience, as users can switch
between devices as needed.
 Rich media support: Many chat apps support rich media such as images, videos, and GIFs,
which can enhance the user experience and make communication more engaging and fun.
 Customization options: Some chat apps offer customization options such as themes,
stickers, and emojis, which allow users to personalize their experience and express
themselves in unique ways.
 Security and privacy: Chat apps typically offer end-to-end encryption, which means that
messages are secured and cannot be intercepted by third parties. This provides greater
security and privacy for users who need to communicate sensitive information.
 Overall, chat apps offer several benefits that can improve communication, collaboration,
and productivity.
CHAPTER 8
LIMITATIONS

8.1 LIMITATIONS

 Although I have put my best efforts to make the software flexible, easy to operate but
limitations cannot be ruled out even by me. Though the software presents a broad range
of options to its users some intricate options could not be covered into it; partly because
of logistic and partly due to lack of sophistication. Paucity of time was also major
constraint, thus it was not possible to make the software foolproof and dynamic. Lack of
time also compelled me to ignore some part such as storing old result of the candidate etc.
 Considerable efforts have made the software easy to operate even for the people not
related to the field of computers but it is acknowledged that a layman may find it a bit
problematic at the first instance. The user is provided help at each step for his
convenience in working with the software.
 Excel export has not been developed for Room, Customer due to some criticality.
 The transactions are executed in off-line mode, hence on-line data for Booking, Tariffs
capture and modification is not possible.
 Off-line reports of Room, Food Bill, Booking cannot be generated due to batch mode
execution.
CHAPTER 9
CONCLUSION
Our project is only a humble venture to satisfy the needs to manage their project work.
Several user-friendly coding have also adopted. This package shall prove to be a powerful
package in satisfying all the requirements of the school. The objective of software planning
is to provide a frame work that enables themanger to make reasonable estimates madewithin
a limited time frame at thebeginning of the software project and should be updated regularly
as the project progresses.

At the end it is concluded that we have made an effort on the following


points...

• A description of the background and context of the project and its relation to work
already done in the area.
• Made statement of the aims and objectives of the project.
• The description of Purpose, Scope, and applicability.
• We define the problem on which we are working in the project.
• We describe the requirement Specifications of the system and the actions that can be
done on these things.
• We understand the problem domain and produce a model of the system, which
describes operations that can be performed on the system.
• We included features and operations in detail, including screen layouts.
• We designed user interface and security issues related to system.
• Finally, the system is implemented and tested according to test cases.
CHAPTER 10
REFERENCES

10.1 REFERENCES

• Google for problem solving


• http://www.javaworld.com/javaworld/jw-01-1998/jw-01-Credentialreview.html
• Database Programming with JDBC and Java by O'Reilly
• http://www.jdbc-tutorial.com/
• Java and Software Design Concepts by Apress
• https://www.tutorialspoint.com/java/
• http://www.javatpoint.com/python-tutorial
• https://docs.oracle.com/javase/tutorial/
• http://www.wampserver.com/en/
• http://www.JSP.net/
• http://www.tutorialspoint.com/mysql/
• httpd.apache.org/docs/2.0/misc/tutorials.html

You might also like