SlideShare a Scribd company logo
1 of 85
Download to read offline
A MAJOR PROJECT REPORT
On
“SOCIAL DISTANCING PREDICTION USING OPENCV”
Submitted to
SRI INDU COLLEGE OF ENGINEERING & TECHNOLOGY, HYDERABAD
In partial fulfillment of the requirements for the Award of Degree of
BACHELOR OF TECHNOLOGY
In
COMPUTER SCIENCE AND ENGINEERING
Submitted By
BANDARU DIVYA (20D41A0519)
BODHANAPU DIVYA SREE (20D41A0529)
CH.SAI CHARAN (20D41A0546)
ANUGU YASHWANTH REDDY (20D41A0512)
Under the esteemed guidance of
Mrs. K.VIJAYA LAKSHMI
(Assistant Professor)
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
SRI INDU COLLEGE OF ENGINEERING & TECHNOLOGY
(An Autonomous Institution under UGC, Accredited by NBA, Affiliated to JNTUH)
Sheriguda(V), Ibrahimpatnam(M), Rangareddy Dist-501510
(2023-2024)
SRI INDU COLLEGE OF ENGINEERING & TECHNOLOGY
(An Autonomous Institution under UGC, Accredited by NBA, Affiliated to JNTUH)
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
CERTIFICATE
Certified that the Major Project entitled “SOCIAL DISTANCING PREDICTION USING
OPENCV” is a bonafide work carried out by BANDARU DIVYA [20D41A0519],
BODHANAPU DIVYA SREE [20D41A0529], CH.SAI CHARAN [20D41A0546], ANUGU
YASHWANTH REDDY [20D41A0512] in partial fulfillment for the award of degree of
Bachelor of Technology in Computer Science and Engineering of SICET, Hyderabad for the
academic year 2023- 2024. The Project has been approved as it satisfies academic requirements
in respect of the work prescribed for IV YEAR, II-SEMESTER of B. TECH course.
INTERNAL GUIDE HEAD OF THE DEPARTMENT
(Mrs. K.VIJAYA LAKSHMI ) (Prof. CH.G.V.N PRASAD)
(Assistant Professor)
EXTERNAL EXAMINAR
ACKNOWLEDGMENT
The satisfaction that accompanies the successful completion of the task would be put incomplete
without the mention of the people who made it possible, whose constant guidance and
encouragement crown all the efforts with success. We are thankful to Principal Dr. G. SURESH
for giving us the permission to carry out this project.We are highly indebted to Prof. Ch. GVN.
Prasad, Head of the Department of Computer Science Engineering, for providing necessary
infrastructure and labs and also valuable guidance at every stage of this project. We are grateful
to our internal project guide (Mrs. K.VIJAYA LAKSHMI), Assistant Professor for her constant
motivation and guidance given by her during the execution of this project work. We would like to
thank the Teaching & Non-Teaching staff of Department of ComputerScience and engineering for
sharing their knowledge with us, last but not least we express our sincere thanks to everyone who
helped directly or indirectly for the completion of this project.
BANDARU DIVYA (20D41A0519)
BODHANAPU DIVYA SREE (20D41A0529)
CH.SAI CHARAN (20D41A0546)
ANUGU YASHWANTH REDDY (20D41A0512)
SOCIAL DISTANCING PREDICTION USING OPENCV
ABSTRACT
The rampant coronavirus disease 2019 (COVID-19) has brought global crisis with its deadly
spread to more than 180 countries, and about 3,519,901 confirmed cases along with 247,630
deaths globally as on May 4, 2020. The absence of any active therapeutic agents and the lack
of immunity against COVID19 increases the vulnerability of the population. Since there are
no vaccines available, social distancing is the only feasible approach to fight against this
pandemic. Motivated by this notion, this article proposes a deep learning based framework for
automating the task of monitoring social distancing using surveillance video. The proposed
framework utilizes the YOLO v3 object detection model to segregate humans from the
background and Deepsort approach to track the identified people with the help of bounding
boxes and assigned IDs. The results of the YOLO v3 model are further compared with other
popular state-of-the-art models, e.g. faster region-based CNN (convolution neural network)
and single shot detector (SSD) in terms of mean average precision (mAP), frames per second
(FPS) and loss values defined by object classification and localization. Later, the pairwise
vectorized L2 norm is computed based on the three-dimensional feature space obtained by
using the centroid coordinates and dimensions of the bounding box. The violation index term
is proposed to quantize the non adoption of social distancing protocol. From the experimental
analysis, it is observed that the YOLO v3 with Deepsort tracking scheme displayed best results
with balanced mAP and FPS score to monitor the social distancing in real-time.
i
CONTENTS
S.No. Chapters Page No
i. List of Figures……………………………………………………………………….. iii
ii. List of Screenshots.……………………………………………………………… iv
1. INTRODUCTION
1.1 INTRODUCTION OF PROJECT............................................................................ 01
1.2 LITERATURE SURVEY ......................................................................................... 03
1.3 MODULES............................................................................................................... 06
2. SYSTEM ANALYSIS
2.1 EXISTING SYSTEM & ITS DISADVANTAGES........................................... …..07
2.2 PROPOSED SYSTEM & ITS ADVANTAGES...................................... …………08
2.3 SYSTEM REQUIREMENTS................................................................................... 09
2.4 SYSTEM SPECIFICATION……………………………………………………….18
3. SYSTEM STUDY
3.1 FEASIBILITY STUDY............................................................................................ 19
4. SYSTEM DESIGN
4.1 ARCHITECTURE.................................................................................................... 27
4.2 UML DIAGRAMS................................................................................................... 28
4.2.1 USECASE DIAGRAM....................................................................................29
4.2.2 CLASS DIAGRAM......................................................................................... 31
4.2.3 SEQUENCE DIAGRAM…………………………………………………… 33
4.2.4 COLLABORATION DIAGRAM…………………………………………... 35
4.2.5 ACTIVITY DIAGRAM……………………………………………………...37
4.2.6 STATECHART DIAGRAM …………………………………………………39
4.2.7 COMPONENT DIAGRAM………………………………………………… 41
4.2.8 DEPLOYMENT DIAGRAM……………………………………………….. 43
ii
5. TECHNOLOGIES USED
5.1 WHAT IS PYTHON?……………………………………………………………… 45
5.1.1 ADVANTAGRS & DISADVANTAGES OF PYTHON………………………. 46
5.2 HISTORY OF PYTHON ………………………………………………………… 47
5.3 PYTHON DEVELOPMENT STEPS……………………………………………… 48
5.4 INSTALL PYTHON STEP BY STEP IN WINDOWS & MAC…………………... 50
6. INPUT AND OUTPUT DESIGN
6.1 INPUT DESIGN…………………………………………………………………….53
6.2 OUTPUT DESIGN………………………………………………………………….54
7. SOFTWARE ENVIRONMENT
7.1 PYTHON…………………………………………………………………………....55
7.2 SOURCE CODE…………………………………………………………………… 56
8. SYSTEM TESTING
8.1 INTRODUCTION TO TESTING…………………………………………………....62
9. SCREENSHOTS…………………………………………………………………….73
10. CONCLUSIONS…………………………………………………………………...75
11. REFERENCES……………………………………………………………………..76
iii
LIST OF FIGURES
Fig No Name Page No
Fig.1 Architecture diagram 27
Fig.2 Use case diagram 30
Fig.3 Class diagram 32
Fig.4 Sequence diagram 34
Fig.5 Collaboration diagram 36
Fig.6 Activity diagram 38
Fig.7 State chart diagram 40
Fig.8 Component diagram 42
Fig.9 Deployment diagram 44
Fig.10 Installation of Python 51
iv
LIST OF SCREENSHOTS
Fig No Name Page No
Fig.1 Click on ‘Browse System Videos’ button to upload videos
from system
73
Fig.2 Application start tracking objects from video and mark them
with bounding boxes
73
Fig.3 Objects ge ng tracked from videos and predict the distance
between them
74
1
CHAPTER-1
INTRODUCTION
1.1 INTRODUCTION TO PROECT
COVID-19 belongs to the family of coronavirus caused diseases, initially reported at Wuhan,
China, during late December 2020. On March 11, it spread over 114 countries with 118,000
active cases and 4000 deaths, WHO declared this a pandemic [1], [2]. On May 4, 2020, over
3,519,901 cases and 247,630 deaths had been reported worldwide. Several healthcare
organizations, medical experts and scientists are trying to develop proper medicines and
vaccines for this deadly virus, but till date, no success is reported. This situation forces the
global community to look for alternate ways to stop the spread of this infectious virus. Social
distancing is claimed as the best spread stopper in the present scenario, and all affected
countries are locked-down to implement social distancing. This research is aimed to support
and mitigate the coronavirus pandemic along with minimum loss of economic endeavours, and
propose a solution to detect the social distancing among people gathered at any public place.
The word “social distancing” is best practice in the direction of efforts through a variety of
means, aiming to minimize or interrupt the transmission of COVID-19. It aims at reducing the
physical contact between possibly infected individuals and healthy persons. As per the WHO
norms [3] it is prescribed that people should maintain at least 6 feet of distance among each
other in order to follow social distancing.
A recent study indicates that social distancing is an important containment measure and
essential to prevent SARSCoV-2, because people with mild or no symptoms may fortuitously
carry corona infection and can infect others [4]. Fig. 1 indicates that proper social distancing
is the best way to reduce infectious physical contact, hence reduces the infection rate [5], [6].
This reduced peak may surely match with the available healthcare infrastructure and help to
offer better facilities to the patients battling against the coronavirus pandemic.
Epidemiology is the study of factors and reasons for the spread of infectious diseases. To study
epidemiological phenomena, mathematical models are always the most preferred choice.
Almost all models descend from the classical SIR model of Kermack and McKendrick
2
established in 1927 [7]. Various research works have been done on the SIR model and its
extensions by the deterministic system [8], and consequently, many researchers studied
stochastic biological systems and epidemic models
Respiratory diseases are infectious where the rate and mode of transmission of the causing
virus are the most critical factors to be considered for the treatment or ways to stop the spread
of the virus in the community. Several medicine organizations and pandemic researchers are
trying to develop vaccines for COVID-19, but still, there is no well-known.
3
1.2 LITERATURE SURVEY
1.2.1 TITLE: WHO corona-viruses (COVID-19).
AUTHOR: W. H. Organization,Coronavirus disease (COVID-19) is an infectious disease
caused by the SARS-CoV-2 virus.Most people infected with the virus will experience mild to
moderate respiratory illness and recover without requiring special treatment. However, some
will become seriously ill and require medical attention. Older people and those with underlying
medical conditions like cardiovascular disease, diabetes, chronic respiratory disease, or cancer
are more likely to develop serious illness. Anyone can get sick with COVID-19 and become
seriously ill or die at any age.
The best way to prevent and slow down transmission is to be well informed about the disease
and how the virus spreads. Protect yourself and others from infection by staying at least 1 metre
apart from others, wearing a properly fitted mask, and washing your hands or using an alcohol-
based rub frequently. Get vaccinated when it’s your turn and follow local guidance.
1.2.2 TITLE: Who director-general’s opening remarks at the media briefing on covid
AUTHOR: WHO In the past two weeks, the number of cases of COVID-19 outside China has
increased 13-fold, and the number of affected countries has tripled. There are now more than
118,000 cases in 114 countries, and 4,291 people have lost their lives. In the days and weeks
ahead, we expect to see the number of cases, the number of deaths, and the number of affected
countries climb even higher.
WHO has been assessing this outbreak around the clock and we are deeply concerned both by
the alarming levels of spread and severity, and by the alarming levels of inaction. We have
therefore made the assessment that COVID-19 can be characterized as a pandemic. Pandemic
is not a word to use lightly or carelessly. It is a word that, if misused, can cause unreasonable
fear, or unjustified acceptance that the fight is over, leading to unnecessary suffering and death.
.
4
1.2.3 TITLE: Social distancing is out, physical distancing is in—here’s how to do it.
AUTHOR: L. Hensley Health experts and politicians have been urging Canadians to keep
physical distance from one another and stay home as much as possible to help stop the
spread of the novel coronavirus — but not everyone is listening.There were reports from
across the country over the weekend of people ignoring social distancing orders by
congregating in parks, beaches and other public areas.Prime Minister Justin Trudeau said
on Monday that there is no tolerance for those defying social distancing orders and that the
government could introduce measures to enforce health warnings.
1.2.4 TITLE: Considerations relating to social distancing measures to COVID-19 –
second update AUTHOR: ECDPC. Social distancing is an action taken to minimise contact
with other individuals; social distancing measures comprise one category of non-
pharmaceutical countermeasures (NPCs)1 aimed at reducing disease transmission and thereby
also reducing pressure on health services. This document builds upon existing ECDC
documents, including guidelines for the use of non-pharmaceutical measures to delay and
mitigate the impact of 2019-nCoV, a rapid risk assessment: outbreak of novel coronavirus
disease – 6th update, a technical report on the use of evidence in decision-making during public
health emergencies, and a guidance document on community engagement for public health
events caused by communicable disease threats in the EU/EEA.
1.2.5 TITLE: Non pharmaceutical measures for pandemic influenza in non healthcare
settings—social distancing measures
AUTHOR: M. W. Fong, H. Gao, J. Y. Wong, J. Xiao, E. Y. Shiu, S. Ryu, and B. J. Cowling.
Influenza virus infections are believed to spread mostly by close contact in the community.
Social distancing measures are essential components of the public health response to
influenza pandemics. The objective of these mitigation measures is to reduce transmission,
thereby delaying the epidemic peak, reducing the size of the epidemic peak, and spreading
cases over a longer time to relieve pressure on the healthcare system. We conducted
5
systematic reviews of the evidence base for effectiveness of multiple mitigation measures:
isolating ill persons, contact tracing, quarantining exposed persons, school closures,
workplace measures/closures, and avoiding crowding. Evidence supporting the
effectiveness of these measures was obtained largely from observational studies and
simulation studies. Voluntary isolation at home might be a more feasible social distancing
measure, and pandemic plans should consider how to facilitate this measure. More drastic
social distancing measures might be reserved for severe pandemics.
The objective of these mitigation measures is to reduce transmission, thereby delaying the
epidemic peak, reducing the size of the epidemic peak, and spreading cases over a longer
time to relieve pressure on the healthcare system.
6
1.3 MODULES:
There are four modules that are going to use in this project. And they are:
1.Live Tracking
2.Preprocessing
3.Model Loading
4.Darknet Algorithm
1.Live Tracking:
Detecting live video or images as input and send data to preprocessing stage.
2.Preprocessing:
In the stage, the selected file is divided into each frame and data is resized and then get the
data from each layer.
3. Model Loading:
In this stage yolo pretrained models are loaded.
4. Darknet Algorithm:
In this stage pre-processed data is given as input and social distance is calculated using
openCV and pretrained models and output is stored to output video or image.
7
CHAPTER-2
SYSTEM ANALYSIS
2.1 EXISTING SYSTEM
A recent study indicates that social distancing is an important containment measure and
essential to prevent SARSCoV-2, because people with mild or no symptoms may fortuitously
carry corona infection and can infect others [4]. Fig. 1 indicates that proper social distancing
is the best way to reduce infectious physical contact, hence reduces the infection rate [5], [6].
This reduced peak may surely match with the available healthcare infrastructure and help to
offer better facilities to the patients battling against the coronavirus pandemic. Epidemiology
is the study of factors and reasons for the spread of infectious diseases. To study
epidemiological phenomena, mathematical models are always the most preferred choice.
Almost all models descend from the classical SIR model of Kermack and McKendrick
established in 1927 [7]. Various research works have been done on the SIR model and its
extensions by the deterministic system [8], and consequently, many researchers studied
stochastic biological systems and epidemic models [9].
2.1.1 Disadavantages:
1. Respiratory diseases are infectious where the rate and mode of transmission of the
causing virus are the most critical factors to be considered for the treatment or ways to
stop the spread of the virus in the community.
8
2.2 PROPOSED SYSTEM
The proposed framework utilizes the YOLO v3 object detection model to segregate humans
from the background and Deepsort approach to track the identified people with the help of
bounding boxes and assigned IDs. The results of the YOLO v3 model are further compared
with other popular state-of-the-art models, e.g. faster region-based CNN (convolution neural
network) and single shot detector (SSD) in terms of mean average precision (mAP), frames
per second (FPS) and loss values defined by object classification and localization. Later, the
pairwise vectorized L2 norm is computed based on the three-dimensional feature space
obtained by using the centroid coordinates and dimensions of the bounding box. The violation
index term is proposed to quantize the non adoption of social distancing protocol. From the
experimental analysis, it is observed that the YOLO v3 with Deepsort tracking scheme
displayed best results with balanced mAP and FPS score to monitor the social distancing in
real-time.
2.2.1 Advantages:
 It focused on crowd detection and person count by proposing multiple height
homographies for head top detection and solved the occlusions problem associated with
video surveillance related applications.
9
2.3 SYSTEM REQUIREMENTS:
REQUIREMENT ANALYSIS
The project involved analyzing the design of few applications so as to make the
application more users friendly. To do so, it was really important to keep the navigations
from one screen to the other well ordered and at the same time reducing the amount of
typing the user needs to do. In order to make the application more accessible, the browser
version had to be chosen so that it is compatible with most of the Browsers.
REQUIREMENT SPECIFICATION
Functional Requirements:
1.Graphical User interface with the User
A graphical user interface (GUI) is a digital interface in which a user interacts with
graphical components such as icons, buttons, and menus. In a GUI, the visuals displayed
in the user interface convey information relevant to the user, as well as actions that they
can take.
How GUIs Work
In a GUI, visual elements represent actions users can take, objects that users can
manipulate, and other information relevant to the user. Some common visual elements are:
 the mouse cursor, which moves and manipulates other elements
 buttons, which users may click or tap to initiate an action
 toolbar and ribbons, essentially groups of buttons
 icons, small images that represent information or interactive components
 menus, lists of clickable items
 scrollbars, for scrolling down the page
Sometimes, GUI graphics are tied to real-world objects to represent their purpose and help
users understand the functions available to them. For example, a directory (i.e., a group of
files and/or directories) is represented by a folder icon, and the trash is represented by a
trash can.
10
Users can interact with elements in a GUI in several ways. Most commonly, we click and
scroll using a mouse on desktop computers, and tap a touch screen on mobile devices. All
popular GUI operating systems and many software applications also allow interaction via
keyboard commands (a key accessibility feature), and some also accept voice commands.
When the user initiates an interaction, the GUI typically responds with some signal like a
color or size change in the clicked element, a sound, or another effect, and then the system
carries out the requested action.
You likely use multiple GUIs every day, to the point where it seems obvious how they’re
designed to work. However, decades of meticulous thought and research have gone into
crafting interfaces that users enjoy, and designs continue to advance every year. For
example, when new software versions are released, they often include updates to the
interface for a better user experience. Most recently, VR and voice commands have gained
traction.
Software Requirements
For developing the application the following are the Software Requirements:
1.Python
2.Django
1.PYTHON:
Python is an interpreted, object-oriented, high-level programming language with dynamic
semantics developed by Guido van Rossum. It was originally released in 1991. Designed
to be easy as well as fun, the name "Python" is a nod to the British comedy group Monty
Python. Python has a reputation as a beginner-friendly language, replacing Java as the most
widely used introductory language because it handles much of the complexity for the user,
allowing beginners to focus on fully grasping programming concepts rather than minute
details.
11
Python is used for server-side web development, software development, mathematics, and
system scripting, and is popular for Rapid Application Development and as a scripting or
glue language to tie existing components because of its high-level, built-in data structures,
dynamic typing, and dynamic binding. Program maintenance costs are reduced with Python
due to the easily learned syntax and emphasis on readability. Additionally, Python's support
of modules and packages facilitates modular programs and reuse of code.
Python Use Cases
 Creating web applications on a server
 Building workflows that can be used in conjunction with software
 Connecting to database systems
 Reading and modifying files
 Performing complex mathematics
 Processing big data
 Fast prototyping
 Developing production-ready software
Professionally, Python is great for backend web development, data analysis, artificial
intelligence, and scientific computing. Developers also use Python to build productivity
tools.
Features and Benefits of Python
 Compatible with a variety of platforms including Windows, Mac, Linux, Raspberry
Pi, and others.
 Uses a simple syntax comparable to the English language that lets developers use
fewer lines than other programming languages
 Operates on an interpreter system that allows code to be executed immediately, fast-
tracking prototyping.
12
Python Syntax
 Somewhat similar to the English language, with a mathematical influence, Python
is built for readability
 Unlike other languages that use semicolons and/or parentheses to complete a
command, Python uses new lines for the same function
 Defines scope (i.e., loops, functions, classes) by relying indentation, using
whitespace, rather than braces (aka curly brackets)
Python Flexibility:
Python, a dynamically typed language, is especially flexible, eliminating hard rules for
building features and offering more problem-solving flexibility with a variety of methods.
It also allows uses to compile and run programs right up to a problematic area because it
uses run-time type checking. On the down side, Python isn’t easy to maintain. One
command can have multiple meanings depending on context because Python is a
dynamically typed language. And, maintaining a Python app as it grows in size and
complexity can be increasingly difficult, especially finding and fixing errors. Users will
need experience to design code or write unit tests that maintenance easier. Speed is another
weakness in Python. Its flexibility, because it is dynamically typed, requires a significant
amount of referencing to land on a correct definition, slowing performance. This can be
mitigated by using alternative implementation of Python (e.g. PyPy).
Python and AI:
AI researchers are fans of Python. Google TensorFlow, as well as other libraries (scikit-
learn, Keras), establish a foundation for AI development because of the usability and
flexibility it offers. The Python Package Index (PyPI) is a repository of software for the
Python programming language. PyPI helps users find and install software developed and
shared by the Python community.
13
2.Django:
Django is a Python framework that makes it easier to create web sites using Python.
Django takes care of the difficult stuff so that you can concentrate on building your web
applications.
Django emphasizes reusability of components, also referred to as DRY (Don't Repeat
Yourself), and comes with ready-to-use features like login system, database connection
and CRUD operations (Create Read Update Delete).
How does Django Work?
Django follows the MVT design pattern (Model View Template).
 Model - The data you want to present, usually data from a database.
 View - A request handler that returns the relevant template and content - based on the
request from the user.
 Template - A text file (like an HTML file) containing the layout of the web page, with logic
on how to display the data.
Model:
The model provides data from the database.
In Django, the data is delivered as an Object Relational Mapping (ORM), which is a
technique designed to make it easier to work with databases.
The most common way to extract data from a database is SQL. One problem with SQL is
that you have to have a pretty good understanding of the database structure to be able to
work with it.
Django, with ORM, makes it easier to communicate with the database, without having to
write complex SQL statements.
The models are usually located in a file called models.py.
14
View:
A view is a function or method that takes http requests as arguments, imports the relevant
model(s), and finds out what data to send to the template, and returns the final result.
The views are usually located in a file called views.py.
Operating Systems supported
1. Windows 7
2. Windows XP
3. Windows 8
1.WINDOWS 7:
As a follow-up to Windows Vista, Windows 7 is the Windows operating system released
in 2009 by Microsoft. The major purpose of Windows 7 is easy-to-use for users.
Windows 7 Editions
Windows 7 has six editions available, they are Windows 7 Starter, Windows 7 Home Basic,
Windows 7 Home Premium, Windows 7 Professional, Windows 7 Enterprise, Windows 7
Ultimate.
Windows 7 Starter is a version of Windows 7 with minimal functionality. It only works
for 32-bit versions, excluding Windows Aero themes. And its desktop wallpaper and visual
style (Windows 7 Basic) are not user-changeable. Meanwhile, RAM over 2GB is not
supported.
This version can be pre-installed on computers, especially netbooks or Windows tablets,
through system integrators or computer manufacturers using OEM licenses.
Windows 7 Home Basic provides a 64-bit version and supports up to 8GB of RAM.
15
Windows 7 Home Premium has 32-bit and 64-bit versions.
Windows 7 Professional is for fans, small business users and schools. It contains all the
functions of Windows 7 Home Premium and adds the function that participating in the
Windows Server domain. It also has 32-bit and 64-bit versions.
Windows 7 Enterprise is targeted at the enterprise segment of the market and is sold to
companies that sign Software Assurance contracts with Microsoft through batch licensing.
Windows 7 Ultimate includes the same functionality as Windows 7 Enterprise, but unlike
Windows 7 Enterprise edition, home users can use it on a personal license basis.
As of January 2015, mainstream support for all versions (new features and bug fixes) has
ended, but extended support (security updates) will continue until January 2020. Although
Windows 7 is no longer produced or sold by Microsoft, you can find copies floating around
on Amazon.com or eBay if you need one.
2.WINDOWS XP:
What Does Windows XP Mean?
Windows XP is an operating system (OS) developed and exclusively distributed by
Microsoft Corporation and targeted to owners of personal computers, laptops and media
centers. The "XP" stands for experience.
Windows XP was released to manufacturers in August 2001 and publicly released in
October 2001. Because of its installed user base, it is the second most popular Windows
version.
Like most other Windows operating systems, XP was made available in two versions:
Home Edition (32-bit only) and Professional Edition (32- or 64-bit). Mobility was a major
focus in all facets of technology at the time, so both versions of XP included support
for plug-and-play features as well as wireless network connectivity using
the 802.11x wireless security standard. Both versions were also available as either a full
license or an upgrade to an existing Windows operating system.
16
Windows XP also introduced other editions rather than Home and Professional editions.
They include Windows XP Media Center Edition, Windows XP Tablet PC Edition, and
Windows XP Starter Edition.
Windows XP Media Center Edition: It is introduced with the aim to support home
theater PC. Its extended multimedia functionalities like an electronic program guide and
digital video recorder support make this edition highly compatible with media devices.
Windows XP Tablet PC Edition: Windows XP Tablet PC Edition was introduced for
mobile devices to meet the requirements of a Tablet PC. Its additional feature like pen
input facilitates users to provide more accurate input.
3.WINDOWS 8:
Microsoft Windows 8 is the first touch-focused Windows operating system line and
features major user interface changes over its predecessors.
Windows 8 Release Date
Windows 8 was released to manufacturing on August 1, 2012, and was made available
to the public on October 26, 2012.
Windows 8 is preceded by Windows 7 and succeeded by Windows 10.
Windows 8 Editions
Four editions of Windows 8 are available:
 Windows 8.1 Pro
 Windows 8.1
 Windows 8.1 Enterprise
 Windows RT 8.1
Windows 8.1 Pro and Windows 8.1 are the only two editions sold directly to the
consumer. Windows 8.1 Enterprise is the edition intended for large organizations.
17
Windows 8 and 8.1 are no longer sold, but if you need a copy, you might be able to find
one on Amazon.com or eBay.
All three editions of Windows 8 already mentioned are available in either 32-bit or 64-
bit versions.
A Windows 8.1 Pro Pack is also available (Amazon is probably your best bet), which
will upgrade Windows 8.1 (the standard version) to Windows 8.1 Pro.
Windows 8 Updates
Windows 8.1 was the first major update to Windows 8 and was made available to the
public on October 17, 2013. Windows 8.1 Update was the second and currently the most
recent update. Both updates are free and bring feature changes, as well as fixes, to the
operating system. The most recent version of Windows 8, Windows 8.1, tends to be what
is sold on disc and via download. If you already have Windows 8, you can update to
Windows 8.1 for free.
Windows RT, previously known as Windows on ARM or WOA, is an edition of
Windows 8 made specifically for ARM devices. Windows RT is only available to
hardware makers for pre-installation and only runs the software included with it or
downloaded from the Windows Store.
Does Windows 8 Need Antivirus?
Microsoft do include their own antivirus software with this version of Windows, and it has
been found to be most capable. If you observe good browsing practices and keep your
system up to date, the built in antivirus solution should be sufficient. Otherwise, many third
party options are also available.
Is Windows 8 Still Supported?
Support for this version of Windows was discontinued in 2016, and Microsoft have
strongly recommended that all users who are still running Windows 8 upgrade.
18
Does Windows 8 Have Bluetooth?
All recent versions of Windows, including 8, have native support for Bluetooth on
the software end of things. The hardware on which Windows is running will need to
have Bluetooth capability in order for Windows to make use of it, however. Windows
cannot make Bluetooth connections without a Bluetooth antenna.
2.4 SYSTEM SPECIFICATION
HARDWARE REQUIREMENTS:
 System : Pentium IV 2.4 GHz.
 Hard Disk : 40 GB.
 Floppy Drive : 1.44 Mb.
 Monitor : 14’ Colour Monitor.
 Mouse : Optical Mouse.
 Ram : 512 Mb.
SOFTWARE REQUIREMENTS:
 Operating system : Windows 7 Ultimate.
 Coding Language : Python.
 Front-End : Python.
 Designing : Html, css, javascript.
 Data Base : MySQL.
19
CHAPTER-3
SYSTEM STUDY
3.1 FEASIBILITY STUDY
The feasibility of the project is analyzed in this phase and business proposal
is put forth with a very general plan for the project and some cost estimates. During system
analysis the feasibility study of the proposed system is to be carried out. This is to ensure
that the proposed system is not a burden to the company. For feasibility analysis, some
understanding of the major requirements for the system is essential.
Three key considerations involved in the feasibility analysis are,
 ECONOMICAL FEASIBILITY
 TECHNICAL FEASIBILITY
 SOCIAL FEASIBILITY
ECONOMICAL FEASIBILITY
This study is carried out to check the economic impact that the system will have
on the organization. The amount of fund that the company can pour into the research and
development of the system is limited. The expenditures must be justified. Thus the
developed system as well within the budget and this was achieved because most of the
technologies used are freely available. Only the customized products had to be purchased.
An example of an economic feasibility assessment would be a company considering
launching a new product line. The company would conduct an analysis to determine the
costs of developing and producing the new products, as well as the projected revenue from
sales. They would also consider factors such as the size of the market for the new products,
the level of competition, and the target audience.
20
The company would use this information to make a decision about whether to launch the
new product line. They would evaluate the costs of the project and compare them to the
projected revenue to determine whether the project is economically feasible. They would
also consider other factors such as the potential risks and challenges, the overall market
conditions, and the company's ability to launch the new product line.
If the company determines that the new product line is economically feasible, they would
proceed with the launch. However, if the analysis indicates that the project is not
economically feasible, the company would likely decide not to proceed with the launch.
This example is a simplified one, In real-world scenarios, it would involve more detailed
analysis and considerations, but it illustrates the main concept of economic feasibility
assessment, which is evaluating the costs and benefits of a project or venture to determine
whether it is economically viable.
The benefits of conducting an economic feasibility assessment include:
 Identifying potential risks and challenges: Economic feasibility assessment
helps to identify potential risks and challenges that may impact the success of
a project or venture, such as changes in the market, intense competition, or
regulatory changes. By identifying these risks and challenges early on,
decision-makers can take steps to mitigate them, thereby increasing the chances
of success for the project or venture.
 Making informed decisions: Economic feasibility assessment provides
decision-makers with the information they need to make informed decisions
about a project or venture. By analyzing the costs and benefits of the project or
venture, decision-makers can determine whether it is likely to be economically
viable and whether it is worth investing in.
 Optimizing resources: Economic feasibility assessment helps to optimize the
use of resources by identifying the most cost-effective way to implement a
project or venture. By analyzing the costs and benefits of different options,
decision-makers can choose the one that is most likely to generate the greatest
return on investment.
21
 Enhancing stakeholder's confidence: Economic feasibility assessment
provides stakeholders with the information they need to understand the potential return
on investment, which can help to enhance their confidence in the project or venture.
In summary, economic feasibility assessment is an essential step in the decision-making
process for any project or business venture, it helps to identify potential risks and
challenges, make informed decisions, optimize resources, enhance stakeholders'
confidence and identify opportunities for improvement.
Marketing deals with the study of generated ideas about the needs of consumers, which are
perceived in the first stage of the process of creating new concepts of services or alternative
products. The promising concepts are subject to feasibility studies, which include several
types of analyses, starting with market analysis. Most companies have a team of market
analysts who create and evaluate consumer research, interviews, target groups, market
tests. The market analysis assesses whether there is sufficient demand for the
proposed product or whether to invest in further development.
Limitations of economic feasibility:
Economic feasibility assessment is a valuable tool for evaluating the economic viability of
a project or business venture, but it has some limitations that should be taken into account.
Some of the limitations of economic feasibility assessment include:
 Uncertainty: Economic feasibility assessment is based on a set of assumptions
and projections about the future, and these assumptions may not always be
accurate. Economic conditions, market trends, and other factors can change
unexpectedly, which can impact the economic feasibility of a project or venture.
 Limited data: Economic feasibility assessment is based on the information that
is available at the time of the assessment. If data is limited or incomplete, it can
be difficult to make accurate projections about the future, which can lead to an
incorrect assessment of the economic feasibility of a project or venture.
 Subjectivity: Economic feasibility assessment can be subjective, as it relies on
the judgement and expertise of the individuals conducting the assessment.
22
Different people may have different opinions about the economic feasibility of
a project or venture, which can lead to conflicting recommendations.
 Ignoring external factors: Economic feasibility assessment is focused on the
internal factors of the project or venture, such as costs and revenue, but it may
not take into account external factors that can impact the success of the
project or venture, such as social, environmental, or political factors.
 Lack of flexibility: Economic feasibility assessment is a static analysis, It may
not be flexible enough to adapt to changing circumstances or unexpected
developments.
In conclusion, economic feasibility assessment is a valuable tool for evaluating the
economic viability of a project or business venture, but it has some limitations that should
be taken into account. It is important to consider these limitations when interpreting the
results of an economic feasibility assessment and to use other methods of analysis to make
an overall decision.
TECHNICAL FEASIBILITY
This study is carried out to check the technical feasibility, that is, the technical
requirements of the system. Any system developed must not have a high demand on the
available technical resources. This will lead to high demands on the available technical
resources. This will lead to high demands being placed on the client. The developed system
must have a modest requirement, as only minimal or null changes are required for
implementing this system. Technical feasibility is an assessment of whether a proposed
project, product, or service can be successfully implemented using current or available
technology. It involves evaluating in detail the technical requirements, constraints, and
capabilities of the proposed solution/process to determine whether it is feasible to develop,
implement, and maintain it within the given constraints and available resources.
23
Here are a few reasons why a feasibility report is essential for any project:
1. Identifying potential problems: This report can help identify potential problems
and challenges that may arise during the implementation project. This can help
project managers in planning for contingencies and mitigate risks before they
become major issues.
2. Assessing resource requirements: A technical helps assess the resources required
for a project, such as equipment, software, raw materials and personnel. This can
help project managers estimate costs, plan budgets, and allocate resources more
effectively.
3. Evaluating technical requirements: This helps evaluate the technical
requirements of a project, such as hardware and software compatibility, data
management, production process and security. This can help ensure that the project
is technically sound and can be successfully implemented.
4. Ensuring project viability: It helps determine whether a project is viable in terms
of its technical feasibility. This can help project managers decide whether to proceed
with the project or consider other alternatives.
Overall, technical feasibility is essential for any project because it helps identify potential
problems, assess resource requirements, evaluate technical requirements, and ensure
project viability. By conducting this study, project managers can improve the chances of
project success and avoid costly mistakes.
Things to consider while conducting a feasibility study:
When conducting feasibility study in project management there are several
parameters that should be considered:
1. Technical Requirements: Define the technical requirements that are necessary
for the project. This includes hardware, software, production process and other
technical infrastructure.
2. Resource Availability: Evaluate the availability of technical resources such as
hardware, software, raw materials and technical personnel.
24
3. Scalability: Determine if the project can be scaled up or down as needed to meet
changing requirements.
4. Compatibility: Determine the compatibility of the proposed technical solution with
existing systems and infrastructure.
5. Security: Evaluate the security of the proposed technical solution and identify
potential vulnerabilities.
6. Cost: Evaluate the cost of the proposed technical solution, including hardware,
software, and personnel costs.
7. Maintenance: Determine the maintenance requirements for the proposed technical
solution and evaluate the availability of technical personnel to perform maintenance
tasks.
8. Technical Risk: Identify and assess the technical risks associated with the proposed
technical solution.
9. Technical Expertise: Evaluate the technical expertise required to implement the
proposed technical solution and determine if the organization has the necessary
skills in-house or if outside expertise is needed.
10. Timeframe: Define the timeframe for the technical feasibility study and ensure
that it aligns with the project timeline.
Tips for writing a technical feasibility study.
1. Define the purpose and scope: Clearly define the purpose and scope of the
study. This will help ensure that the study is focused and provides relevant
information for the proposed project.
2. Identify key stakeholders: Identify the key stakeholders who will be impacted
by the project and ensure that their requirements and concerns are duly addressed
in the study.
3. Use clear language: Use clear and concise language throughout the study,
avoiding technical jargon or terms that may be confusing to non-technical
stakeholders.
25
4. Include technical details: While the study should be accessible to non-technical
stakeholders, it should also provide enough technical details and specifications
to accurately assess the feasibility of the project.
5. Identify and evaluate alternatives: Identify and evaluate alternative solutions
or technologies that could be used instead of the proposed solution. This will
help provide context for the feasibility of the proposed project.
6. Assess risks and opportunities: Conduct a thorough risk assessment, including
identifying potential technical risks and opportunities. This will help
stakeholders understand the potential impact of the project on their organization.
7. Provide recommendations: Based on the findings of the study, provide clear
recommendations for whether or not we should with the project, and if so, any
necessary modifications required, or contingencies envisaged.
8. Use a structured format: Use a structured format for the study, including an
executive summary, introduction, methodology, results, and conclusion. This
will help ensure that the study is organized and easy to navigate.
9. Review and revise: Review and revise the study multiple times to ensure
accuracy, clarity, and completeness. Consider having a peer review by someone
with technical and professional expertise to ensure that the study is accurate and
complete.
SOCIAL FEASIBILITY
The aspect of study is to check the level of acceptance of the system by the user.
This includes the process of training the user to use the system efficiently. The user must
not feel threatened by the system, instead must accept it as a necessity. The level of
acceptance by the users solely depends on the methods that are employed to educate the
user about the system and to make him familiar with it. His level of confidence must be
raised so that he is also able to make some constructive criticism, which is welcomed, as
he is the final user of the system.
Social feasibility refers to the likelihood that a proposed project, program, or initiative will
be accepted and supported by the community or society in which it is implemented. It
considers factors such as cultural norms, values, attitudes, and the overall impact on
26
society. Conducting a social feasibility study helps assess whether a project aligns with
societal needs and expectations, and whether it can be successfully integrated into the
community without significant resistance or negative consequences.
In the context of your interests in computer science and technology, social feasibility would
involve considering how new technologies or software solutions might be perceived and
accepted by users and society at large. This could include aspects such as user acceptance,
privacy concerns, ethical considerations, and potential societal impacts.
27
CHAPTER-4
SYSTEM DESIGN
4.1 SYSTEM ARCHITECTURE
28
4.2 UML DIAGRAMS
UML stands for Unified Modeling Language. UML is a standardized general-
purpose modeling language in the field of object-oriented software engineering. The
standard is managed, and was created by, the Object Management Group.
The goal is for UML to become a common language for creating models of object
oriented computer software. In its current form UML is comprised of two major
components: a Meta-model and a notation. In the future, some form of method or process
may also be added to; or associated with, UML.
The Unified Modeling Language is a standard language for specifying,
Visualization, Constructing and documenting the artifacts of software system, as well as
for business modeling and other non-software systems.
The UML represents a collection of best engineering practices that have proven
successful in the modeling of large and complex systems.
The UML is a very important part of developing object oriented software and the
software development process. The UML uses mostly graphical notations to express the
design of software projects.
GOALS:
The Primary goals in the design of the UML are as follows:
1. Provide users a ready-to-use, expressive visual modeling Language so that they can
develop and exchange meaningful models.
2. Provide extendibility and specialization mechanisms to extend the core concepts.
3. Be independent of particular programming languages and development process.
4. Provide a formal basis for understanding the modeling language.
5. Encourage the growth of OO tools market.
6. Support higher level development concepts such as collaborations, frameworks,
patterns and components.
7. Integrate best practices.
29
4.2.1 USE CASE DIAGRAM:
A use case diagram in the Unified Modeling Language (UML) is a type of
behavioral diagram defined by and created from a Use-case analysis. Its purpose is to
present a graphical overview of the functionality provided by a system in terms of actors,
their goals (represented as use cases), and any dependencies between those use cases. The
main purpose of a use case diagram is to show what system functions are performed for
which actor. Roles of the actors in the system can be depicted.
Purpose of Use Case Diagrams
The main purpose of a use case diagram is to portray the dynamic aspect of a system. It
accumulates the system's requirement, which includes both internal as well as external
influences. It invokes persons, use cases, and several things that invoke the actors and
elements accountable for the implementation of use case diagrams. It represents how an
entity from the external environment can interact with a part of the system.
Following are the purposes of a use case diagram given below:
1. It gathers the system's needs.
2. It depicts the external view of the system.
3. It recognizes the internal as well as external factors that influence the system.
4. It represents the interaction between the actors.
How to draw a Use Case diagram?
It is essential to analyze the whole system before starting with drawing a use case diagram,
and then the system's functionalities are found. And once every single functionality is
identified, they are then transformed into the use cases to be used in the use case diagram.
After that, we will enlist the actors that will interact with the system. The actors are the
person or a thing that invokes the functionality of a system. It may be a system or a private
entity, such that it requires an entity to be pertinent to the functionalities of the system to
which it is going to interact.
30
Following are some rules that must be followed while drawing a use case diagram:
1. A pertinent and meaningful name should be assigned to the actor or a use case of a
system.
2. The communication of an actor with a use case must be defined in an
understandable way.
3. Specified notations to be used as and when required.
4. The most significant interactions should be represented among the multiple no of
interactions between the use case and actors.
Important tips for drawing a Use Case diagram
Following are some important tips that are to be kept in mind while drawing a use case
diagram:
1. A simple and complete use case diagram should be articulated.
2. A use case diagram should represent the most significant interaction among the
multiple interactions.
3. At least one module of a system should be represented by the use case diagram.
uploadVideo
startMonitoring
exit
USER
viewResults
31
4.2.2 CLASS DIAGRAM:
In software engineering, a class diagram in the Unified Modeling Language (UML) is a
type of static structure diagram that describes the structure of a system by showing the
system's classes, their attributes, operations (or methods), and the relationships among the
classes. It explains which class contains information.
The class diagram depicts a static view of an application. It represents the types of objects
residing in the system and the relationships between them. A class consists of its objects,
and also it may inherit from other classes. A class diagram is used to visualize, describe,
document various different aspects of the system, and also construct executable software
code.
It shows the attributes, classes, functions, and relationships to give an overview of the
software system. It constitutes class names, attributes, and functions in a separate
compartment that helps in software development. Since it is a collection of classes,
interfaces, associations, collaborations, and constraints, it is termed as a structural diagram.
Purpose of Class Diagrams
The main purpose of class diagrams is to build a static view of an application. It is the only
diagram that is widely used for construction, and it can be mapped with object-oriented
languages. It is one of the most popular UML diagrams. Following are the purpose of class
diagrams given below:
1. It analyses and designs a static view of an application.
2. It describes the major responsibilities of a system.
3. It is a base for component and deployment diagrams.
4. It incorporates forward and reverse engineering.
Benefits of Class Diagrams
1. It can represent the object model for complex systems.
2. It reduces the maintenance time by providing an overview of how an application is
structured before coding.
32
3. It provides a general schematic of an application for better understanding.
4. It is helpful for the stakeholders and the developers.
Vital components of a Class Diagram
The class diagram is made up of three sections:
 Upper Section: The upper section encompasses the name of the class. A class is a
representation of similar objects that shares the same relationships, attributes,
operations, and semantics. Some of the following rules that should be taken into
account while representing a class are given below:
 Capitalize the initial letter of the class name.
 Place the class name in the center of the upper section.
 A class name must be written in bold format.
 The name of the abstract class should be written in italics format.
 Middle Section: The middle section constitutes the attributes, which describe the
quality of the class. The attributes have the following characteristics:
 The attributes are written along with its visibility factors, which are public
(+), private (-), protected (#), and package (~).
 The accessibility of an attribute class is illustrated by the visibility factors.
 A meaningful name should be assigned to the attribute, which will explain
its usage inside the class.
 Lower Section: The lower section contain methods or operations. The methods are
represented in the form of a list, where each method is written in a single line.
User
video
uploadVideo()
startMonitoing()
viewResult()
exit()
System
user
performingOperations()
33
4.2.3 SEQUENCE DIAGRAM:
Asequence diagram in Unified Modeling Language (UML) is a kind of interaction diagram
that shows how processes operate with one another and in what order. It is a construct of a
Message Sequence Chart. Sequence diagrams are sometimes called event diagrams, event
scenarios, and timing diagrams.
The sequence diagram represents the flow of messages in the system and is also termed as
an event diagram. It helps in envisioning several dynamic scenarios. It portrays the
communication between any two lifelines as a time-ordered sequence of events, such that
these lifelines took part at the run time. In UML, the lifeline is represented by a vertical
bar, whereas the message flow is represented by a vertical dotted line that extends across
the bottom of the page. It incorporates the iterations as well as branching.
Purpose of a Sequence Diagram
1. To model high-level interaction among active objects within a system.
2. To model interaction among objects inside a collaboration realizing a use case.
3. It either models generic interactions or some certain instances of interaction.
Notations of a Sequence Diagram:
 Lifeline
An individual participant in the sequence diagram is represented by a lifeline. It is
positioned at the top of the diagram
 Actor
A role played by an entity that interacts with the subject is called as an actor. It is
out of the scope of the system. It represents the role, which involves human users
and external hardware or subjects. An actor may or may not represent a physical
entity, but it purely depicts the role of an entity. Several distinct roles can be played
by an actor or vice versa.
34
 Activation
It is represented by a thin rectangle on the lifeline. It describes that time period in
which an operation is performed by an element, such that the top and the bottom of
the rectangle is associated with the initiation and the completion time, each
respectively.
 Messages
The messages depict the interaction between the objects and are represented by
arrows. They are in the sequential order on the lifeline. The core of the sequence
diagram is formed by messages and lifelines.
Following are types of messages enlisted below:
Call Message: It defines a particular communication between the lifelines of an
interaction, which represents that the target lifeline has invoked an operation.
Return Message: It defines a particular communication between the lifelines of
interaction that represent the flow of information from the receiver of the
corresponding caller message.
User System
uploadVideo
startMonitoring
viewResults
exit
35
4.2.4 COLLABORATION DIAGRAM
A collaboration diagram, also known as a communication diagram, is an illustration of the
relationships and interactions among software objects in the Unified Modeling Language
(UML). These diagrams can be used to portray the dynamic behaviour of a
particular usecase and define the role of each object.
The collaboration diagram is used to show the relationship between the objects in a system.
Both the sequence and the collaboration diagrams represent the same information but
differently. Instead of showing the flow of messages, it depicts the architecture of the object
residing in the system as it is based on object-oriented programming. An object consists of
several features. Multiple objects present in the system are connected to each other. The
collaboration diagram, which is also known as a communication diagram, is used to portray
the object's architecture in the system.
Notations of a Collaboration Diagram
Following are the components of a component diagram that are enlisted below:
1. Objects: The representation of an object is done by an object symbol with its name
and class.
In the collaboration diagram, objects are utilized in the following ways:
The object is represented by specifying their name and class.
 It is not mandatory for every class to appear.
 A class may constitute more than one object.
 In the collaboration diagram, firstly, the object is created, and then its
class is specified.
 To differentiate one object from another object, it is necessary to name
them.
36
2. Actors: In the collaboration diagram, the actor plays the main role as it invokes the
interaction. Each actor has its respective role and name. In this, one actor initiates
the use case.
3. Links: The link is an instance of association, which associates the objects and
actors. It portrays a relationship between the objects through which the messages
are sent. It is represented by a solid line. The link helps an object to connect with
or navigate to another object, such that the message flows are attached to links.
4. Messages: It is a communication between objects which carries information and
includes a sequence number, so that the activity may take place. The receiver must
understand the message.
When to use a Collaboration Diagram?
The collaborations are used when it is essential to depict the relationship between the
object. Both the sequence and collaboration diagrams represent the same information, but
the way of portraying it quite different. The collaboration diagrams are best suited for
analyzing use cases.
Following are some of the use cases enlisted below for which the collaboration diagram is
implemented:
1. To model collaboration among the objects or roles that carry the functionalities of
use cases and operations.
2. To model the mechanism inside the architectural design of the system.
3. To capture the interactions that represent the flow of messages between the objects
and the roles inside the collaboration.
4. To support the identification of objects participating in the use case.
User System
1: uploadVideo
2: startMonitoring
3: viewResults
4: exit
37
4.2.5 ACTIVITY DIAGRAM
In UML, the activity diagram is used to demonstrate the flow of control within the system
rather than the implementation. It models the concurrent and sequential activities.
The activity diagram helps in envisioning the workflow from one activity to another. It put
emphasis on the condition of flow and the order in which it occurs. The flow can be
sequential, branched, or concurrent, and to deal with such kinds of flows, the activity
diagram has come up with a fork, join, etc.
It is also termed as an object-oriented flowchart. It encompasses activities composed of a
set of actions or operations that are applied to model the behavioral diagram.
Components of an Activity Diagram
Following are the component of an activity diagram:
Activities
The categorization of behavior into one or more actions is termed as an activity. In other
words, it can be said that an activity is a network of nodes that are connected by edges. The
edges depict the flow of execution. It may contain action nodes, control nodes, or object
nodes.
The control flow of activity is represented by control nodes and object nodes that illustrates
the objects used within an activity. The activities are initiated at the initial node and are
terminated at the final node.
Activity partition /swimlane
The swimlane is used to cluster all the related activities in one column or one row. It can
be either vertical or horizontal. It used to add modularity to the activity diagram. It is not
necessary to incorporate swimlane in the activity diagram. But it is used to add more
transparency to the activity diagram.
38
Forks: Forks and join nodes generate the concurrent flow inside the activity. A fork node
consists of one inward edge and several outward edges. It split a single inward flow into
multiple parallel flows.
Join Nodes: Join nodes are the opposite of fork nodes. A Logical AND operation is
performed on all of the inward edges as it synchronizes the flow of input across one single
output edge.
39
4.2.6 STATE CHART DIAGRAM:
Statechart diagrams are used to design interactive systems that respond to either internal
or external event. Statechart diagram in UML visualizes the flow of execution from one
state to another state of an object.
Following are the various notations that are used throughout the state chart diagram. All
these notations, when combined, make up a single diagram.
Initial state
The initial state symbol is used to indicate the beginning of a state machine diagram.
Final state
This symbol is used to indicate the end of a state machine diagram.
Decision box
It contains a condition. Depending upon the result of an evaluated guard condition, a new
path is taken for program execution.
Transition
A transition is a change in one state into another state which is occurred because of some
event. A transition causes a change in the state of an object.
State box
It is a specific moment in the lifespan of an object. It is defined using some condition or a
statement within the classifier body. It is used to represent any static as well as dynamic
situations.
It is denoted using a rectangle with round corners. The name of a state is written inside
the rounded rectangle.
The name of a state can also be placed outside the rectangle. This can be done in case of
composite or submachine states. One can either place the name of a state within the
40
rectangle or outside the rectangle in a tabular box. One cannot perform both at the same
time.
A state can be either active or inactive. When a state is in the working mode, it is active,
as soon as it stops executing and transits into another state, the previous state becomes
inactive, and the current state becomes active.
How to draw a Statechart diagram?
Statechart diagrams are used to describe the various state that an object passes through. A
transition between one state into another state occurs because of some triggered event. To
draw a state diagram in UML, one must identify all the possible states of any particular
entity.
The purpose of these UML diagrams is to represent states of a system. States plays a vital
role in state transition diagrams. All the essential object, states, and the events that cause
changes within the states must be analyzed first before implementing the diagram.
41
4.2.7 COMPONENT DIAGRAM
A component diagram is used to break down a large object-oriented system into the smaller
components, so as to make them more manageable. It models the physical view of a system
such as executables, files, libraries, etc. that resides within the node.
It visualizes the relationships as well as the organization between the components present
in the system. It helps in forming an executable system. A component is a single unit of
the system, which is replaceable and executable. The implementation details of a
component are hidden, and it necessitates an interface to execute a function. It is like a
black box whose behavior is explained by the provided and required interfaces.
Purpose of a Component Diagram
Since it is a special kind of a UML diagram, it holds distinct purposes. It describes all the
individual components that are used to make the functionalities, but not the functionalities
of the system. It visualizes the physical components inside the system. The components
can be a library, packages, files, etc.
The component diagram also describes the static view of a system, which includes the
organization of components at a particular instant. The collection of component diagrams
represents a whole system.
The main purpose of the component diagram are enlisted below:
1. It envisions each component of a system.
2. It constructs the executable by incorporating forward and reverse engineering.
3. It depicts the relationships and organization of components.
Why use Component Diagram?
The component diagrams have remarkable importance. It is used to depict the functionality
and behavior of all the components present in the system, unlike other diagrams that are
42
used to represent the architecture of the system, working of a system, or simply the system
itself.
In UML, the component diagram portrays the behavior and organization of components at
any instant of time. The system cannot be visualized by any individual component, but it
can be by the collection of components.
Following are some reasons for the requirement of the component diagram:
1. It portrays the components of a system at the runtime.
2. It is helpful in testing a system.
3. It envisions the links between several connections.
When to use a Component Diagram?
It represents various physical components of a system at runtime. It is helpful in visualizing
the structure and the organization of a system. Following are some reasons, which tells
when to use component diagram:
1. To divide a single system into multiple components according to the functionality.
2. To represent the component organization of the system.
How to Draw a Component Diagram?
The component diagram is helpful in representing the physical aspects of a system, which
are files, executables, libraries, etc. The main purpose of a component diagram is different
from that of other diagrams. It is utilized in the implementation phase of any application.
43
4.2.8 DEPLOYMENT DIAGRAM
The deployment diagram visualizes the physical hardware on which the software will be
deployed. It portrays the static deployment view of a system. It involves the nodes and their
relationships.
It ascertains how software is deployed on the hardware. It maps the software architecture
created in design to the physical system architecture, where the software will be executed
as a node. Since it involves many nodes, the relationship is shown by utilizing
communication paths.
Purpose of Deployment Diagram
The main purpose of the deployment diagram is to represent how software is installed on
the hardware component. It depicts in what manner a software interacts with hardware to
perform its execution.
Both the deployment diagram and the component diagram are closely interrelated to each
other as they focus on software and hardware components. The component diagram
represents the components of a system, whereas the deployment diagram describes how
they are actually deployed on the hardware.
The deployment diagram does not focus on the logical components of the system, but it
put its attention on the hardware topology.
Following are the purposes of deployment diagram enlisted below:
1. To envision the hardware topology of the system.
2. To represent the hardware components on which the software components are
installed.
3. To describe the processing of nodes at the runtime.
44
How to draw a Deployment Diagram?
The deployment diagram portrays the deployment view of the system. It helps in
visualizing the topological view of a system.
Since it plays a critical role during the administrative process, it involves the following
parameters:
1. High performance
2. Scalability
3. Maintainability
4. Portability
One of the essential elements of the deployment diagram is the nodes and artifacts. So it is
necessary to identify all of the nodes and the relationship between them. It becomes easier
to develop a deployment diagram if all of the nodes, artifacts, and their relationship is
already known.
When to use a Deployment Diagram?
The deployment diagram is mostly employed by network engineers, system administrators,
etc. with the purpose of representing the deployment of software on the hardware system.
45
CHAPTER-5
TECHNOLOGIES USED
5.1 WHAT IS PYTHION
Below are some facts about Python.
 Python is currently the most widely used multi-purpose, high-level programming
language.
 Python allows programming in Object-Oriented and Procedural paradigms.
Pythonprograms generally are smaller than other programming languages like Java.
 Programmers have to type relatively less and indentation requirement of the
language,makes them readable all the time.
 Python language is being used by almost all tech-giant companies like – Google,
Amazon,Facebook, Instagram, Dropbox, Uber… etc.
The biggest strength of Python is huge collection of standard library which can be used for
the following –
Machine Learning
 GUI Applications (like Kivy, Tkinter, PyQt etc. )
 Web frameworks like Django (used by YouTube, Instagram, Dropbox)
 Image processing (like Opencv, Pillow)
 Test frameworks
5.1.1 Advantages of Python Over Other Languages
1.Less Coding:
Almost all of the tasks done in Python requires less coding when the same task is done
in other languages. Python also has an awesome standard library support, so you don’t
46
have tosearch for any third-party libraries to get your job done. This is the reason that
many peoplesuggest learning Python to beginners.
2.Affordable:
Python is free therefore individuals, small companies or big organizations can
leverage thefree available resources to build applications. Python is popular and
widely used so it givesyou better community support.
The 2019 Github annual survey showed us that Python has overtaken Java in the most
popular programming language category.
3. Python is for Everyone:
Python code can run on any machine whether it is Linux, Mac or Windows.
Programmers need to learn different languages for different jobs but with Python,
you can professionally build web apps, perform data analysis and machine
learning, automate things, do web scraping and also build games and powerful
visualizations. It is an all-rounder programminglanguage.
5.1.2 Disadvantages of Python:
So far, we’ve seen why Python is a great choice for your project. But if you choose it, you
shouldbeawareofitsconsequences as well. Let’s nowseethedownsides ofchoosingPython
over another language.
1.Speed Limitations:
We have seen that Python code is executed line by line. But since Python is interpreted,
itoften results in slow execution. This, however, isn’t a problem unless speed is a focal
pointfor the project. In other words, unless high speed is a requirement, the benefits
offered byPython are enough to distract us from its speed limitations.
47
2.Weak in Mobile Computing and Browsers:
While it serves as an excellent server-side language, Python is much rarely seen on the
client-side. Besides that, it is rarely ever used to implement smartphone-based
applications. One such application is called Carbonnelle.
3.Design Restrictions:
As you know, Python is dynamically-typed. This means that you don’t need to declare
thetype of variable while writing the code. It uses duck-typing. But wait, what’s that?
Well, it just means that if it looks like a duck, it must be a duck. While this is easy on
the programmers during coding, it can raise run-time errors.
4.Underdeveloped Database Access Layers:
Compared to more widely used technologies like JDBC(Java DataBase
Connectivity) and ODBC (Open DataBase Connectivity), Python’s database access
layersare a bit underdeveloped. Consequently, it is less often applied in huge
enterprises.
5.Simple:
No, we’re not kidding. Python’s simplicity can indeed be a problem. Take my example.
I don’t do Java, I’m more of a Python person. To me, its syntax is so simple that the
verbosityof Java code seems unnecessary.
This was all about the Advantages and Disadvantages of Python Programming
Language.
5.2 HISTORY OF PYTHON:
What do the alphabet and the programming language Python have in common? Right, both
start with ABC. If we are talking about ABC in the Python context, it's clear that the
programming language ABC is meant. ABC is a general-purpose programming language
and programming environment, which had been developed in the Netherlands, Amsterdam,
48
at the CWI (Centrum Wiskunde &Informatica). The greatest achievement of ABC was to
influence the design of Python. Python was conceptualized in the late 1980s. Guido van
Rossum worked that time in a project at the CWI, called Amoeba, a distributed operating
system. In an interview with Bill Venners1
, Guido van Rossum said: "In the early 1980s, I
worked as an implementer on a team building a language called ABC at Centrum Wiskunde
en Informatica (CWI). I don't know how well people know ABC's influence on Python. I
try to mention ABC's influence because I'm indebted to everything I learned during that
project and to the people who worked on it. Later on in the same Interview, Guido van
Rossum continued: "I remembered all my experience and some of my frustration with
ABC. I decided to try to design a simple scripting language that possessed some of ABC's
better properties, but without its problems. So I started typing. I created a simple virtual
machine, a simple parser, and a simple runtime. I made my own version of the various
ABCparts that I liked. I created a basic syntax, used indentation for statement grouping
instead ofcurly braces or begin-end blocks, and developed a small number of powerful data
types: a hash table (or dictionary, as we call it), a list, strings, and numbers."
5.3 PYTHON DEVELOPMENT STEPS:
Guido Van Rossum published the first version of Python code (version 0.9.0) at alt.sources
in February 1991. This release included already exception handling, functions, and the core
data types of list, dict, str and others. It was also object oriented and had a module system.
Python version 1.0 was released in January 1994. The major new features included in this
release were the functional programming tools lambda, map, filter and reduce, which Guido
Van Rossum never liked.Six and a half years later in October 2000, Python 2.0
was introduced. This release included list comprehensions, a full garbage collector and it
was supporting Unicode Python flourished for another 8 years in the versions 2.x before
the nextmajor release as Python 3.0 (also known as "Python 3000" and "Py3K") was
released. Python3 is not backwards compatible with Python 2.x. The emphasis in Python
3 had been on the removal of duplicate programming constructs and modules, thus
49
fulfilling or coming close to fulfilling the 13th law of the Zen of Python: "There should be
one -- and preferably only one -- obvious way to do it. Some changes in Python 7.3:
• Print is now a function
• Views and iterators instead of lists
• The rules for ordering comparisons have been simplified. E.g. a heterogeneous list cannot
be sorted, because all the elements of a list must be comparable to each other.
• There is only one integer type left, i.e. int. long is int as well.
• The division of two integers returns a float instead of an integer. "//" can be used to have
the "old" behaviour.
• Text Vs. Data Instead Of Unicode Vs. 8-bit
Purpose:-
We demonstrated that our approach enables successful segmentation of intra-retinal
layers—even with low-quality images containing speckle noise, low contrast, and different
intensity ranges throughout—with the assistance of the ANIS feature.
Python:
Python is an interpreted high-level programming language for general-purpose
programming. Created by Guido van Rossum and first released in 1991, Python has a
design philosophy that emphasizes code readability, notably using significant whitespace.
Python features a dynamic type system and automatic memory management. It supports
multiple programming paradigms, including object-oriented, imperative, functional and
procedural, and has a large and comprehensive standard library.
• Python is Interpreted − Python is processed at runtime by the interpreter. You do not need
to compile your program before executing it. This is similar to PERL and PHP.
• Python is Interactive − you can actually sit at a Python prompt and interact with the
interpreter directly to write your programs.
• Python also acknowledges that speed of development is important. Readable and tersecode
is part of this, and so is access to powerful constructs that avoid tedious repetitionof code.
50
Maintainability also ties into this may be an all but useless metric, but it does say something
about how much code you have to scan, read and/or understand to troubleshoot problems
or tweak behaviors. This speed of development, the ease with which a programmer of other
languages can pick up basic Python skills and the huge standard library is key to another
area where Python excels. All its tools have been quick to implement, saved a lot of time,
and several of them have later been patched and updated by people with no Python
background - without breaking.
5.4 INSTALL PYTHON STEP-BY-STEP IN WINDOWS AND MAC
Python a versatile programming language doesn’t come pre-installed on your computer
devices. Python was first released in the year 1991 and until today it is a very popular high-
level programming language. Its style philosophy emphasizes code readability with its
notable use of great whitespace.
The object-oriented approach and language construct provided by Python enables
programmers to write both clear and logical code for projects. This software does not come
pre-packaged with Windows.
How to Install Python on Windows and Mac :
There have been several updates in the Python version over the years. The question is
how to install Python? It might be confusing for the beginner who is willing to start learning
Python but this tutorial will solve your query. The latest or the newest version of Python is
version.
3.7.4 or in other words, it is Python 3.
Note: The python version 3.7.4 cannot be used on Windows XP or earlier devices.
Before you start with the installation process of Python. First, you need to know about your
System Requirements. Based on your system type i.e. operating system and based
processor, you must download the python version. My system type is a Windows 64-bit
operating system. So the steps below are to install python version 3.7.4 on Windows 7
device or to install Python 3. Download the Python Cheatsheet here.
51
Download the Correct version into the system
Step 1: Go to the official site to download and install python using Google Chrome or
any other web browser. OR Click on the following link: https://www.python.org
Now, check for the latest and the correct version for your operating system.
Step 2: Click on the Download Tab.
52
Step 3: You can either select the Download Python for windows 3.7.4 button in Yellow
Color or you can scroll further down and click on download with respective to their version.
Here, we are downloading the most recent python version for windows.
Step 4: Scroll down the page until you find the Files option.
Step 5: Here you see a different version of python along with the operating system.
53
CHAPTER-6
INPUT AND OUTPUT DESIGN
6.1 INPUT DESIGN
The input design is the link between the information system and the user. It comprises the
developing specification and procedures for data preparation and those steps are necessary
to put transaction data in to a usable form for processing can be achieved by inspecting the
computer to read data from a written or printed document or it can occur by having people
keying the data directly into the system. The design of input focuses on controlling the
amount of input required, controlling the errors, avoiding delay, avoiding extra steps and
keeping the process simple. The input is designed in such a way so that it provides security
and ease of use with retaining the privacy. Input Design considered the following things:
 What data should be given as input?
 How the data should be arranged or coded?
 The dialog to guide the operating personnel in providing input.
 Methods for preparing input validations and steps to follow when error occur.
OBJECTIVES
1.Input Design is the process of converting a user-oriented description of the input into a
computer-based system. This design is important to avoid errors in the data input process
and show the correct direction to the management for getting correct information from the
computerized system.
2. It is achieved by creating user-friendly screens for the data entry to handle large volume
of data. The goal of designing input is to make data entry easier and to be free from errors.
The data entry screen is designed in such a way that all the data manipulates can be
performed. It also provides record viewing facilities.
3.When the data is entered it will check for its validity. Data can be entered with the help
of screens. Appropriate messages are provided as when needed so that the user will not be
54
in maize of instant. Thus the objective of input design is to create an input layout that is
easy to follow
6.2 OUTPUT DESIGN
A quality output is one, which meets the requirements of the end user and presents the
information clearly. In any system results of processing are communicated to the users and
to other system through outputs. In output design it is determined how the information is
to be displaced for immediate need and also the hard copy output. It is the most important
and direct source information to the user. Efficient and intelligent output design improves
the system’s relationship to help user decision-making.
1. Designing computer output should proceed in an organized, well thought out manner;
the right output must be developed while ensuring that each output element is designed so
that people will find the system can use easily and effectively. When analysis design
computer output, they should Identify the specific output that is needed to meet the
requirements.
2.Select methods for presenting information.
3.Create document, report, or other formats that contain information produced by the
system.
The output form of an information system should accomplish one or more of the following
objectives.
 Convey information about past activities, current status or projections of the
 Future.
 Signal important events, opportunities, problems, or warnings.
 Trigger an action.
 Confirm an action.
55
CHAPTER-7
SOFTWARE ENVIRONMENT
7.1 PYTHON
Python is a general-purpose interpreted, interactive, object-oriented, and high-level
programming language. An interpreted language, Python has a design philosophy that
emphasizes code readability (notably using whitespace indentation to delimit code
blocks rather than curly brackets or keywords), and a syntax that allows programmers to
express concepts in fewer lines of code than might be used in languages such
as C++or Java. It provides constructs that enable clear programming on both small and
large scales. Python interpreters are available for many operating systems. CPython,
the reference implementation of Python, is open source software and has a community-
based development model, as do nearly all of its variant implementations. CPython is
managed by the non-profit Python Software Foundation. Python features a dynamic
type system and automatic memory management. It supports multiple including object-
oriented, imperative, functional and procedural.
DJANGO
Django is a high-level Python Web framework that encourages rapid development
and clean, pragmatic design. Built by experienced developers, it takes care of much of the
hassle of Web development, so you can focus on writing your app without needing to
reinvent the wheel. It’s free and open source.
Django's primary goal is to ease the creation of complex, database-driven websites. Django
emphasizes reusabilityand "pluggability" of components, rapid development, and the
principle of don't repeat yourself. Python is used throughout, even for settings files and
data models.
56
Django also provides an optional administrative create, read, update and delete interface
that is generated dynamically through introspection and configured via admin models
7.2 SOURCE CODE:
import time
import math
import cv2
import numpy as np
import sys
confid = 0.5
thresh = 0.5
vid_path = "./videos/3.mp4"
angle_factor = 0.8
H_zoom_factor = 1.2
# Calibration needed for each video
def dist(c1, c2):
return ((c1[0] - c2[0]) ** 2 + (c1[1] - c2[1]) ** 2) ** 0.5
57
def T2S(T):
S = abs(T/((1+T**2)**0.5))
return S
def T2C(T):
C = abs(1/((1+T**2)**0.5))
return C
def isclose(p1,p2):
c_d = dist(p1[2], p2[2])
if(p1[1]<p2[1]):
a_w = p1[0]
a_h = p1[1]
else:
a_w = p2[0]
a_h = p2[1]
T = 0
try:
T=(p2[2][1]-p1[2][1])/(p2[2][0]-p1[2][0])
except ZeroDivisionError:
T = 1.633123935319537e+16
S = T2S(T)
C = T2C(T)
d_hor = C*c_d
d_ver = S*c_d
vc_calib_hor = a_w*1.3
vc_calib_ver = a_h*0.4*angle_factor
c_calib_hor = a_w *1.7
c_calib_ver = a_h*0.2*angle_factor
# print(p1[2], p2[2],(vc_calib_hor,d_hor),(vc_calib_ver,d_ver))
if (0<d_hor<vc_calib_hor and 0<d_ver<vc_calib_ver):
return 1
elif 0<d_hor<c_calib_hor and 0<d_ver<c_calib_ver:
return 2
else:
return 0
labelsPath = "./coco.names"
LABELS = open(labelsPath).read().strip().split("n")
58
np.random.seed(42)
weightsPath = "./yolov3.weights"
configPath = "./yolov3.cfg"
#weightsPath = "./yolov3-tiny.weights"
#configPath = "./yolov3-tiny.cfg"
net = cv2.dnn.readNetFromDarknet(configPath, weightsPath)
ln = net.getLayerNames()
ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()]
FR=0
cap= cv2.VideoCapture(vid_path)
(W, H) = (None, None)
fl = 0
q = 0
while True:
print("test")
(grabbed, frame) = cap.read()
if not grabbed:
break
if W is None or H is None:
(H, W) = frame.shape[:2]
FW=W
if(W<1075):
FW = 1075
FR = np.zeros((H+210,FW,3), np.uint8)
col = (255,255,255)
FH = H + 210
FR[:] = col
blob = cv2.dnn.blobFromImage(frame, 1 / 255.0, (416, 416),
swapRB=True, crop=False)
net.setInput(blob)
59
start = time.time()
layerOutputs = net.forward(ln)
end = time.time()
boxes = []
confidences = []
classIDs = []
for output in layerOutputs:
for detection in output:
scores = detection[5:]
classID = np.argmax(scores)
confidence = scores[classID]
if LABELS[classID] == "person":
if confidence > confid:
box = detection[0:4] * np.array([W, H, W, H])
(centerX, centerY, width, height) = box.astype("int")
x = int(centerX - (width / 2))
y = int(centerY - (height / 2))
boxes.append([x, y, int(width), int(height)])
confidences.append(float(confidence))
classIDs.append(classID)
idxs = cv2.dnn.NMSBoxes(boxes, confidences, confid, thresh)
if len(idxs) > 0:
status = []
idf = idxs.flatten()
close_pair = []
s_close_pair = []
center = []
co_info = []
for i in idf:
(x, y) = (boxes[i][0], boxes[i][1])
(w, h) = (boxes[i][2], boxes[i][3])
60
cen = [int(x + w / 2), int(y + h / 2)]
center.append(cen)
cv2.circle(frame, tuple(cen),1,(0,0,0),1)
co_info.append([w, h, cen])
status.append(0)
for i in range(len(center)):
for j in range(len(center)):
g = isclose(co_info[i],co_info[j])
if g == 1:
close_pair.append([center[i], center[j]])
status[i] = 1
status[j] = 1
elif g == 2:
s_close_pair.append([center[i], center[j]])
if status[i] != 1:
status[i] = 2
if status[j] != 1:
status[j] = 2
total_p = len(center)
low_risk_p = status.count(2)
high_risk_p = status.count(1)
safe_p = status.count(0)
kk = 0
for i in idf:
cv2.line(FR,(0,H+1),(FW,H+1),(0,0,0),2)
(x, y) = (boxes[i][0], boxes[i][1])
(w, h) = (boxes[i][2], boxes[i][3])
if status[kk] == 1:
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 0, 150), 2)
elif status[kk] == 0:
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
else:
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 120, 255), 2)
kk += 1
61
for h in close_pair:
cv2.line(frame, tuple(h[0]), tuple(h[1]), (0, 0, 255), 2)
for b in s_close_pair:
cv2.line(frame, tuple(b[0]), tuple(b[1]), (0, 255, 255), 2)
FR[0:H, 0:W] = frame
height , width , layers = frame.shape
frame = FR
new_h=int(height/2)
new_w=int(width/2)
frame_re = cv2.resize(frame, (new_w, new_h))
cv2.imshow('Final Image', frame_re)
k = cv2.waitKey(1) & 0xFF
print(k)
if k == 27: # wait for ESC key to exit
cv2.destroyAllWindows()
sys.exit(0)
print("END")
print("END1")
print("Processing finished: open"+"op_"+vname)
cap.release
62
CHAPTER-8
SYSTEM TESTING
The purpose of testing is to discover errors. Testing is the process of trying to discover every
conceivable fault or weakness in a work product. It provides a way to check the functionality of
components, sub-assemblies, assemblies and/or a finished product It is the process of exercising
software with the intent of ensuring that the Software system meets its requirements and user
expectations and does not fail in an unacceptable manner. There are various types of tests. Each test
type addresses a specific testing requirement.
TESTING METHODOLOGIES
Unit testing
Unit testing involves the design of test cases that validate that the internal program
logic is functioning properly, and that program inputs produce valid outputs. All decision branches
and internal code flow should be validated. It is the testing of individual software units of the
application .it is done after the completion of an individual unit before integration. This is a
structural testing, that relies on knowledge of its construction and is invasive. Unit tests perform
basic tests at component level and test a specific business process, application, and/or system
configuration. Unit tests ensure that each unique path of a business process performs accurately to
the documented specifications and contains clearly defined inputs and expected results.
Unit testing involves the testing of each unit or an individual component of the software
application. It is the first level of functional testing. The aim behind unit testing is to validate unit
components with its performance.
A unit is a single testable part of a software system and tested during the development phase of
the application software.
The purpose of unit testing is to test the correctness of isolated code. A unit component is an
individual function or code of the application. White box testing approach used for unit testing
and usually done by the developers.
63
Whenever the application is ready and given to the Test engineer, he/she will start checking every
component of the module or module of the application independently or one by one, and this process
is known as Unit testing or components testing.
Why Unit Testing?
In a testing level hierarchy, unit testing is the first level of testing done before integration and other
remaining levels of the testing. It uses modules for the testing process which reduces the
dependency of waiting for Unit testing frameworks, stubs, drivers and mock objects are used for
assistance in unit testing.
Generally, the software goes under four level of testing: Unit Testing, Integration Testing, System
Testing, and Acceptance Testing but sometimes due to time consumption software testers does
minimal unit testing but skipping of unit testing may lead to higher defects during Integration
Testing, System Testing, and Acceptance Testing or even during Beta Testing which takes place
after the completion of software application.
Some crucial reasons are listed below:
 Unit testing helps tester and developers to understand the base of code that makes them
able to change defect causing code quickly.
 Unit testing helps in the documentation.
 Unit testing fixes defects very early in the development phase that's why there is a
possibility to occur a smaller number of defects in upcoming testing levels.
 It helps with code reusability by migrating code and test cases.
Advantages and disadvantages of unit testing
The pros and cons of unit testing are as follows:
Advantages
 Unit testing uses module approach due to that any part can be tested without waiting for
completion of another parts testing.
64
 The developing team focuses on the provided functionality of the unit and how
functionality should look in unit test suits to understand the unit API.
 Unit testing allows the developer to refactor code after a number of days and ensure the
module still working without any defect.
Disadvantages
 It cannot identify integration or broad level error as it works on units of the code.
 In the unit testing, evaluation of all execution paths is not possible, so unit testing is not
able to catch each and every error in a program.
 It is best suitable for conjunction with other testing activities.
Integration testing
Integration tests are designed to test integrated software components to
determine if they actually run as one program. Testing is event driven and is more concerned with
the basic outcome of screens or fields. Integration tests demonstrate that although the components
were individually satisfaction, as shown by successfully unit testing, the combination of components
is correct and consistent. Integration testing is specifically aimed at exposing the problems that arise
from the combination of components.
Integration testing is the second level of the software testing process comes after unit testing. In this
testing, units or individual components of the software are tested in a group. The focus of the
integration testing level is to expose defects at the time of interaction between integrated components
or units.
Unit testing uses modules for testing purpose, and these modules are combined and tested in
integration testing. The Software is developed with a number of software modules that are coded by
different coders or programmers. The goal of integration testing is to check the correctness of
communication among all the modules.
65
Guidelines for Integration Testing
 We go for the integration testing only after the functional testing is completed on each
module of the application.
 We always do integration testing by picking module by module so that a proper sequence
is followed, and also we don't miss out on any integration scenarios.
 First, determine the test case strategy through which executable test cases can be prepared
according to test data.
 Examine the structure and architecture of the application and identify the crucial modules
to test them first and also identify all possible scenarios.
 Design test cases to verify each interface in detail.
 Choose input data for test case execution. Input data plays a significant role in testing.
 If we find any bugs then communicate the bug reports to developers and fix defects and
retest.
 Perform positive and negative integration testing.
Functional testing
Functional tests provide systematic demonstrations that functions tested are available
as specified by the business and technical requirements, system documentation, and user manuals.
Functional testing is centered on the following items:
Valid Input : identified classes of valid input must be accepted.
Invalid Input : identified classes of invalid input must be rejected.
Functions : identified functions must be exercised.
Output : identified classes of application outputs must be exercised.
Systems/Procedures : interfacing systems or procedures must be invoked.
Organization and preparation of functional tests is focused on requirements, key
functions, or special test cases. In addition, systematic coverage pertaining to identify Business
process flows; data fields, predefined processes, and successive processes must be considered for
Social Distancing Prediction using OpenCV
Social Distancing Prediction using OpenCV
Social Distancing Prediction using OpenCV
Social Distancing Prediction using OpenCV
Social Distancing Prediction using OpenCV
Social Distancing Prediction using OpenCV
Social Distancing Prediction using OpenCV
Social Distancing Prediction using OpenCV
Social Distancing Prediction using OpenCV
Social Distancing Prediction using OpenCV
Social Distancing Prediction using OpenCV
Social Distancing Prediction using OpenCV

More Related Content

Similar to Social Distancing Prediction using OpenCV

ML for blind people.pptx
ML for blind people.pptxML for blind people.pptx
ML for blind people.pptxJAYKUMARKABRA
 
Head_Movement_Visualization
Head_Movement_VisualizationHead_Movement_Visualization
Head_Movement_VisualizationHongfu Huang
 
Boni Yeamin Thesis final_report.pdf
Boni Yeamin Thesis final_report.pdfBoni Yeamin Thesis final_report.pdf
Boni Yeamin Thesis final_report.pdfBoni Yeamin
 
Gsm based home security system
Gsm based home security systemGsm based home security system
Gsm based home security systemNarayan Gour
 
Project report on Eye tracking interpretation system
Project report on Eye tracking interpretation systemProject report on Eye tracking interpretation system
Project report on Eye tracking interpretation systemkurkute1994
 
Monitoring Pandemic Precautionary Protocols using Real-time Surveillance and ...
Monitoring Pandemic Precautionary Protocols using Real-time Surveillance and ...Monitoring Pandemic Precautionary Protocols using Real-time Surveillance and ...
Monitoring Pandemic Precautionary Protocols using Real-time Surveillance and ...darsh228313
 
Android technical quiz app
Android technical quiz appAndroid technical quiz app
Android technical quiz appJagdeep Singh
 
Digital Twin: convergence of Multimedia Technologies
Digital Twin: convergence of Multimedia TechnologiesDigital Twin: convergence of Multimedia Technologies
Digital Twin: convergence of Multimedia TechnologiesAbdulmotaleb El Saddik
 
Android Project report on City Tourist Location based services (Shuja ul hassan)
Android Project report on City Tourist Location based services (Shuja ul hassan)Android Project report on City Tourist Location based services (Shuja ul hassan)
Android Project report on City Tourist Location based services (Shuja ul hassan)Shuja Hassan
 
Design and implementation of smart guided glass for visually impaired people
Design and implementation of smart guided glass for visually  impaired peopleDesign and implementation of smart guided glass for visually  impaired people
Design and implementation of smart guided glass for visually impaired peopleIJECEIAES
 
Bike sharing android application
Bike sharing android applicationBike sharing android application
Bike sharing android applicationSuraj Sawant
 
Project final report
Project final reportProject final report
Project final reportALIN BABU
 
OBD2 Scanner-Final Year Project Report
OBD2 Scanner-Final Year Project ReportOBD2 Scanner-Final Year Project Report
OBD2 Scanner-Final Year Project ReportKokila Surasinghe
 
iGUARD: An Intelligent Way To Secure - Report
iGUARD: An Intelligent Way To Secure - ReportiGUARD: An Intelligent Way To Secure - Report
iGUARD: An Intelligent Way To Secure - ReportNandu B Rajan
 
Technical seminar project stalin babu m 116_f1a0471
Technical seminar project  stalin babu m  116_f1a0471Technical seminar project  stalin babu m  116_f1a0471
Technical seminar project stalin babu m 116_f1a0471STALIN BABU
 
Ddos attacks on the data and prevention of attacks
Ddos attacks on the data and prevention of attacksDdos attacks on the data and prevention of attacks
Ddos attacks on the data and prevention of attacksRanganathSri1
 
VTU final year project report
VTU final year project reportVTU final year project report
VTU final year project reportathiathi3
 

Similar to Social Distancing Prediction using OpenCV (20)

ML for blind people.pptx
ML for blind people.pptxML for blind people.pptx
ML for blind people.pptx
 
Head_Movement_Visualization
Head_Movement_VisualizationHead_Movement_Visualization
Head_Movement_Visualization
 
Boni Yeamin Thesis final_report.pdf
Boni Yeamin Thesis final_report.pdfBoni Yeamin Thesis final_report.pdf
Boni Yeamin Thesis final_report.pdf
 
Gsm based home security system
Gsm based home security systemGsm based home security system
Gsm based home security system
 
Project report on Eye tracking interpretation system
Project report on Eye tracking interpretation systemProject report on Eye tracking interpretation system
Project report on Eye tracking interpretation system
 
Monitoring Pandemic Precautionary Protocols using Real-time Surveillance and ...
Monitoring Pandemic Precautionary Protocols using Real-time Surveillance and ...Monitoring Pandemic Precautionary Protocols using Real-time Surveillance and ...
Monitoring Pandemic Precautionary Protocols using Real-time Surveillance and ...
 
Android technical quiz app
Android technical quiz appAndroid technical quiz app
Android technical quiz app
 
MSc_Thesis
MSc_ThesisMSc_Thesis
MSc_Thesis
 
Digital Twin: convergence of Multimedia Technologies
Digital Twin: convergence of Multimedia TechnologiesDigital Twin: convergence of Multimedia Technologies
Digital Twin: convergence of Multimedia Technologies
 
Android Project report on City Tourist Location based services (Shuja ul hassan)
Android Project report on City Tourist Location based services (Shuja ul hassan)Android Project report on City Tourist Location based services (Shuja ul hassan)
Android Project report on City Tourist Location based services (Shuja ul hassan)
 
Design and implementation of smart guided glass for visually impaired people
Design and implementation of smart guided glass for visually  impaired peopleDesign and implementation of smart guided glass for visually  impaired people
Design and implementation of smart guided glass for visually impaired people
 
Bike sharing android application
Bike sharing android applicationBike sharing android application
Bike sharing android application
 
report
reportreport
report
 
Project final report
Project final reportProject final report
Project final report
 
OBD2 Scanner-Final Year Project Report
OBD2 Scanner-Final Year Project ReportOBD2 Scanner-Final Year Project Report
OBD2 Scanner-Final Year Project Report
 
iGUARD: An Intelligent Way To Secure - Report
iGUARD: An Intelligent Way To Secure - ReportiGUARD: An Intelligent Way To Secure - Report
iGUARD: An Intelligent Way To Secure - Report
 
Technical seminar project stalin babu m 116_f1a0471
Technical seminar project  stalin babu m  116_f1a0471Technical seminar project  stalin babu m  116_f1a0471
Technical seminar project stalin babu m 116_f1a0471
 
Ddos attacks on the data and prevention of attacks
Ddos attacks on the data and prevention of attacksDdos attacks on the data and prevention of attacks
Ddos attacks on the data and prevention of attacks
 
Qt7355g8v8
Qt7355g8v8Qt7355g8v8
Qt7355g8v8
 
VTU final year project report
VTU final year project reportVTU final year project report
VTU final year project report
 

Recently uploaded

IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...RajaP95
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
High Profile Call Girls Dahisar Arpita 9907093804 Independent Escort Service ...
High Profile Call Girls Dahisar Arpita 9907093804 Independent Escort Service ...High Profile Call Girls Dahisar Arpita 9907093804 Independent Escort Service ...
High Profile Call Girls Dahisar Arpita 9907093804 Independent Escort Service ...Call girls in Ahmedabad High profile
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 

Recently uploaded (20)

IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
High Profile Call Girls Dahisar Arpita 9907093804 Independent Escort Service ...
High Profile Call Girls Dahisar Arpita 9907093804 Independent Escort Service ...High Profile Call Girls Dahisar Arpita 9907093804 Independent Escort Service ...
High Profile Call Girls Dahisar Arpita 9907093804 Independent Escort Service ...
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 

Social Distancing Prediction using OpenCV

  • 1. A MAJOR PROJECT REPORT On “SOCIAL DISTANCING PREDICTION USING OPENCV” Submitted to SRI INDU COLLEGE OF ENGINEERING & TECHNOLOGY, HYDERABAD In partial fulfillment of the requirements for the Award of Degree of BACHELOR OF TECHNOLOGY In COMPUTER SCIENCE AND ENGINEERING Submitted By BANDARU DIVYA (20D41A0519) BODHANAPU DIVYA SREE (20D41A0529) CH.SAI CHARAN (20D41A0546) ANUGU YASHWANTH REDDY (20D41A0512) Under the esteemed guidance of Mrs. K.VIJAYA LAKSHMI (Assistant Professor) DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING SRI INDU COLLEGE OF ENGINEERING & TECHNOLOGY (An Autonomous Institution under UGC, Accredited by NBA, Affiliated to JNTUH) Sheriguda(V), Ibrahimpatnam(M), Rangareddy Dist-501510 (2023-2024)
  • 2. SRI INDU COLLEGE OF ENGINEERING & TECHNOLOGY (An Autonomous Institution under UGC, Accredited by NBA, Affiliated to JNTUH) DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING CERTIFICATE Certified that the Major Project entitled “SOCIAL DISTANCING PREDICTION USING OPENCV” is a bonafide work carried out by BANDARU DIVYA [20D41A0519], BODHANAPU DIVYA SREE [20D41A0529], CH.SAI CHARAN [20D41A0546], ANUGU YASHWANTH REDDY [20D41A0512] in partial fulfillment for the award of degree of Bachelor of Technology in Computer Science and Engineering of SICET, Hyderabad for the academic year 2023- 2024. The Project has been approved as it satisfies academic requirements in respect of the work prescribed for IV YEAR, II-SEMESTER of B. TECH course. INTERNAL GUIDE HEAD OF THE DEPARTMENT (Mrs. K.VIJAYA LAKSHMI ) (Prof. CH.G.V.N PRASAD) (Assistant Professor) EXTERNAL EXAMINAR
  • 3. ACKNOWLEDGMENT The satisfaction that accompanies the successful completion of the task would be put incomplete without the mention of the people who made it possible, whose constant guidance and encouragement crown all the efforts with success. We are thankful to Principal Dr. G. SURESH for giving us the permission to carry out this project.We are highly indebted to Prof. Ch. GVN. Prasad, Head of the Department of Computer Science Engineering, for providing necessary infrastructure and labs and also valuable guidance at every stage of this project. We are grateful to our internal project guide (Mrs. K.VIJAYA LAKSHMI), Assistant Professor for her constant motivation and guidance given by her during the execution of this project work. We would like to thank the Teaching & Non-Teaching staff of Department of ComputerScience and engineering for sharing their knowledge with us, last but not least we express our sincere thanks to everyone who helped directly or indirectly for the completion of this project. BANDARU DIVYA (20D41A0519) BODHANAPU DIVYA SREE (20D41A0529) CH.SAI CHARAN (20D41A0546) ANUGU YASHWANTH REDDY (20D41A0512)
  • 4. SOCIAL DISTANCING PREDICTION USING OPENCV ABSTRACT The rampant coronavirus disease 2019 (COVID-19) has brought global crisis with its deadly spread to more than 180 countries, and about 3,519,901 confirmed cases along with 247,630 deaths globally as on May 4, 2020. The absence of any active therapeutic agents and the lack of immunity against COVID19 increases the vulnerability of the population. Since there are no vaccines available, social distancing is the only feasible approach to fight against this pandemic. Motivated by this notion, this article proposes a deep learning based framework for automating the task of monitoring social distancing using surveillance video. The proposed framework utilizes the YOLO v3 object detection model to segregate humans from the background and Deepsort approach to track the identified people with the help of bounding boxes and assigned IDs. The results of the YOLO v3 model are further compared with other popular state-of-the-art models, e.g. faster region-based CNN (convolution neural network) and single shot detector (SSD) in terms of mean average precision (mAP), frames per second (FPS) and loss values defined by object classification and localization. Later, the pairwise vectorized L2 norm is computed based on the three-dimensional feature space obtained by using the centroid coordinates and dimensions of the bounding box. The violation index term is proposed to quantize the non adoption of social distancing protocol. From the experimental analysis, it is observed that the YOLO v3 with Deepsort tracking scheme displayed best results with balanced mAP and FPS score to monitor the social distancing in real-time.
  • 5. i CONTENTS S.No. Chapters Page No i. List of Figures……………………………………………………………………….. iii ii. List of Screenshots.……………………………………………………………… iv 1. INTRODUCTION 1.1 INTRODUCTION OF PROJECT............................................................................ 01 1.2 LITERATURE SURVEY ......................................................................................... 03 1.3 MODULES............................................................................................................... 06 2. SYSTEM ANALYSIS 2.1 EXISTING SYSTEM & ITS DISADVANTAGES........................................... …..07 2.2 PROPOSED SYSTEM & ITS ADVANTAGES...................................... …………08 2.3 SYSTEM REQUIREMENTS................................................................................... 09 2.4 SYSTEM SPECIFICATION……………………………………………………….18 3. SYSTEM STUDY 3.1 FEASIBILITY STUDY............................................................................................ 19 4. SYSTEM DESIGN 4.1 ARCHITECTURE.................................................................................................... 27 4.2 UML DIAGRAMS................................................................................................... 28 4.2.1 USECASE DIAGRAM....................................................................................29 4.2.2 CLASS DIAGRAM......................................................................................... 31 4.2.3 SEQUENCE DIAGRAM…………………………………………………… 33 4.2.4 COLLABORATION DIAGRAM…………………………………………... 35 4.2.5 ACTIVITY DIAGRAM……………………………………………………...37 4.2.6 STATECHART DIAGRAM …………………………………………………39 4.2.7 COMPONENT DIAGRAM………………………………………………… 41 4.2.8 DEPLOYMENT DIAGRAM……………………………………………….. 43
  • 6. ii 5. TECHNOLOGIES USED 5.1 WHAT IS PYTHON?……………………………………………………………… 45 5.1.1 ADVANTAGRS & DISADVANTAGES OF PYTHON………………………. 46 5.2 HISTORY OF PYTHON ………………………………………………………… 47 5.3 PYTHON DEVELOPMENT STEPS……………………………………………… 48 5.4 INSTALL PYTHON STEP BY STEP IN WINDOWS & MAC…………………... 50 6. INPUT AND OUTPUT DESIGN 6.1 INPUT DESIGN…………………………………………………………………….53 6.2 OUTPUT DESIGN………………………………………………………………….54 7. SOFTWARE ENVIRONMENT 7.1 PYTHON…………………………………………………………………………....55 7.2 SOURCE CODE…………………………………………………………………… 56 8. SYSTEM TESTING 8.1 INTRODUCTION TO TESTING…………………………………………………....62 9. SCREENSHOTS…………………………………………………………………….73 10. CONCLUSIONS…………………………………………………………………...75 11. REFERENCES……………………………………………………………………..76
  • 7. iii LIST OF FIGURES Fig No Name Page No Fig.1 Architecture diagram 27 Fig.2 Use case diagram 30 Fig.3 Class diagram 32 Fig.4 Sequence diagram 34 Fig.5 Collaboration diagram 36 Fig.6 Activity diagram 38 Fig.7 State chart diagram 40 Fig.8 Component diagram 42 Fig.9 Deployment diagram 44 Fig.10 Installation of Python 51
  • 8. iv LIST OF SCREENSHOTS Fig No Name Page No Fig.1 Click on ‘Browse System Videos’ button to upload videos from system 73 Fig.2 Application start tracking objects from video and mark them with bounding boxes 73 Fig.3 Objects ge ng tracked from videos and predict the distance between them 74
  • 9. 1 CHAPTER-1 INTRODUCTION 1.1 INTRODUCTION TO PROECT COVID-19 belongs to the family of coronavirus caused diseases, initially reported at Wuhan, China, during late December 2020. On March 11, it spread over 114 countries with 118,000 active cases and 4000 deaths, WHO declared this a pandemic [1], [2]. On May 4, 2020, over 3,519,901 cases and 247,630 deaths had been reported worldwide. Several healthcare organizations, medical experts and scientists are trying to develop proper medicines and vaccines for this deadly virus, but till date, no success is reported. This situation forces the global community to look for alternate ways to stop the spread of this infectious virus. Social distancing is claimed as the best spread stopper in the present scenario, and all affected countries are locked-down to implement social distancing. This research is aimed to support and mitigate the coronavirus pandemic along with minimum loss of economic endeavours, and propose a solution to detect the social distancing among people gathered at any public place. The word “social distancing” is best practice in the direction of efforts through a variety of means, aiming to minimize or interrupt the transmission of COVID-19. It aims at reducing the physical contact between possibly infected individuals and healthy persons. As per the WHO norms [3] it is prescribed that people should maintain at least 6 feet of distance among each other in order to follow social distancing. A recent study indicates that social distancing is an important containment measure and essential to prevent SARSCoV-2, because people with mild or no symptoms may fortuitously carry corona infection and can infect others [4]. Fig. 1 indicates that proper social distancing is the best way to reduce infectious physical contact, hence reduces the infection rate [5], [6]. This reduced peak may surely match with the available healthcare infrastructure and help to offer better facilities to the patients battling against the coronavirus pandemic. Epidemiology is the study of factors and reasons for the spread of infectious diseases. To study epidemiological phenomena, mathematical models are always the most preferred choice. Almost all models descend from the classical SIR model of Kermack and McKendrick
  • 10. 2 established in 1927 [7]. Various research works have been done on the SIR model and its extensions by the deterministic system [8], and consequently, many researchers studied stochastic biological systems and epidemic models Respiratory diseases are infectious where the rate and mode of transmission of the causing virus are the most critical factors to be considered for the treatment or ways to stop the spread of the virus in the community. Several medicine organizations and pandemic researchers are trying to develop vaccines for COVID-19, but still, there is no well-known.
  • 11. 3 1.2 LITERATURE SURVEY 1.2.1 TITLE: WHO corona-viruses (COVID-19). AUTHOR: W. H. Organization,Coronavirus disease (COVID-19) is an infectious disease caused by the SARS-CoV-2 virus.Most people infected with the virus will experience mild to moderate respiratory illness and recover without requiring special treatment. However, some will become seriously ill and require medical attention. Older people and those with underlying medical conditions like cardiovascular disease, diabetes, chronic respiratory disease, or cancer are more likely to develop serious illness. Anyone can get sick with COVID-19 and become seriously ill or die at any age. The best way to prevent and slow down transmission is to be well informed about the disease and how the virus spreads. Protect yourself and others from infection by staying at least 1 metre apart from others, wearing a properly fitted mask, and washing your hands or using an alcohol- based rub frequently. Get vaccinated when it’s your turn and follow local guidance. 1.2.2 TITLE: Who director-general’s opening remarks at the media briefing on covid AUTHOR: WHO In the past two weeks, the number of cases of COVID-19 outside China has increased 13-fold, and the number of affected countries has tripled. There are now more than 118,000 cases in 114 countries, and 4,291 people have lost their lives. In the days and weeks ahead, we expect to see the number of cases, the number of deaths, and the number of affected countries climb even higher. WHO has been assessing this outbreak around the clock and we are deeply concerned both by the alarming levels of spread and severity, and by the alarming levels of inaction. We have therefore made the assessment that COVID-19 can be characterized as a pandemic. Pandemic is not a word to use lightly or carelessly. It is a word that, if misused, can cause unreasonable fear, or unjustified acceptance that the fight is over, leading to unnecessary suffering and death. .
  • 12. 4 1.2.3 TITLE: Social distancing is out, physical distancing is in—here’s how to do it. AUTHOR: L. Hensley Health experts and politicians have been urging Canadians to keep physical distance from one another and stay home as much as possible to help stop the spread of the novel coronavirus — but not everyone is listening.There were reports from across the country over the weekend of people ignoring social distancing orders by congregating in parks, beaches and other public areas.Prime Minister Justin Trudeau said on Monday that there is no tolerance for those defying social distancing orders and that the government could introduce measures to enforce health warnings. 1.2.4 TITLE: Considerations relating to social distancing measures to COVID-19 – second update AUTHOR: ECDPC. Social distancing is an action taken to minimise contact with other individuals; social distancing measures comprise one category of non- pharmaceutical countermeasures (NPCs)1 aimed at reducing disease transmission and thereby also reducing pressure on health services. This document builds upon existing ECDC documents, including guidelines for the use of non-pharmaceutical measures to delay and mitigate the impact of 2019-nCoV, a rapid risk assessment: outbreak of novel coronavirus disease – 6th update, a technical report on the use of evidence in decision-making during public health emergencies, and a guidance document on community engagement for public health events caused by communicable disease threats in the EU/EEA. 1.2.5 TITLE: Non pharmaceutical measures for pandemic influenza in non healthcare settings—social distancing measures AUTHOR: M. W. Fong, H. Gao, J. Y. Wong, J. Xiao, E. Y. Shiu, S. Ryu, and B. J. Cowling. Influenza virus infections are believed to spread mostly by close contact in the community. Social distancing measures are essential components of the public health response to influenza pandemics. The objective of these mitigation measures is to reduce transmission, thereby delaying the epidemic peak, reducing the size of the epidemic peak, and spreading cases over a longer time to relieve pressure on the healthcare system. We conducted
  • 13. 5 systematic reviews of the evidence base for effectiveness of multiple mitigation measures: isolating ill persons, contact tracing, quarantining exposed persons, school closures, workplace measures/closures, and avoiding crowding. Evidence supporting the effectiveness of these measures was obtained largely from observational studies and simulation studies. Voluntary isolation at home might be a more feasible social distancing measure, and pandemic plans should consider how to facilitate this measure. More drastic social distancing measures might be reserved for severe pandemics. The objective of these mitigation measures is to reduce transmission, thereby delaying the epidemic peak, reducing the size of the epidemic peak, and spreading cases over a longer time to relieve pressure on the healthcare system.
  • 14. 6 1.3 MODULES: There are four modules that are going to use in this project. And they are: 1.Live Tracking 2.Preprocessing 3.Model Loading 4.Darknet Algorithm 1.Live Tracking: Detecting live video or images as input and send data to preprocessing stage. 2.Preprocessing: In the stage, the selected file is divided into each frame and data is resized and then get the data from each layer. 3. Model Loading: In this stage yolo pretrained models are loaded. 4. Darknet Algorithm: In this stage pre-processed data is given as input and social distance is calculated using openCV and pretrained models and output is stored to output video or image.
  • 15. 7 CHAPTER-2 SYSTEM ANALYSIS 2.1 EXISTING SYSTEM A recent study indicates that social distancing is an important containment measure and essential to prevent SARSCoV-2, because people with mild or no symptoms may fortuitously carry corona infection and can infect others [4]. Fig. 1 indicates that proper social distancing is the best way to reduce infectious physical contact, hence reduces the infection rate [5], [6]. This reduced peak may surely match with the available healthcare infrastructure and help to offer better facilities to the patients battling against the coronavirus pandemic. Epidemiology is the study of factors and reasons for the spread of infectious diseases. To study epidemiological phenomena, mathematical models are always the most preferred choice. Almost all models descend from the classical SIR model of Kermack and McKendrick established in 1927 [7]. Various research works have been done on the SIR model and its extensions by the deterministic system [8], and consequently, many researchers studied stochastic biological systems and epidemic models [9]. 2.1.1 Disadavantages: 1. Respiratory diseases are infectious where the rate and mode of transmission of the causing virus are the most critical factors to be considered for the treatment or ways to stop the spread of the virus in the community.
  • 16. 8 2.2 PROPOSED SYSTEM The proposed framework utilizes the YOLO v3 object detection model to segregate humans from the background and Deepsort approach to track the identified people with the help of bounding boxes and assigned IDs. The results of the YOLO v3 model are further compared with other popular state-of-the-art models, e.g. faster region-based CNN (convolution neural network) and single shot detector (SSD) in terms of mean average precision (mAP), frames per second (FPS) and loss values defined by object classification and localization. Later, the pairwise vectorized L2 norm is computed based on the three-dimensional feature space obtained by using the centroid coordinates and dimensions of the bounding box. The violation index term is proposed to quantize the non adoption of social distancing protocol. From the experimental analysis, it is observed that the YOLO v3 with Deepsort tracking scheme displayed best results with balanced mAP and FPS score to monitor the social distancing in real-time. 2.2.1 Advantages:  It focused on crowd detection and person count by proposing multiple height homographies for head top detection and solved the occlusions problem associated with video surveillance related applications.
  • 17. 9 2.3 SYSTEM REQUIREMENTS: REQUIREMENT ANALYSIS The project involved analyzing the design of few applications so as to make the application more users friendly. To do so, it was really important to keep the navigations from one screen to the other well ordered and at the same time reducing the amount of typing the user needs to do. In order to make the application more accessible, the browser version had to be chosen so that it is compatible with most of the Browsers. REQUIREMENT SPECIFICATION Functional Requirements: 1.Graphical User interface with the User A graphical user interface (GUI) is a digital interface in which a user interacts with graphical components such as icons, buttons, and menus. In a GUI, the visuals displayed in the user interface convey information relevant to the user, as well as actions that they can take. How GUIs Work In a GUI, visual elements represent actions users can take, objects that users can manipulate, and other information relevant to the user. Some common visual elements are:  the mouse cursor, which moves and manipulates other elements  buttons, which users may click or tap to initiate an action  toolbar and ribbons, essentially groups of buttons  icons, small images that represent information or interactive components  menus, lists of clickable items  scrollbars, for scrolling down the page Sometimes, GUI graphics are tied to real-world objects to represent their purpose and help users understand the functions available to them. For example, a directory (i.e., a group of files and/or directories) is represented by a folder icon, and the trash is represented by a trash can.
  • 18. 10 Users can interact with elements in a GUI in several ways. Most commonly, we click and scroll using a mouse on desktop computers, and tap a touch screen on mobile devices. All popular GUI operating systems and many software applications also allow interaction via keyboard commands (a key accessibility feature), and some also accept voice commands. When the user initiates an interaction, the GUI typically responds with some signal like a color or size change in the clicked element, a sound, or another effect, and then the system carries out the requested action. You likely use multiple GUIs every day, to the point where it seems obvious how they’re designed to work. However, decades of meticulous thought and research have gone into crafting interfaces that users enjoy, and designs continue to advance every year. For example, when new software versions are released, they often include updates to the interface for a better user experience. Most recently, VR and voice commands have gained traction. Software Requirements For developing the application the following are the Software Requirements: 1.Python 2.Django 1.PYTHON: Python is an interpreted, object-oriented, high-level programming language with dynamic semantics developed by Guido van Rossum. It was originally released in 1991. Designed to be easy as well as fun, the name "Python" is a nod to the British comedy group Monty Python. Python has a reputation as a beginner-friendly language, replacing Java as the most widely used introductory language because it handles much of the complexity for the user, allowing beginners to focus on fully grasping programming concepts rather than minute details.
  • 19. 11 Python is used for server-side web development, software development, mathematics, and system scripting, and is popular for Rapid Application Development and as a scripting or glue language to tie existing components because of its high-level, built-in data structures, dynamic typing, and dynamic binding. Program maintenance costs are reduced with Python due to the easily learned syntax and emphasis on readability. Additionally, Python's support of modules and packages facilitates modular programs and reuse of code. Python Use Cases  Creating web applications on a server  Building workflows that can be used in conjunction with software  Connecting to database systems  Reading and modifying files  Performing complex mathematics  Processing big data  Fast prototyping  Developing production-ready software Professionally, Python is great for backend web development, data analysis, artificial intelligence, and scientific computing. Developers also use Python to build productivity tools. Features and Benefits of Python  Compatible with a variety of platforms including Windows, Mac, Linux, Raspberry Pi, and others.  Uses a simple syntax comparable to the English language that lets developers use fewer lines than other programming languages  Operates on an interpreter system that allows code to be executed immediately, fast- tracking prototyping.
  • 20. 12 Python Syntax  Somewhat similar to the English language, with a mathematical influence, Python is built for readability  Unlike other languages that use semicolons and/or parentheses to complete a command, Python uses new lines for the same function  Defines scope (i.e., loops, functions, classes) by relying indentation, using whitespace, rather than braces (aka curly brackets) Python Flexibility: Python, a dynamically typed language, is especially flexible, eliminating hard rules for building features and offering more problem-solving flexibility with a variety of methods. It also allows uses to compile and run programs right up to a problematic area because it uses run-time type checking. On the down side, Python isn’t easy to maintain. One command can have multiple meanings depending on context because Python is a dynamically typed language. And, maintaining a Python app as it grows in size and complexity can be increasingly difficult, especially finding and fixing errors. Users will need experience to design code or write unit tests that maintenance easier. Speed is another weakness in Python. Its flexibility, because it is dynamically typed, requires a significant amount of referencing to land on a correct definition, slowing performance. This can be mitigated by using alternative implementation of Python (e.g. PyPy). Python and AI: AI researchers are fans of Python. Google TensorFlow, as well as other libraries (scikit- learn, Keras), establish a foundation for AI development because of the usability and flexibility it offers. The Python Package Index (PyPI) is a repository of software for the Python programming language. PyPI helps users find and install software developed and shared by the Python community.
  • 21. 13 2.Django: Django is a Python framework that makes it easier to create web sites using Python. Django takes care of the difficult stuff so that you can concentrate on building your web applications. Django emphasizes reusability of components, also referred to as DRY (Don't Repeat Yourself), and comes with ready-to-use features like login system, database connection and CRUD operations (Create Read Update Delete). How does Django Work? Django follows the MVT design pattern (Model View Template).  Model - The data you want to present, usually data from a database.  View - A request handler that returns the relevant template and content - based on the request from the user.  Template - A text file (like an HTML file) containing the layout of the web page, with logic on how to display the data. Model: The model provides data from the database. In Django, the data is delivered as an Object Relational Mapping (ORM), which is a technique designed to make it easier to work with databases. The most common way to extract data from a database is SQL. One problem with SQL is that you have to have a pretty good understanding of the database structure to be able to work with it. Django, with ORM, makes it easier to communicate with the database, without having to write complex SQL statements. The models are usually located in a file called models.py.
  • 22. 14 View: A view is a function or method that takes http requests as arguments, imports the relevant model(s), and finds out what data to send to the template, and returns the final result. The views are usually located in a file called views.py. Operating Systems supported 1. Windows 7 2. Windows XP 3. Windows 8 1.WINDOWS 7: As a follow-up to Windows Vista, Windows 7 is the Windows operating system released in 2009 by Microsoft. The major purpose of Windows 7 is easy-to-use for users. Windows 7 Editions Windows 7 has six editions available, they are Windows 7 Starter, Windows 7 Home Basic, Windows 7 Home Premium, Windows 7 Professional, Windows 7 Enterprise, Windows 7 Ultimate. Windows 7 Starter is a version of Windows 7 with minimal functionality. It only works for 32-bit versions, excluding Windows Aero themes. And its desktop wallpaper and visual style (Windows 7 Basic) are not user-changeable. Meanwhile, RAM over 2GB is not supported. This version can be pre-installed on computers, especially netbooks or Windows tablets, through system integrators or computer manufacturers using OEM licenses. Windows 7 Home Basic provides a 64-bit version and supports up to 8GB of RAM.
  • 23. 15 Windows 7 Home Premium has 32-bit and 64-bit versions. Windows 7 Professional is for fans, small business users and schools. It contains all the functions of Windows 7 Home Premium and adds the function that participating in the Windows Server domain. It also has 32-bit and 64-bit versions. Windows 7 Enterprise is targeted at the enterprise segment of the market and is sold to companies that sign Software Assurance contracts with Microsoft through batch licensing. Windows 7 Ultimate includes the same functionality as Windows 7 Enterprise, but unlike Windows 7 Enterprise edition, home users can use it on a personal license basis. As of January 2015, mainstream support for all versions (new features and bug fixes) has ended, but extended support (security updates) will continue until January 2020. Although Windows 7 is no longer produced or sold by Microsoft, you can find copies floating around on Amazon.com or eBay if you need one. 2.WINDOWS XP: What Does Windows XP Mean? Windows XP is an operating system (OS) developed and exclusively distributed by Microsoft Corporation and targeted to owners of personal computers, laptops and media centers. The "XP" stands for experience. Windows XP was released to manufacturers in August 2001 and publicly released in October 2001. Because of its installed user base, it is the second most popular Windows version. Like most other Windows operating systems, XP was made available in two versions: Home Edition (32-bit only) and Professional Edition (32- or 64-bit). Mobility was a major focus in all facets of technology at the time, so both versions of XP included support for plug-and-play features as well as wireless network connectivity using the 802.11x wireless security standard. Both versions were also available as either a full license or an upgrade to an existing Windows operating system.
  • 24. 16 Windows XP also introduced other editions rather than Home and Professional editions. They include Windows XP Media Center Edition, Windows XP Tablet PC Edition, and Windows XP Starter Edition. Windows XP Media Center Edition: It is introduced with the aim to support home theater PC. Its extended multimedia functionalities like an electronic program guide and digital video recorder support make this edition highly compatible with media devices. Windows XP Tablet PC Edition: Windows XP Tablet PC Edition was introduced for mobile devices to meet the requirements of a Tablet PC. Its additional feature like pen input facilitates users to provide more accurate input. 3.WINDOWS 8: Microsoft Windows 8 is the first touch-focused Windows operating system line and features major user interface changes over its predecessors. Windows 8 Release Date Windows 8 was released to manufacturing on August 1, 2012, and was made available to the public on October 26, 2012. Windows 8 is preceded by Windows 7 and succeeded by Windows 10. Windows 8 Editions Four editions of Windows 8 are available:  Windows 8.1 Pro  Windows 8.1  Windows 8.1 Enterprise  Windows RT 8.1 Windows 8.1 Pro and Windows 8.1 are the only two editions sold directly to the consumer. Windows 8.1 Enterprise is the edition intended for large organizations.
  • 25. 17 Windows 8 and 8.1 are no longer sold, but if you need a copy, you might be able to find one on Amazon.com or eBay. All three editions of Windows 8 already mentioned are available in either 32-bit or 64- bit versions. A Windows 8.1 Pro Pack is also available (Amazon is probably your best bet), which will upgrade Windows 8.1 (the standard version) to Windows 8.1 Pro. Windows 8 Updates Windows 8.1 was the first major update to Windows 8 and was made available to the public on October 17, 2013. Windows 8.1 Update was the second and currently the most recent update. Both updates are free and bring feature changes, as well as fixes, to the operating system. The most recent version of Windows 8, Windows 8.1, tends to be what is sold on disc and via download. If you already have Windows 8, you can update to Windows 8.1 for free. Windows RT, previously known as Windows on ARM or WOA, is an edition of Windows 8 made specifically for ARM devices. Windows RT is only available to hardware makers for pre-installation and only runs the software included with it or downloaded from the Windows Store. Does Windows 8 Need Antivirus? Microsoft do include their own antivirus software with this version of Windows, and it has been found to be most capable. If you observe good browsing practices and keep your system up to date, the built in antivirus solution should be sufficient. Otherwise, many third party options are also available. Is Windows 8 Still Supported? Support for this version of Windows was discontinued in 2016, and Microsoft have strongly recommended that all users who are still running Windows 8 upgrade.
  • 26. 18 Does Windows 8 Have Bluetooth? All recent versions of Windows, including 8, have native support for Bluetooth on the software end of things. The hardware on which Windows is running will need to have Bluetooth capability in order for Windows to make use of it, however. Windows cannot make Bluetooth connections without a Bluetooth antenna. 2.4 SYSTEM SPECIFICATION HARDWARE REQUIREMENTS:  System : Pentium IV 2.4 GHz.  Hard Disk : 40 GB.  Floppy Drive : 1.44 Mb.  Monitor : 14’ Colour Monitor.  Mouse : Optical Mouse.  Ram : 512 Mb. SOFTWARE REQUIREMENTS:  Operating system : Windows 7 Ultimate.  Coding Language : Python.  Front-End : Python.  Designing : Html, css, javascript.  Data Base : MySQL.
  • 27. 19 CHAPTER-3 SYSTEM STUDY 3.1 FEASIBILITY STUDY The feasibility of the project is analyzed in this phase and business proposal is put forth with a very general plan for the project and some cost estimates. During system analysis the feasibility study of the proposed system is to be carried out. This is to ensure that the proposed system is not a burden to the company. For feasibility analysis, some understanding of the major requirements for the system is essential. Three key considerations involved in the feasibility analysis are,  ECONOMICAL FEASIBILITY  TECHNICAL FEASIBILITY  SOCIAL FEASIBILITY ECONOMICAL FEASIBILITY This study is carried out to check the economic impact that the system will have on the organization. The amount of fund that the company can pour into the research and development of the system is limited. The expenditures must be justified. Thus the developed system as well within the budget and this was achieved because most of the technologies used are freely available. Only the customized products had to be purchased. An example of an economic feasibility assessment would be a company considering launching a new product line. The company would conduct an analysis to determine the costs of developing and producing the new products, as well as the projected revenue from sales. They would also consider factors such as the size of the market for the new products, the level of competition, and the target audience.
  • 28. 20 The company would use this information to make a decision about whether to launch the new product line. They would evaluate the costs of the project and compare them to the projected revenue to determine whether the project is economically feasible. They would also consider other factors such as the potential risks and challenges, the overall market conditions, and the company's ability to launch the new product line. If the company determines that the new product line is economically feasible, they would proceed with the launch. However, if the analysis indicates that the project is not economically feasible, the company would likely decide not to proceed with the launch. This example is a simplified one, In real-world scenarios, it would involve more detailed analysis and considerations, but it illustrates the main concept of economic feasibility assessment, which is evaluating the costs and benefits of a project or venture to determine whether it is economically viable. The benefits of conducting an economic feasibility assessment include:  Identifying potential risks and challenges: Economic feasibility assessment helps to identify potential risks and challenges that may impact the success of a project or venture, such as changes in the market, intense competition, or regulatory changes. By identifying these risks and challenges early on, decision-makers can take steps to mitigate them, thereby increasing the chances of success for the project or venture.  Making informed decisions: Economic feasibility assessment provides decision-makers with the information they need to make informed decisions about a project or venture. By analyzing the costs and benefits of the project or venture, decision-makers can determine whether it is likely to be economically viable and whether it is worth investing in.  Optimizing resources: Economic feasibility assessment helps to optimize the use of resources by identifying the most cost-effective way to implement a project or venture. By analyzing the costs and benefits of different options, decision-makers can choose the one that is most likely to generate the greatest return on investment.
  • 29. 21  Enhancing stakeholder's confidence: Economic feasibility assessment provides stakeholders with the information they need to understand the potential return on investment, which can help to enhance their confidence in the project or venture. In summary, economic feasibility assessment is an essential step in the decision-making process for any project or business venture, it helps to identify potential risks and challenges, make informed decisions, optimize resources, enhance stakeholders' confidence and identify opportunities for improvement. Marketing deals with the study of generated ideas about the needs of consumers, which are perceived in the first stage of the process of creating new concepts of services or alternative products. The promising concepts are subject to feasibility studies, which include several types of analyses, starting with market analysis. Most companies have a team of market analysts who create and evaluate consumer research, interviews, target groups, market tests. The market analysis assesses whether there is sufficient demand for the proposed product or whether to invest in further development. Limitations of economic feasibility: Economic feasibility assessment is a valuable tool for evaluating the economic viability of a project or business venture, but it has some limitations that should be taken into account. Some of the limitations of economic feasibility assessment include:  Uncertainty: Economic feasibility assessment is based on a set of assumptions and projections about the future, and these assumptions may not always be accurate. Economic conditions, market trends, and other factors can change unexpectedly, which can impact the economic feasibility of a project or venture.  Limited data: Economic feasibility assessment is based on the information that is available at the time of the assessment. If data is limited or incomplete, it can be difficult to make accurate projections about the future, which can lead to an incorrect assessment of the economic feasibility of a project or venture.  Subjectivity: Economic feasibility assessment can be subjective, as it relies on the judgement and expertise of the individuals conducting the assessment.
  • 30. 22 Different people may have different opinions about the economic feasibility of a project or venture, which can lead to conflicting recommendations.  Ignoring external factors: Economic feasibility assessment is focused on the internal factors of the project or venture, such as costs and revenue, but it may not take into account external factors that can impact the success of the project or venture, such as social, environmental, or political factors.  Lack of flexibility: Economic feasibility assessment is a static analysis, It may not be flexible enough to adapt to changing circumstances or unexpected developments. In conclusion, economic feasibility assessment is a valuable tool for evaluating the economic viability of a project or business venture, but it has some limitations that should be taken into account. It is important to consider these limitations when interpreting the results of an economic feasibility assessment and to use other methods of analysis to make an overall decision. TECHNICAL FEASIBILITY This study is carried out to check the technical feasibility, that is, the technical requirements of the system. Any system developed must not have a high demand on the available technical resources. This will lead to high demands on the available technical resources. This will lead to high demands being placed on the client. The developed system must have a modest requirement, as only minimal or null changes are required for implementing this system. Technical feasibility is an assessment of whether a proposed project, product, or service can be successfully implemented using current or available technology. It involves evaluating in detail the technical requirements, constraints, and capabilities of the proposed solution/process to determine whether it is feasible to develop, implement, and maintain it within the given constraints and available resources.
  • 31. 23 Here are a few reasons why a feasibility report is essential for any project: 1. Identifying potential problems: This report can help identify potential problems and challenges that may arise during the implementation project. This can help project managers in planning for contingencies and mitigate risks before they become major issues. 2. Assessing resource requirements: A technical helps assess the resources required for a project, such as equipment, software, raw materials and personnel. This can help project managers estimate costs, plan budgets, and allocate resources more effectively. 3. Evaluating technical requirements: This helps evaluate the technical requirements of a project, such as hardware and software compatibility, data management, production process and security. This can help ensure that the project is technically sound and can be successfully implemented. 4. Ensuring project viability: It helps determine whether a project is viable in terms of its technical feasibility. This can help project managers decide whether to proceed with the project or consider other alternatives. Overall, technical feasibility is essential for any project because it helps identify potential problems, assess resource requirements, evaluate technical requirements, and ensure project viability. By conducting this study, project managers can improve the chances of project success and avoid costly mistakes. Things to consider while conducting a feasibility study: When conducting feasibility study in project management there are several parameters that should be considered: 1. Technical Requirements: Define the technical requirements that are necessary for the project. This includes hardware, software, production process and other technical infrastructure. 2. Resource Availability: Evaluate the availability of technical resources such as hardware, software, raw materials and technical personnel.
  • 32. 24 3. Scalability: Determine if the project can be scaled up or down as needed to meet changing requirements. 4. Compatibility: Determine the compatibility of the proposed technical solution with existing systems and infrastructure. 5. Security: Evaluate the security of the proposed technical solution and identify potential vulnerabilities. 6. Cost: Evaluate the cost of the proposed technical solution, including hardware, software, and personnel costs. 7. Maintenance: Determine the maintenance requirements for the proposed technical solution and evaluate the availability of technical personnel to perform maintenance tasks. 8. Technical Risk: Identify and assess the technical risks associated with the proposed technical solution. 9. Technical Expertise: Evaluate the technical expertise required to implement the proposed technical solution and determine if the organization has the necessary skills in-house or if outside expertise is needed. 10. Timeframe: Define the timeframe for the technical feasibility study and ensure that it aligns with the project timeline. Tips for writing a technical feasibility study. 1. Define the purpose and scope: Clearly define the purpose and scope of the study. This will help ensure that the study is focused and provides relevant information for the proposed project. 2. Identify key stakeholders: Identify the key stakeholders who will be impacted by the project and ensure that their requirements and concerns are duly addressed in the study. 3. Use clear language: Use clear and concise language throughout the study, avoiding technical jargon or terms that may be confusing to non-technical stakeholders.
  • 33. 25 4. Include technical details: While the study should be accessible to non-technical stakeholders, it should also provide enough technical details and specifications to accurately assess the feasibility of the project. 5. Identify and evaluate alternatives: Identify and evaluate alternative solutions or technologies that could be used instead of the proposed solution. This will help provide context for the feasibility of the proposed project. 6. Assess risks and opportunities: Conduct a thorough risk assessment, including identifying potential technical risks and opportunities. This will help stakeholders understand the potential impact of the project on their organization. 7. Provide recommendations: Based on the findings of the study, provide clear recommendations for whether or not we should with the project, and if so, any necessary modifications required, or contingencies envisaged. 8. Use a structured format: Use a structured format for the study, including an executive summary, introduction, methodology, results, and conclusion. This will help ensure that the study is organized and easy to navigate. 9. Review and revise: Review and revise the study multiple times to ensure accuracy, clarity, and completeness. Consider having a peer review by someone with technical and professional expertise to ensure that the study is accurate and complete. SOCIAL FEASIBILITY The aspect of study is to check the level of acceptance of the system by the user. This includes the process of training the user to use the system efficiently. The user must not feel threatened by the system, instead must accept it as a necessity. The level of acceptance by the users solely depends on the methods that are employed to educate the user about the system and to make him familiar with it. His level of confidence must be raised so that he is also able to make some constructive criticism, which is welcomed, as he is the final user of the system. Social feasibility refers to the likelihood that a proposed project, program, or initiative will be accepted and supported by the community or society in which it is implemented. It considers factors such as cultural norms, values, attitudes, and the overall impact on
  • 34. 26 society. Conducting a social feasibility study helps assess whether a project aligns with societal needs and expectations, and whether it can be successfully integrated into the community without significant resistance or negative consequences. In the context of your interests in computer science and technology, social feasibility would involve considering how new technologies or software solutions might be perceived and accepted by users and society at large. This could include aspects such as user acceptance, privacy concerns, ethical considerations, and potential societal impacts.
  • 36. 28 4.2 UML DIAGRAMS UML stands for Unified Modeling Language. UML is a standardized general- purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created by, the Object Management Group. The goal is for UML to become a common language for creating models of object oriented computer software. In its current form UML is comprised of two major components: a Meta-model and a notation. In the future, some form of method or process may also be added to; or associated with, UML. The Unified Modeling Language is a standard language for specifying, Visualization, Constructing and documenting the artifacts of software system, as well as for business modeling and other non-software systems. The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems. The UML is a very important part of developing object oriented software and the software development process. The UML uses mostly graphical notations to express the design of software projects. GOALS: The Primary goals in the design of the UML are as follows: 1. Provide users a ready-to-use, expressive visual modeling Language so that they can develop and exchange meaningful models. 2. Provide extendibility and specialization mechanisms to extend the core concepts. 3. Be independent of particular programming languages and development process. 4. Provide a formal basis for understanding the modeling language. 5. Encourage the growth of OO tools market. 6. Support higher level development concepts such as collaborations, frameworks, patterns and components. 7. Integrate best practices.
  • 37. 29 4.2.1 USE CASE DIAGRAM: A use case diagram in the Unified Modeling Language (UML) is a type of behavioral diagram defined by and created from a Use-case analysis. Its purpose is to present a graphical overview of the functionality provided by a system in terms of actors, their goals (represented as use cases), and any dependencies between those use cases. The main purpose of a use case diagram is to show what system functions are performed for which actor. Roles of the actors in the system can be depicted. Purpose of Use Case Diagrams The main purpose of a use case diagram is to portray the dynamic aspect of a system. It accumulates the system's requirement, which includes both internal as well as external influences. It invokes persons, use cases, and several things that invoke the actors and elements accountable for the implementation of use case diagrams. It represents how an entity from the external environment can interact with a part of the system. Following are the purposes of a use case diagram given below: 1. It gathers the system's needs. 2. It depicts the external view of the system. 3. It recognizes the internal as well as external factors that influence the system. 4. It represents the interaction between the actors. How to draw a Use Case diagram? It is essential to analyze the whole system before starting with drawing a use case diagram, and then the system's functionalities are found. And once every single functionality is identified, they are then transformed into the use cases to be used in the use case diagram. After that, we will enlist the actors that will interact with the system. The actors are the person or a thing that invokes the functionality of a system. It may be a system or a private entity, such that it requires an entity to be pertinent to the functionalities of the system to which it is going to interact.
  • 38. 30 Following are some rules that must be followed while drawing a use case diagram: 1. A pertinent and meaningful name should be assigned to the actor or a use case of a system. 2. The communication of an actor with a use case must be defined in an understandable way. 3. Specified notations to be used as and when required. 4. The most significant interactions should be represented among the multiple no of interactions between the use case and actors. Important tips for drawing a Use Case diagram Following are some important tips that are to be kept in mind while drawing a use case diagram: 1. A simple and complete use case diagram should be articulated. 2. A use case diagram should represent the most significant interaction among the multiple interactions. 3. At least one module of a system should be represented by the use case diagram. uploadVideo startMonitoring exit USER viewResults
  • 39. 31 4.2.2 CLASS DIAGRAM: In software engineering, a class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations (or methods), and the relationships among the classes. It explains which class contains information. The class diagram depicts a static view of an application. It represents the types of objects residing in the system and the relationships between them. A class consists of its objects, and also it may inherit from other classes. A class diagram is used to visualize, describe, document various different aspects of the system, and also construct executable software code. It shows the attributes, classes, functions, and relationships to give an overview of the software system. It constitutes class names, attributes, and functions in a separate compartment that helps in software development. Since it is a collection of classes, interfaces, associations, collaborations, and constraints, it is termed as a structural diagram. Purpose of Class Diagrams The main purpose of class diagrams is to build a static view of an application. It is the only diagram that is widely used for construction, and it can be mapped with object-oriented languages. It is one of the most popular UML diagrams. Following are the purpose of class diagrams given below: 1. It analyses and designs a static view of an application. 2. It describes the major responsibilities of a system. 3. It is a base for component and deployment diagrams. 4. It incorporates forward and reverse engineering. Benefits of Class Diagrams 1. It can represent the object model for complex systems. 2. It reduces the maintenance time by providing an overview of how an application is structured before coding.
  • 40. 32 3. It provides a general schematic of an application for better understanding. 4. It is helpful for the stakeholders and the developers. Vital components of a Class Diagram The class diagram is made up of three sections:  Upper Section: The upper section encompasses the name of the class. A class is a representation of similar objects that shares the same relationships, attributes, operations, and semantics. Some of the following rules that should be taken into account while representing a class are given below:  Capitalize the initial letter of the class name.  Place the class name in the center of the upper section.  A class name must be written in bold format.  The name of the abstract class should be written in italics format.  Middle Section: The middle section constitutes the attributes, which describe the quality of the class. The attributes have the following characteristics:  The attributes are written along with its visibility factors, which are public (+), private (-), protected (#), and package (~).  The accessibility of an attribute class is illustrated by the visibility factors.  A meaningful name should be assigned to the attribute, which will explain its usage inside the class.  Lower Section: The lower section contain methods or operations. The methods are represented in the form of a list, where each method is written in a single line. User video uploadVideo() startMonitoing() viewResult() exit() System user performingOperations()
  • 41. 33 4.2.3 SEQUENCE DIAGRAM: Asequence diagram in Unified Modeling Language (UML) is a kind of interaction diagram that shows how processes operate with one another and in what order. It is a construct of a Message Sequence Chart. Sequence diagrams are sometimes called event diagrams, event scenarios, and timing diagrams. The sequence diagram represents the flow of messages in the system and is also termed as an event diagram. It helps in envisioning several dynamic scenarios. It portrays the communication between any two lifelines as a time-ordered sequence of events, such that these lifelines took part at the run time. In UML, the lifeline is represented by a vertical bar, whereas the message flow is represented by a vertical dotted line that extends across the bottom of the page. It incorporates the iterations as well as branching. Purpose of a Sequence Diagram 1. To model high-level interaction among active objects within a system. 2. To model interaction among objects inside a collaboration realizing a use case. 3. It either models generic interactions or some certain instances of interaction. Notations of a Sequence Diagram:  Lifeline An individual participant in the sequence diagram is represented by a lifeline. It is positioned at the top of the diagram  Actor A role played by an entity that interacts with the subject is called as an actor. It is out of the scope of the system. It represents the role, which involves human users and external hardware or subjects. An actor may or may not represent a physical entity, but it purely depicts the role of an entity. Several distinct roles can be played by an actor or vice versa.
  • 42. 34  Activation It is represented by a thin rectangle on the lifeline. It describes that time period in which an operation is performed by an element, such that the top and the bottom of the rectangle is associated with the initiation and the completion time, each respectively.  Messages The messages depict the interaction between the objects and are represented by arrows. They are in the sequential order on the lifeline. The core of the sequence diagram is formed by messages and lifelines. Following are types of messages enlisted below: Call Message: It defines a particular communication between the lifelines of an interaction, which represents that the target lifeline has invoked an operation. Return Message: It defines a particular communication between the lifelines of interaction that represent the flow of information from the receiver of the corresponding caller message. User System uploadVideo startMonitoring viewResults exit
  • 43. 35 4.2.4 COLLABORATION DIAGRAM A collaboration diagram, also known as a communication diagram, is an illustration of the relationships and interactions among software objects in the Unified Modeling Language (UML). These diagrams can be used to portray the dynamic behaviour of a particular usecase and define the role of each object. The collaboration diagram is used to show the relationship between the objects in a system. Both the sequence and the collaboration diagrams represent the same information but differently. Instead of showing the flow of messages, it depicts the architecture of the object residing in the system as it is based on object-oriented programming. An object consists of several features. Multiple objects present in the system are connected to each other. The collaboration diagram, which is also known as a communication diagram, is used to portray the object's architecture in the system. Notations of a Collaboration Diagram Following are the components of a component diagram that are enlisted below: 1. Objects: The representation of an object is done by an object symbol with its name and class. In the collaboration diagram, objects are utilized in the following ways: The object is represented by specifying their name and class.  It is not mandatory for every class to appear.  A class may constitute more than one object.  In the collaboration diagram, firstly, the object is created, and then its class is specified.  To differentiate one object from another object, it is necessary to name them.
  • 44. 36 2. Actors: In the collaboration diagram, the actor plays the main role as it invokes the interaction. Each actor has its respective role and name. In this, one actor initiates the use case. 3. Links: The link is an instance of association, which associates the objects and actors. It portrays a relationship between the objects through which the messages are sent. It is represented by a solid line. The link helps an object to connect with or navigate to another object, such that the message flows are attached to links. 4. Messages: It is a communication between objects which carries information and includes a sequence number, so that the activity may take place. The receiver must understand the message. When to use a Collaboration Diagram? The collaborations are used when it is essential to depict the relationship between the object. Both the sequence and collaboration diagrams represent the same information, but the way of portraying it quite different. The collaboration diagrams are best suited for analyzing use cases. Following are some of the use cases enlisted below for which the collaboration diagram is implemented: 1. To model collaboration among the objects or roles that carry the functionalities of use cases and operations. 2. To model the mechanism inside the architectural design of the system. 3. To capture the interactions that represent the flow of messages between the objects and the roles inside the collaboration. 4. To support the identification of objects participating in the use case. User System 1: uploadVideo 2: startMonitoring 3: viewResults 4: exit
  • 45. 37 4.2.5 ACTIVITY DIAGRAM In UML, the activity diagram is used to demonstrate the flow of control within the system rather than the implementation. It models the concurrent and sequential activities. The activity diagram helps in envisioning the workflow from one activity to another. It put emphasis on the condition of flow and the order in which it occurs. The flow can be sequential, branched, or concurrent, and to deal with such kinds of flows, the activity diagram has come up with a fork, join, etc. It is also termed as an object-oriented flowchart. It encompasses activities composed of a set of actions or operations that are applied to model the behavioral diagram. Components of an Activity Diagram Following are the component of an activity diagram: Activities The categorization of behavior into one or more actions is termed as an activity. In other words, it can be said that an activity is a network of nodes that are connected by edges. The edges depict the flow of execution. It may contain action nodes, control nodes, or object nodes. The control flow of activity is represented by control nodes and object nodes that illustrates the objects used within an activity. The activities are initiated at the initial node and are terminated at the final node. Activity partition /swimlane The swimlane is used to cluster all the related activities in one column or one row. It can be either vertical or horizontal. It used to add modularity to the activity diagram. It is not necessary to incorporate swimlane in the activity diagram. But it is used to add more transparency to the activity diagram.
  • 46. 38 Forks: Forks and join nodes generate the concurrent flow inside the activity. A fork node consists of one inward edge and several outward edges. It split a single inward flow into multiple parallel flows. Join Nodes: Join nodes are the opposite of fork nodes. A Logical AND operation is performed on all of the inward edges as it synchronizes the flow of input across one single output edge.
  • 47. 39 4.2.6 STATE CHART DIAGRAM: Statechart diagrams are used to design interactive systems that respond to either internal or external event. Statechart diagram in UML visualizes the flow of execution from one state to another state of an object. Following are the various notations that are used throughout the state chart diagram. All these notations, when combined, make up a single diagram. Initial state The initial state symbol is used to indicate the beginning of a state machine diagram. Final state This symbol is used to indicate the end of a state machine diagram. Decision box It contains a condition. Depending upon the result of an evaluated guard condition, a new path is taken for program execution. Transition A transition is a change in one state into another state which is occurred because of some event. A transition causes a change in the state of an object. State box It is a specific moment in the lifespan of an object. It is defined using some condition or a statement within the classifier body. It is used to represent any static as well as dynamic situations. It is denoted using a rectangle with round corners. The name of a state is written inside the rounded rectangle. The name of a state can also be placed outside the rectangle. This can be done in case of composite or submachine states. One can either place the name of a state within the
  • 48. 40 rectangle or outside the rectangle in a tabular box. One cannot perform both at the same time. A state can be either active or inactive. When a state is in the working mode, it is active, as soon as it stops executing and transits into another state, the previous state becomes inactive, and the current state becomes active. How to draw a Statechart diagram? Statechart diagrams are used to describe the various state that an object passes through. A transition between one state into another state occurs because of some triggered event. To draw a state diagram in UML, one must identify all the possible states of any particular entity. The purpose of these UML diagrams is to represent states of a system. States plays a vital role in state transition diagrams. All the essential object, states, and the events that cause changes within the states must be analyzed first before implementing the diagram.
  • 49. 41 4.2.7 COMPONENT DIAGRAM A component diagram is used to break down a large object-oriented system into the smaller components, so as to make them more manageable. It models the physical view of a system such as executables, files, libraries, etc. that resides within the node. It visualizes the relationships as well as the organization between the components present in the system. It helps in forming an executable system. A component is a single unit of the system, which is replaceable and executable. The implementation details of a component are hidden, and it necessitates an interface to execute a function. It is like a black box whose behavior is explained by the provided and required interfaces. Purpose of a Component Diagram Since it is a special kind of a UML diagram, it holds distinct purposes. It describes all the individual components that are used to make the functionalities, but not the functionalities of the system. It visualizes the physical components inside the system. The components can be a library, packages, files, etc. The component diagram also describes the static view of a system, which includes the organization of components at a particular instant. The collection of component diagrams represents a whole system. The main purpose of the component diagram are enlisted below: 1. It envisions each component of a system. 2. It constructs the executable by incorporating forward and reverse engineering. 3. It depicts the relationships and organization of components. Why use Component Diagram? The component diagrams have remarkable importance. It is used to depict the functionality and behavior of all the components present in the system, unlike other diagrams that are
  • 50. 42 used to represent the architecture of the system, working of a system, or simply the system itself. In UML, the component diagram portrays the behavior and organization of components at any instant of time. The system cannot be visualized by any individual component, but it can be by the collection of components. Following are some reasons for the requirement of the component diagram: 1. It portrays the components of a system at the runtime. 2. It is helpful in testing a system. 3. It envisions the links between several connections. When to use a Component Diagram? It represents various physical components of a system at runtime. It is helpful in visualizing the structure and the organization of a system. Following are some reasons, which tells when to use component diagram: 1. To divide a single system into multiple components according to the functionality. 2. To represent the component organization of the system. How to Draw a Component Diagram? The component diagram is helpful in representing the physical aspects of a system, which are files, executables, libraries, etc. The main purpose of a component diagram is different from that of other diagrams. It is utilized in the implementation phase of any application.
  • 51. 43 4.2.8 DEPLOYMENT DIAGRAM The deployment diagram visualizes the physical hardware on which the software will be deployed. It portrays the static deployment view of a system. It involves the nodes and their relationships. It ascertains how software is deployed on the hardware. It maps the software architecture created in design to the physical system architecture, where the software will be executed as a node. Since it involves many nodes, the relationship is shown by utilizing communication paths. Purpose of Deployment Diagram The main purpose of the deployment diagram is to represent how software is installed on the hardware component. It depicts in what manner a software interacts with hardware to perform its execution. Both the deployment diagram and the component diagram are closely interrelated to each other as they focus on software and hardware components. The component diagram represents the components of a system, whereas the deployment diagram describes how they are actually deployed on the hardware. The deployment diagram does not focus on the logical components of the system, but it put its attention on the hardware topology. Following are the purposes of deployment diagram enlisted below: 1. To envision the hardware topology of the system. 2. To represent the hardware components on which the software components are installed. 3. To describe the processing of nodes at the runtime.
  • 52. 44 How to draw a Deployment Diagram? The deployment diagram portrays the deployment view of the system. It helps in visualizing the topological view of a system. Since it plays a critical role during the administrative process, it involves the following parameters: 1. High performance 2. Scalability 3. Maintainability 4. Portability One of the essential elements of the deployment diagram is the nodes and artifacts. So it is necessary to identify all of the nodes and the relationship between them. It becomes easier to develop a deployment diagram if all of the nodes, artifacts, and their relationship is already known. When to use a Deployment Diagram? The deployment diagram is mostly employed by network engineers, system administrators, etc. with the purpose of representing the deployment of software on the hardware system.
  • 53. 45 CHAPTER-5 TECHNOLOGIES USED 5.1 WHAT IS PYTHION Below are some facts about Python.  Python is currently the most widely used multi-purpose, high-level programming language.  Python allows programming in Object-Oriented and Procedural paradigms. Pythonprograms generally are smaller than other programming languages like Java.  Programmers have to type relatively less and indentation requirement of the language,makes them readable all the time.  Python language is being used by almost all tech-giant companies like – Google, Amazon,Facebook, Instagram, Dropbox, Uber… etc. The biggest strength of Python is huge collection of standard library which can be used for the following – Machine Learning  GUI Applications (like Kivy, Tkinter, PyQt etc. )  Web frameworks like Django (used by YouTube, Instagram, Dropbox)  Image processing (like Opencv, Pillow)  Test frameworks 5.1.1 Advantages of Python Over Other Languages 1.Less Coding: Almost all of the tasks done in Python requires less coding when the same task is done in other languages. Python also has an awesome standard library support, so you don’t
  • 54. 46 have tosearch for any third-party libraries to get your job done. This is the reason that many peoplesuggest learning Python to beginners. 2.Affordable: Python is free therefore individuals, small companies or big organizations can leverage thefree available resources to build applications. Python is popular and widely used so it givesyou better community support. The 2019 Github annual survey showed us that Python has overtaken Java in the most popular programming language category. 3. Python is for Everyone: Python code can run on any machine whether it is Linux, Mac or Windows. Programmers need to learn different languages for different jobs but with Python, you can professionally build web apps, perform data analysis and machine learning, automate things, do web scraping and also build games and powerful visualizations. It is an all-rounder programminglanguage. 5.1.2 Disadvantages of Python: So far, we’ve seen why Python is a great choice for your project. But if you choose it, you shouldbeawareofitsconsequences as well. Let’s nowseethedownsides ofchoosingPython over another language. 1.Speed Limitations: We have seen that Python code is executed line by line. But since Python is interpreted, itoften results in slow execution. This, however, isn’t a problem unless speed is a focal pointfor the project. In other words, unless high speed is a requirement, the benefits offered byPython are enough to distract us from its speed limitations.
  • 55. 47 2.Weak in Mobile Computing and Browsers: While it serves as an excellent server-side language, Python is much rarely seen on the client-side. Besides that, it is rarely ever used to implement smartphone-based applications. One such application is called Carbonnelle. 3.Design Restrictions: As you know, Python is dynamically-typed. This means that you don’t need to declare thetype of variable while writing the code. It uses duck-typing. But wait, what’s that? Well, it just means that if it looks like a duck, it must be a duck. While this is easy on the programmers during coding, it can raise run-time errors. 4.Underdeveloped Database Access Layers: Compared to more widely used technologies like JDBC(Java DataBase Connectivity) and ODBC (Open DataBase Connectivity), Python’s database access layersare a bit underdeveloped. Consequently, it is less often applied in huge enterprises. 5.Simple: No, we’re not kidding. Python’s simplicity can indeed be a problem. Take my example. I don’t do Java, I’m more of a Python person. To me, its syntax is so simple that the verbosityof Java code seems unnecessary. This was all about the Advantages and Disadvantages of Python Programming Language. 5.2 HISTORY OF PYTHON: What do the alphabet and the programming language Python have in common? Right, both start with ABC. If we are talking about ABC in the Python context, it's clear that the programming language ABC is meant. ABC is a general-purpose programming language and programming environment, which had been developed in the Netherlands, Amsterdam,
  • 56. 48 at the CWI (Centrum Wiskunde &Informatica). The greatest achievement of ABC was to influence the design of Python. Python was conceptualized in the late 1980s. Guido van Rossum worked that time in a project at the CWI, called Amoeba, a distributed operating system. In an interview with Bill Venners1 , Guido van Rossum said: "In the early 1980s, I worked as an implementer on a team building a language called ABC at Centrum Wiskunde en Informatica (CWI). I don't know how well people know ABC's influence on Python. I try to mention ABC's influence because I'm indebted to everything I learned during that project and to the people who worked on it. Later on in the same Interview, Guido van Rossum continued: "I remembered all my experience and some of my frustration with ABC. I decided to try to design a simple scripting language that possessed some of ABC's better properties, but without its problems. So I started typing. I created a simple virtual machine, a simple parser, and a simple runtime. I made my own version of the various ABCparts that I liked. I created a basic syntax, used indentation for statement grouping instead ofcurly braces or begin-end blocks, and developed a small number of powerful data types: a hash table (or dictionary, as we call it), a list, strings, and numbers." 5.3 PYTHON DEVELOPMENT STEPS: Guido Van Rossum published the first version of Python code (version 0.9.0) at alt.sources in February 1991. This release included already exception handling, functions, and the core data types of list, dict, str and others. It was also object oriented and had a module system. Python version 1.0 was released in January 1994. The major new features included in this release were the functional programming tools lambda, map, filter and reduce, which Guido Van Rossum never liked.Six and a half years later in October 2000, Python 2.0 was introduced. This release included list comprehensions, a full garbage collector and it was supporting Unicode Python flourished for another 8 years in the versions 2.x before the nextmajor release as Python 3.0 (also known as "Python 3000" and "Py3K") was released. Python3 is not backwards compatible with Python 2.x. The emphasis in Python 3 had been on the removal of duplicate programming constructs and modules, thus
  • 57. 49 fulfilling or coming close to fulfilling the 13th law of the Zen of Python: "There should be one -- and preferably only one -- obvious way to do it. Some changes in Python 7.3: • Print is now a function • Views and iterators instead of lists • The rules for ordering comparisons have been simplified. E.g. a heterogeneous list cannot be sorted, because all the elements of a list must be comparable to each other. • There is only one integer type left, i.e. int. long is int as well. • The division of two integers returns a float instead of an integer. "//" can be used to have the "old" behaviour. • Text Vs. Data Instead Of Unicode Vs. 8-bit Purpose:- We demonstrated that our approach enables successful segmentation of intra-retinal layers—even with low-quality images containing speckle noise, low contrast, and different intensity ranges throughout—with the assistance of the ANIS feature. Python: Python is an interpreted high-level programming language for general-purpose programming. Created by Guido van Rossum and first released in 1991, Python has a design philosophy that emphasizes code readability, notably using significant whitespace. Python features a dynamic type system and automatic memory management. It supports multiple programming paradigms, including object-oriented, imperative, functional and procedural, and has a large and comprehensive standard library. • Python is Interpreted − Python is processed at runtime by the interpreter. You do not need to compile your program before executing it. This is similar to PERL and PHP. • Python is Interactive − you can actually sit at a Python prompt and interact with the interpreter directly to write your programs. • Python also acknowledges that speed of development is important. Readable and tersecode is part of this, and so is access to powerful constructs that avoid tedious repetitionof code.
  • 58. 50 Maintainability also ties into this may be an all but useless metric, but it does say something about how much code you have to scan, read and/or understand to troubleshoot problems or tweak behaviors. This speed of development, the ease with which a programmer of other languages can pick up basic Python skills and the huge standard library is key to another area where Python excels. All its tools have been quick to implement, saved a lot of time, and several of them have later been patched and updated by people with no Python background - without breaking. 5.4 INSTALL PYTHON STEP-BY-STEP IN WINDOWS AND MAC Python a versatile programming language doesn’t come pre-installed on your computer devices. Python was first released in the year 1991 and until today it is a very popular high- level programming language. Its style philosophy emphasizes code readability with its notable use of great whitespace. The object-oriented approach and language construct provided by Python enables programmers to write both clear and logical code for projects. This software does not come pre-packaged with Windows. How to Install Python on Windows and Mac : There have been several updates in the Python version over the years. The question is how to install Python? It might be confusing for the beginner who is willing to start learning Python but this tutorial will solve your query. The latest or the newest version of Python is version. 3.7.4 or in other words, it is Python 3. Note: The python version 3.7.4 cannot be used on Windows XP or earlier devices. Before you start with the installation process of Python. First, you need to know about your System Requirements. Based on your system type i.e. operating system and based processor, you must download the python version. My system type is a Windows 64-bit operating system. So the steps below are to install python version 3.7.4 on Windows 7 device or to install Python 3. Download the Python Cheatsheet here.
  • 59. 51 Download the Correct version into the system Step 1: Go to the official site to download and install python using Google Chrome or any other web browser. OR Click on the following link: https://www.python.org Now, check for the latest and the correct version for your operating system. Step 2: Click on the Download Tab.
  • 60. 52 Step 3: You can either select the Download Python for windows 3.7.4 button in Yellow Color or you can scroll further down and click on download with respective to their version. Here, we are downloading the most recent python version for windows. Step 4: Scroll down the page until you find the Files option. Step 5: Here you see a different version of python along with the operating system.
  • 61. 53 CHAPTER-6 INPUT AND OUTPUT DESIGN 6.1 INPUT DESIGN The input design is the link between the information system and the user. It comprises the developing specification and procedures for data preparation and those steps are necessary to put transaction data in to a usable form for processing can be achieved by inspecting the computer to read data from a written or printed document or it can occur by having people keying the data directly into the system. The design of input focuses on controlling the amount of input required, controlling the errors, avoiding delay, avoiding extra steps and keeping the process simple. The input is designed in such a way so that it provides security and ease of use with retaining the privacy. Input Design considered the following things:  What data should be given as input?  How the data should be arranged or coded?  The dialog to guide the operating personnel in providing input.  Methods for preparing input validations and steps to follow when error occur. OBJECTIVES 1.Input Design is the process of converting a user-oriented description of the input into a computer-based system. This design is important to avoid errors in the data input process and show the correct direction to the management for getting correct information from the computerized system. 2. It is achieved by creating user-friendly screens for the data entry to handle large volume of data. The goal of designing input is to make data entry easier and to be free from errors. The data entry screen is designed in such a way that all the data manipulates can be performed. It also provides record viewing facilities. 3.When the data is entered it will check for its validity. Data can be entered with the help of screens. Appropriate messages are provided as when needed so that the user will not be
  • 62. 54 in maize of instant. Thus the objective of input design is to create an input layout that is easy to follow 6.2 OUTPUT DESIGN A quality output is one, which meets the requirements of the end user and presents the information clearly. In any system results of processing are communicated to the users and to other system through outputs. In output design it is determined how the information is to be displaced for immediate need and also the hard copy output. It is the most important and direct source information to the user. Efficient and intelligent output design improves the system’s relationship to help user decision-making. 1. Designing computer output should proceed in an organized, well thought out manner; the right output must be developed while ensuring that each output element is designed so that people will find the system can use easily and effectively. When analysis design computer output, they should Identify the specific output that is needed to meet the requirements. 2.Select methods for presenting information. 3.Create document, report, or other formats that contain information produced by the system. The output form of an information system should accomplish one or more of the following objectives.  Convey information about past activities, current status or projections of the  Future.  Signal important events, opportunities, problems, or warnings.  Trigger an action.  Confirm an action.
  • 63. 55 CHAPTER-7 SOFTWARE ENVIRONMENT 7.1 PYTHON Python is a general-purpose interpreted, interactive, object-oriented, and high-level programming language. An interpreted language, Python has a design philosophy that emphasizes code readability (notably using whitespace indentation to delimit code blocks rather than curly brackets or keywords), and a syntax that allows programmers to express concepts in fewer lines of code than might be used in languages such as C++or Java. It provides constructs that enable clear programming on both small and large scales. Python interpreters are available for many operating systems. CPython, the reference implementation of Python, is open source software and has a community- based development model, as do nearly all of its variant implementations. CPython is managed by the non-profit Python Software Foundation. Python features a dynamic type system and automatic memory management. It supports multiple including object- oriented, imperative, functional and procedural. DJANGO Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of Web development, so you can focus on writing your app without needing to reinvent the wheel. It’s free and open source. Django's primary goal is to ease the creation of complex, database-driven websites. Django emphasizes reusabilityand "pluggability" of components, rapid development, and the principle of don't repeat yourself. Python is used throughout, even for settings files and data models.
  • 64. 56 Django also provides an optional administrative create, read, update and delete interface that is generated dynamically through introspection and configured via admin models 7.2 SOURCE CODE: import time import math import cv2 import numpy as np import sys confid = 0.5 thresh = 0.5 vid_path = "./videos/3.mp4" angle_factor = 0.8 H_zoom_factor = 1.2 # Calibration needed for each video def dist(c1, c2): return ((c1[0] - c2[0]) ** 2 + (c1[1] - c2[1]) ** 2) ** 0.5
  • 65. 57 def T2S(T): S = abs(T/((1+T**2)**0.5)) return S def T2C(T): C = abs(1/((1+T**2)**0.5)) return C def isclose(p1,p2): c_d = dist(p1[2], p2[2]) if(p1[1]<p2[1]): a_w = p1[0] a_h = p1[1] else: a_w = p2[0] a_h = p2[1] T = 0 try: T=(p2[2][1]-p1[2][1])/(p2[2][0]-p1[2][0]) except ZeroDivisionError: T = 1.633123935319537e+16 S = T2S(T) C = T2C(T) d_hor = C*c_d d_ver = S*c_d vc_calib_hor = a_w*1.3 vc_calib_ver = a_h*0.4*angle_factor c_calib_hor = a_w *1.7 c_calib_ver = a_h*0.2*angle_factor # print(p1[2], p2[2],(vc_calib_hor,d_hor),(vc_calib_ver,d_ver)) if (0<d_hor<vc_calib_hor and 0<d_ver<vc_calib_ver): return 1 elif 0<d_hor<c_calib_hor and 0<d_ver<c_calib_ver: return 2 else: return 0 labelsPath = "./coco.names" LABELS = open(labelsPath).read().strip().split("n")
  • 66. 58 np.random.seed(42) weightsPath = "./yolov3.weights" configPath = "./yolov3.cfg" #weightsPath = "./yolov3-tiny.weights" #configPath = "./yolov3-tiny.cfg" net = cv2.dnn.readNetFromDarknet(configPath, weightsPath) ln = net.getLayerNames() ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()] FR=0 cap= cv2.VideoCapture(vid_path) (W, H) = (None, None) fl = 0 q = 0 while True: print("test") (grabbed, frame) = cap.read() if not grabbed: break if W is None or H is None: (H, W) = frame.shape[:2] FW=W if(W<1075): FW = 1075 FR = np.zeros((H+210,FW,3), np.uint8) col = (255,255,255) FH = H + 210 FR[:] = col blob = cv2.dnn.blobFromImage(frame, 1 / 255.0, (416, 416), swapRB=True, crop=False) net.setInput(blob)
  • 67. 59 start = time.time() layerOutputs = net.forward(ln) end = time.time() boxes = [] confidences = [] classIDs = [] for output in layerOutputs: for detection in output: scores = detection[5:] classID = np.argmax(scores) confidence = scores[classID] if LABELS[classID] == "person": if confidence > confid: box = detection[0:4] * np.array([W, H, W, H]) (centerX, centerY, width, height) = box.astype("int") x = int(centerX - (width / 2)) y = int(centerY - (height / 2)) boxes.append([x, y, int(width), int(height)]) confidences.append(float(confidence)) classIDs.append(classID) idxs = cv2.dnn.NMSBoxes(boxes, confidences, confid, thresh) if len(idxs) > 0: status = [] idf = idxs.flatten() close_pair = [] s_close_pair = [] center = [] co_info = [] for i in idf: (x, y) = (boxes[i][0], boxes[i][1]) (w, h) = (boxes[i][2], boxes[i][3])
  • 68. 60 cen = [int(x + w / 2), int(y + h / 2)] center.append(cen) cv2.circle(frame, tuple(cen),1,(0,0,0),1) co_info.append([w, h, cen]) status.append(0) for i in range(len(center)): for j in range(len(center)): g = isclose(co_info[i],co_info[j]) if g == 1: close_pair.append([center[i], center[j]]) status[i] = 1 status[j] = 1 elif g == 2: s_close_pair.append([center[i], center[j]]) if status[i] != 1: status[i] = 2 if status[j] != 1: status[j] = 2 total_p = len(center) low_risk_p = status.count(2) high_risk_p = status.count(1) safe_p = status.count(0) kk = 0 for i in idf: cv2.line(FR,(0,H+1),(FW,H+1),(0,0,0),2) (x, y) = (boxes[i][0], boxes[i][1]) (w, h) = (boxes[i][2], boxes[i][3]) if status[kk] == 1: cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 0, 150), 2) elif status[kk] == 0: cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2) else: cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 120, 255), 2) kk += 1
  • 69. 61 for h in close_pair: cv2.line(frame, tuple(h[0]), tuple(h[1]), (0, 0, 255), 2) for b in s_close_pair: cv2.line(frame, tuple(b[0]), tuple(b[1]), (0, 255, 255), 2) FR[0:H, 0:W] = frame height , width , layers = frame.shape frame = FR new_h=int(height/2) new_w=int(width/2) frame_re = cv2.resize(frame, (new_w, new_h)) cv2.imshow('Final Image', frame_re) k = cv2.waitKey(1) & 0xFF print(k) if k == 27: # wait for ESC key to exit cv2.destroyAllWindows() sys.exit(0) print("END") print("END1") print("Processing finished: open"+"op_"+vname) cap.release
  • 70. 62 CHAPTER-8 SYSTEM TESTING The purpose of testing is to discover errors. Testing is the process of trying to discover every conceivable fault or weakness in a work product. It provides a way to check the functionality of components, sub-assemblies, assemblies and/or a finished product It is the process of exercising software with the intent of ensuring that the Software system meets its requirements and user expectations and does not fail in an unacceptable manner. There are various types of tests. Each test type addresses a specific testing requirement. TESTING METHODOLOGIES Unit testing Unit testing involves the design of test cases that validate that the internal program logic is functioning properly, and that program inputs produce valid outputs. All decision branches and internal code flow should be validated. It is the testing of individual software units of the application .it is done after the completion of an individual unit before integration. This is a structural testing, that relies on knowledge of its construction and is invasive. Unit tests perform basic tests at component level and test a specific business process, application, and/or system configuration. Unit tests ensure that each unique path of a business process performs accurately to the documented specifications and contains clearly defined inputs and expected results. Unit testing involves the testing of each unit or an individual component of the software application. It is the first level of functional testing. The aim behind unit testing is to validate unit components with its performance. A unit is a single testable part of a software system and tested during the development phase of the application software. The purpose of unit testing is to test the correctness of isolated code. A unit component is an individual function or code of the application. White box testing approach used for unit testing and usually done by the developers.
  • 71. 63 Whenever the application is ready and given to the Test engineer, he/she will start checking every component of the module or module of the application independently or one by one, and this process is known as Unit testing or components testing. Why Unit Testing? In a testing level hierarchy, unit testing is the first level of testing done before integration and other remaining levels of the testing. It uses modules for the testing process which reduces the dependency of waiting for Unit testing frameworks, stubs, drivers and mock objects are used for assistance in unit testing. Generally, the software goes under four level of testing: Unit Testing, Integration Testing, System Testing, and Acceptance Testing but sometimes due to time consumption software testers does minimal unit testing but skipping of unit testing may lead to higher defects during Integration Testing, System Testing, and Acceptance Testing or even during Beta Testing which takes place after the completion of software application. Some crucial reasons are listed below:  Unit testing helps tester and developers to understand the base of code that makes them able to change defect causing code quickly.  Unit testing helps in the documentation.  Unit testing fixes defects very early in the development phase that's why there is a possibility to occur a smaller number of defects in upcoming testing levels.  It helps with code reusability by migrating code and test cases. Advantages and disadvantages of unit testing The pros and cons of unit testing are as follows: Advantages  Unit testing uses module approach due to that any part can be tested without waiting for completion of another parts testing.
  • 72. 64  The developing team focuses on the provided functionality of the unit and how functionality should look in unit test suits to understand the unit API.  Unit testing allows the developer to refactor code after a number of days and ensure the module still working without any defect. Disadvantages  It cannot identify integration or broad level error as it works on units of the code.  In the unit testing, evaluation of all execution paths is not possible, so unit testing is not able to catch each and every error in a program.  It is best suitable for conjunction with other testing activities. Integration testing Integration tests are designed to test integrated software components to determine if they actually run as one program. Testing is event driven and is more concerned with the basic outcome of screens or fields. Integration tests demonstrate that although the components were individually satisfaction, as shown by successfully unit testing, the combination of components is correct and consistent. Integration testing is specifically aimed at exposing the problems that arise from the combination of components. Integration testing is the second level of the software testing process comes after unit testing. In this testing, units or individual components of the software are tested in a group. The focus of the integration testing level is to expose defects at the time of interaction between integrated components or units. Unit testing uses modules for testing purpose, and these modules are combined and tested in integration testing. The Software is developed with a number of software modules that are coded by different coders or programmers. The goal of integration testing is to check the correctness of communication among all the modules.
  • 73. 65 Guidelines for Integration Testing  We go for the integration testing only after the functional testing is completed on each module of the application.  We always do integration testing by picking module by module so that a proper sequence is followed, and also we don't miss out on any integration scenarios.  First, determine the test case strategy through which executable test cases can be prepared according to test data.  Examine the structure and architecture of the application and identify the crucial modules to test them first and also identify all possible scenarios.  Design test cases to verify each interface in detail.  Choose input data for test case execution. Input data plays a significant role in testing.  If we find any bugs then communicate the bug reports to developers and fix defects and retest.  Perform positive and negative integration testing. Functional testing Functional tests provide systematic demonstrations that functions tested are available as specified by the business and technical requirements, system documentation, and user manuals. Functional testing is centered on the following items: Valid Input : identified classes of valid input must be accepted. Invalid Input : identified classes of invalid input must be rejected. Functions : identified functions must be exercised. Output : identified classes of application outputs must be exercised. Systems/Procedures : interfacing systems or procedures must be invoked. Organization and preparation of functional tests is focused on requirements, key functions, or special test cases. In addition, systematic coverage pertaining to identify Business process flows; data fields, predefined processes, and successive processes must be considered for