Download as pdf or txt
Download as pdf or txt
You are on page 1of 52

INDEX

S.No. Contents Page

1. Introduction 5–6

2. Hardware and Platform 7 – 13

3. System Analysis 14 –

4. Feasibility Analysis 15 – 16

5. System Design 17 – 21

6. Coding 21 – 32

7. Testing 33 – 40

8. Software Quality Assurance 41 – 52

9. Future Scope 53

10. Conclusion 54

11. Bibliography 55

1
INTRODUCTION

Internet of Things is the fastest growing technology. Like Information


Technology revolutionized every field in the early years of twenty first century,
the internet of things is about to forward the same legacy. IoT is about to find
application everywhere and in everything. The concept of IoT is so scalable,
versatile and ubiquitous. In this project, Internet of Things has been used to built
a visitor counter. Such visitor counter can be part of a home automation system
or smart home system.

The IoT project developed here is built on Arduino UNO. The Arduino is one of
the earliest and most popular prototyping boards. So It is assumed that the reader
has gone through the project how to get started with the arduino and done all the
things discussed in it. The visitor counter circuit is designed using PIR sensors.
The Arduino based IoT device simply passes the count of the visitors to serial
monitor. As the people enter the room the light will turn on.

Depending upon the sensors interruption, the system identifies the entry and exit
of the visitor. On the successful implementation of the system, it displays the
number of visitor present in the auditorium or hall. This is an economical cost
reducing system when implemented in places where the visitors have to be
counted and controlled. Counting the visitors can be time consuming so it helps
to maximize the efficiency and effectiveness of employees, time saving and sales
potential of an organization, etc.

The Arduino Uno does the above job. It receives the signals from the sensors,
and this signal is operated under the control of software called Arduino(IDE).
Also in addition the total number of person in the room be incremented value or

2
decremented value will always be displayed in the Serial Monitor thus makes
this system a very user friendly.

3
HARDWARE AND PLATFORM

The hardware part mainly consists of a digital computer, an Arduino Uno board,
Pyroelectric Infrared Sensor module, Resistor, Buzzer, as equipments used.
Platform is IOT here. This are being discussed along with their specific
functions.

A . ARDUINO UNO AN ARDUINO :

board historically consists of an Atmel 8-, 16-or 32-bit AVR microcontroller


with complementary components that facilitate programming and incorporation
into other circuits. An important aspect of the Arduino is its standard connectors,
which let users connect the CPU board to a variety of interchangeable add-on
modules termed shields. Some shields communicate with the Arduino board
directly over various pins, but many shields are individually addressable via an
I²C serial bus—so many shields can be stacked and used in parallel. It provides
14 digital I/O pins, six of which can produce pulsewidth modulated signals, and
six analog inputs, which can also be used as six digital I/O pins. This board has a
5 volt linear regulator and a 16 MHz crystal oscillator.

B. PIR SENSOR :

PIR sensor detects a human being moving around within approximately 10m
from the sensor. This is an average value, as the actual detection range is
between 5m and 12m.PIR are fundamentally made of a pyro electric sensor,
which can detect levels of infrared radiation. For numerous essential projects or
items that need to discover when an individual has left or entered the area. PIR
sensors are incredible, they are flat control and minimal effort, have a wide lens
range, and are simple to interface with.

4
Most PIR sensors have a 3-pin connection at the side or bottom. One pin will be
ground, another will be signal and the last pin will be power. Power is usually up
to 5V. Sometimes bigger modules don’t have direct output and instead just
operate a relay which case there is ground, power and the two switch
associations. Interfacing PIR with microcontroller is very easy and simple. The
PIR acts as a digital output so all you need to do is listening for the pin to flip
high or low. The motion can be detected by checking for a high signal on a
single I/O pin. Once the sensor warms up the output will remain low until there
is motion, at which time the output will swing high for a couple of seconds, then
return low. If motion continues the output will cycle in this manner until the
sensors line of sight of still again. The PIR sensor needs a warm-up time with a
specific end goal to capacity fittingly. This is because of the settling time
included in studying nature’s domain. This could be anyplace from 10-60
seconds.

The PIR sensors are more complicated thanthe other sensors as they consists of
two slots. These slots are made of a special material which is sensitive to IR. The
Fresnel lens is used to see that the two slots of the PIR can see out past some
distance. When the sensor is inactive, then the two slots sense the same amount
of IR.The ambient amount radiates from the outdoors, walls or room,etc.

When a human body or any animal passes by, then it intercepts the first slot of
the PIR sensor. This causes a positive differential change between the two
bisects.When a human body leaves the sensing area,the sensor generates a
negative differential change between the two bisects. The infrared sensor itself is
housed in a hermetically sealed metal to improve
humidity/temperature/noise/immunity. There is a window which is made of
typically coated silicon material to protect the sensing element.

5
C. ULTRASONIC SENSOR :

As the name indicates, ultrasonic sensors measure distance by using ultrasonic


waves.The sensor head emits an ultrasonic wave and receives the wave reflected
back from the target. Ultrasonic Sensors measure the distance to the target by
measuring the time between the emission and reception.

An optical sensor has a transmitter and receiver, whereas an ultrasonic sensor


uses a single ultrasonic element for both emission and reception. In a reflective
model ultrasonic sensor, a single oscillator emits and receives ultrasonic waves
alternately. This enables miniaturization of the sensor head.

D. RELAY MODULE :

A relay is an electrically operated switch that can be turned on or off, letting the
current go through or not, and can be controlled with low voltages, like the 5V
provided by the Arduino pins.

We’ve used a relay module has two channels. There are other models with one,
four and eight channels. This module should be powered with 5V, which is
appropriate to use with an Arduino. There are other relay modules that are
powered using 3.3V, which is ideal for ESP32, ESP8266, and other
microcontrollers.

A type of relay that can handle the high power required to directly control an
electric motor or other loads is called a contactor. Solid-state relays control
power circuits with no moving parts, instead using a semiconductor device to
perform switching. Relays with calibrated operating characteristics and

6
sometimes multiple operating coils are used to protect electrical circuits from
overload or faults; in modern electric power systems these functions are
performed by digital instruments still called "protective relays".

7
BLOCK DIAGRAM AND CIRCUIT DIAGRAM

BLOCK DIAGRAM:

The basic Block diagram of the bidirectional visitor counter with automatic light
controller is shown in the above figure. Mainly this Block diagram consists of
the following essential blocks.

1. Power Supply

2. Entry and Exit sensor circuit

3. Arduino micro-controller

4. Relay driver circuit


8
5. Buzzer

1. Power Supply:-

Here we used +12V and +5V dc power supply. The main function of this block
is to provide the required amount of voltage to essential circuits. +12voltage is
given. +12V is given to relay driver. To get the +5V dc power supply we have
used here IC 7805, which provides the +5V dc regulated power supply.

2. Enter and Exit Circuits:-

This is one of the main parts of our project. The main intention of this block is
to sense the person. For sensing the person and light we are using the light
dependent register (LDR). By using this sensor and its related circuit diagram we
can count the persons.

3. Arduino Microcontroller:-

An Arduino is actually a microcontroller based kit which can be either used


directly by purchasing from the vendor or can be made at home using the
components, owing to its open source hardware feature.

It is basically used in communications and in controlling or operating many


devices.

The most important advantage with Arduino is the programs can be directly
loaded to the device without requiring any hardware programmer to burn the
program. This is done because of the presence of the 0.5KB of Bootloader which
allows the program to be burned into the circuit.

9
4. Relay Driver Circuit:-

This block has the potential to drive the various controlled devices. In this block

mainly we are using the transistor and the relays. One relay driver circuit we are
using to control the light. Output signal from AT89S52 is given to the base of
the transistor, which we are further energizing the particular relay. Because of
this appropriate device is selected and it do its allotted function.

5. Buzzer :-

This is used in our project to just buz when there is someone enters the room.

CIRCUIT DIAGRAM

10
SYSTEM ANALYSIS

After analyzing the requirements of the task to be performed, the next step is to
analyze the problem and understand its context. The first activity in the phase is
studying the existingsystem and other is to understand the requirements and
domain of the new system.

Both the activities are equally important, but the first activity serves as a basis of
giving the functional specifications and then successful design of the proposed
system. Understanding the properties and requirements of a new system is more
difficult and requires creative thinking and understanding of existing running
system is also difficult, improper understanding of present system can lead
diversion from solution.

It is a process of collecting and interpreting facts, identifying the problems, and


decomposition of a system into its components.

System analysis is conducted for the purpose of studying a system or its parts in
order to identify its objectives. It is a problem solving technique that improves
the system and ensures that all the components of the system work efficiently to
accomplish their purpose.

An effective System Development Life Cycle (SDLC) should result in a high


quality system that meets customer expectations, reaches completion within
time and cost evaluations, and works effectively and efficiently in the current
and planned Information Technology infrastructure.

System Development Life Cycle (SDLC) is a conceptual model which includes


policies and procedures for developing or altering systems throughout their life
cycles.

11
FEASIBILITY ANALYSIS

A feasibility study is a short, focused study, which aims to answer a


number of questions:
 Does the system contribute to the overall objectives of the
organizations?
 Can the system be implemented using current technology and within
given cost and schedule constrains?
 Can the system be integrated with systems which are already in place?

3.1 Technical Feasibility:


 Is the project feasibility within the limits of currenttechnology?
 Does the technology exist at all?
 Is it available within given resource constraints (i.e., place, schedule)?

3.2 Financial Feasibility:


 Is the project possible, given resource constraints?
 Are the benefits that will accrue from the new system worth the costs?
 What are the savings that will result from the system, including tangible
and intangible ones?
 What are the development and operational costs?

To implement the operation of the bidirectional visitor counter, IR sensors are


to be positioned at the entrance and wired to the circuit board which consists
of the LCD, buzzer and the LED indicators all mounted directly on the board.
The housing package which contains the circuit board is placed in the
security room or office for easy monitoring of the human traffic flow.

12
The operation of the device follows a programming procedure. In the
detection section, the infrared sensor signal is interrupted by a passing visitor.
The interruption of the signal from the IR transmitter, it sends another signal
to the microcontroller. The PIC16F877A microcontroller works as an
Analogue to Digital Converter (ADC), thus it processes the analog data by
converting the analog signal to digital. Then, the appropriate signals are sent
to the output devices of the system to ensure optimum functionality. The
microcontroller also sends data to the LCD screen to inform the user on the
state of the system.

The first step in the software development is deciding the serial number,
which indicates the number of input/output ports and the memory size of the
microcontroller to be used. Programming flow for software development is
provided by designing a flow chart.

The software that is used in this design is WIZ-C for the PIC16F877A
microcontroller. WIZ-C provides successful match featuring a highly
advanced Integrated Development Environment (IDE), American National
Standards Institute (ANSI) compliant compiler, a broad set of hardware
libraries, comprehensive documentation.

And a lot of ready-to-run examples. WIZ- C allows development and


deployment of such complex applications as writing C source code using the
built-in Code Editor (Code and Parameter Assistants, Syntax Highlighting,
Auto Correct, Code Templates), using the included WIZ-C libraries to
dramatically speed up the development: data acquisition, memory, displays,
conversions, and communications; and generating commented human-
readable assembly, and standard HEX compatible with all programmers.
Inspect program flow and debug executable logic with the integrated
debugger .

13
SYSTEM DESIGN

A sequence diagram shows object interactions arranged in time sequence. It


depicts the objects and classes involved in the scenario and the sequence of
messages exchanged between the objects needed to carry out the functionality of
the scenario. Sequence diagrams are typically associated with use case
realizations in the Logical View of the system under development. Sequence
diagrams are sometimes called event diagrams or event scenarios.

A sequence diagram shows, as parallel vertical lines (lifelines), different


processes or objects that live simultaneously, and, as horizontal arrows, the
messages exchanged between them, in the order in which they occur. This
allows the specification of simple runtime scenarios in a graphical manner.

Rules to Create Sequence Diagram:-

Sequence diagrams map out complex architecture, but they can be surprisingly
easy to create. Sequence diagrams are a popular subset to UML, so if you’re new
to the topic, use our sequence diagram tutorial to familiarize yourself and find
different ways you can use sequence diagrams to map out your technical process
and infrastructure.

 Identify and add components:

 Show the details of a UML use case.

 Model how a complex procedure or system operates.

 See how objects and components interact with each other in


sequence to complete a process.

 Map out a real or hypothetical scenario that has many different


components.

14
To accomplish these goals, you must first identify the components of your
system that should be diagrammed. The first necessary set of components are the
objects. The objects, sometimes called actors, are the principal players that
perform tasks and send messages.

For example, in a login sequence, two of the objects would be the potential
visitor or user and the login page a visitor uses to interact with the platform
they’re attempting to log into. The other set of components you must identify are
the messages the objects will send. What information is passed from one object
to another?

In the user authentication process we describe, the messages show how a user
enters information into the browser to gain access to the webpage and how the
web browser will then cross-check credential to the designated application.

 Add or import shapes:-

Lucidchart has an entire UML shape library with all the standard shapes needed
to create professional sequence diagrams. Click on "Shapes" in the upper-left
corner of the editor and select "UML" in the Shape Library Manager to add
UML shapes to your toolbar.

 Automate the process by using sequence markup

Lucid Chart speeds up the process of creating sequence diagrams with our
sequence markup feature. This feature allows users to create beautiful sequence
diagrams faster and with less hassle. By automating the process, you can
generate a sequence diagram simply by typing your markup order directly into
the editor.

Just navigate to the UML Sequence shape library, and click ―Use Markup.‖ A
text pad will open, where you can type out the order of your sequence and its
rules. When you’re ready, click ―Build‖ and click back out into the editor to see
your new automatically generated sequence diagram.
15
 Manually build a sequence diagram

Once the UML shape library is enabled, it’s easy to add your shapes to the
canvas with a simple drag-and-drop action. Add rectangles to the top of the
canvas, one for each object, and label each rectangle with the name of the object.
If the object is both external and internal to the system, you may choose to use
an actor symbol instead of a rectangle. You can find this symbol in the use case
diagram section of the toolbox.

In this project, an automatic room lighting system is developed using Arduino


microcontroller. The working of the project is explained here.

The sensor placed on the outside of the room is named as Sensor 1 and the
sensor, which is placed on the inside is named Sensor 2.

When a person tries to enter the room, Sensor 1 detects the person first and then
Sensor 2. This action will indicate the 8051 Microcontroller that the person is
entering the room.

Hence, the microcontroller will turn on the light and also increments the visitor
counter to 1. If there are more visitor, the microcontroller will keep the light
turned on and increments the visitor counter accordingly.

When a person tries to leave the room, Sensor 2 detects the person first and then
Sensor 1. This process will make the microcontroller to understand that a person
is trying to leave the room and hence, it will decrement the count of visitors. The
microcontroller will not turn off the light until the last person has left the room.

Caution: Be extremely cautious when using 230V mains supply.

16
Hardware design

The whole system design is divided into three parts to design a smart home
appliance control system. First one is to design the smart system in the
breadboard and control the designed system.

Second part is to display part design to count the value in smart system. And
third Finally, the smart home appliance control system is formed a complete
integrated system. In this project Arduino development board is more efficient.

Full Circuit Design

The whole system consists of many sub-systems. The block diagram of the
whole system is given the Figure 4.1.

Figure 4.1: Full View of Control System

17
Components Used in the System

To design the project we use following component:

One Arduino Uno

One bread board

1k Resistance

Variable resistance

One PIR sensor

One Ultra sonic sensor

One buzzer

2 channel realy module

18
CODING
/*

* ------------------------------------------------------------------------------------------

This is the Arduino code for Home Automation using Arduino(basic)

This project shows when there is dark in the room,and someone enters the room
,PIR will

detect motion, the light will be turned on, and count number of person enter the
room.

When there is light in the room, it doesn't matter how many people will come
inside,

the light will remain off.

*--------------------------------------------------------------------------------------------

*/

#define LIGHT 5 // define pint 5 for sensor

#define RELAY 9 // define pin 9 as for relay

#define PIR 7 // pir

#define BUZ 6 //buzzer

#define UStp 2 //ultrasonic trigger

#define USep 3 //ultrasonic echo

int currentstate=0; //for PIR sensor states

19
int prevstate =0; //for PIR sensor states

int ctr=0; //to count number of person inside the room

int distance; //to detect distance of object from ultrasonic sensor

long duration; //used for pulse duration in Ultrasonic sensor

int pirstate = LOW;

void setup()

// setup Serial Monitor to display information

Serial.begin(9600);

// define pin 5 as Input for LDR

pinMode(LIGHT, INPUT_PULLUP);

// define pin 9 as Output for relay

pinMode(RELAY, OUTPUT);
20
// define pin 7 as Input for PIR

pinMode(PIR, INPUT);

// define pin 6 as Output for Buzzer

pinMode(BUZ, OUTPUT);

// define pin 2 as Output for Ultrasonic Trigger Pin

pinMode(UStp,OUTPUT);

// define pin 3 as Output for Ultrasonic Echo Pin

pinMode(USep,INPUT);

//end of setup()

void loop()

delay(1000);
21
//detect LDR input,i.e, HIGH or LOW

int L=digitalRead(LIGHT);

//detect PIR input,i.e, HIGH or LOW

int P=digitalRead(PIR);

if(L==HIGH) //if there is no light in the room

/*-------------------------------------------------------------------------

* for detecting objects in pir sensor

*-------------------------------------------------------------------------

*/

if(P==HIGH) //if someone enters the room

Serial.println("---Motion Detected.---");

if(pirstate==LOW) //for first person

22
{

currentstate=1;

pirstate=HIGH; //to refresh pir for next input

delay(1000);

else

if(pirstate==HIGH) //if someone already enters the room

currentstate=0;

pirstate=LOW;

23
}

//end if motion detection if-else condition

if(currentstate!=prevstate) //for movement of people to inside of room

if(currentstate==1) //if someone or people is inside the room

tone(BUZ,100,100);

//buzzer will sound a beep for every new person

ctr=ctr+1;

Serial.print("Number of person(s) inside : ");

Serial.println(ctr);

delay(1000);

24
} //end of counter if-conditon

//when there are people inside the room

if(ctr>=1)

Serial.println("***---light is ON---***");

digitalWrite(RELAY,HIGH); // turn the relay ON

} //end of if-condition for light operation

/*-------------------------------------------------------------------------

* for detecting objects in ultrasonic sensor

*-------------------------------------------------------------------------

*/

//truning trigger on

digitalWrite(UStp,LOW);

delayMicroseconds(2);

digitalWrite(UStp,HIGH);
25
delayMicroseconds(5);

digitalWrite(UStp,LOW); //truning trigger off

duration = pulseIn(USep,HIGH);

//duration is in how much time the triggered will be back

distance = ((duration/2)/29.1);

//duration is used to detect distance of object from sensor

if(distance>=1 && distance <=15 )

//if object is within range

if(ctr==0) //no person inside the room

else

26
{

Serial.print("Distance : ");

Serial.println(distance);

ctr=ctr-1; //decrementing number of people count

Serial.print("Number of person(s) inside : ");

Serial.println(ctr);

L=digitalRead(LIGHT);

//detect light if there is any external light strikes

//if there is external light, turn lght off

if(L==LOW)

27
Serial.println("---External light---(turning off light)");

delay(1000);

digitalWrite(RELAY,LOW);// turn the relay OFF

if(ctr==0)

//if there are no person inside the room

Serial.println("**---light is OFF---**(No person inside the room)");

digitalWrite(RELAY,LOW);// turn the relay OFF

//End of if-statement for light detection

else

28
//if there is light present already

Serial.println("---light is OFF---(alredy light exist)");

digitalWrite(RELAY,LOW);// turn the relay OFF

delay(1000);

} //end of void loop()

29
TESTING

The testing phase is an important part of software development. It is the


inputerized system will help in automate process of finding errors and missing
operations and also a complete verification to determine whether the objectives
are met and the user requirements are satisfied.

Software testing is carried out in three steps:

1. The first includes unit testing, where in each module is tested to provide its
correctness, validity and also determine any missing operations and to verify
whether the objectives have been met. Errors are noted down and corrected
immediately. Unit testing is the important and major part of the project. So
errors are rectified easily in particular module and program clarity is increased.
In this project entire system is divided into several modules and is developed
individually. So unit testing is conducted to individual modules.

2. The second step includes Integration testing. It need not be the case, the
software whose modules when run individually and showing perfect results, will
also show perfect results when run as a whole. The individual modules are
clipped under this major module and tested again and verified the results. This is
due to poor interfacing, which may results in data being lost across an interface.
A module can have inadvertent, adverse effect on any other or on the global data
structures, causing serious problems.

3. The final step involves validation and testing which determines which the
software functions as the user expected. Here also some modifications were. In
the completion of the project it is satisfied fully by the end user.

30
Software Testing is an empirical investigation conducted to provide
stakeholders with information about the quality of the product or service
under test, with respect to the context in which it is intended to operate.
Software Testing also provides an objective, independent view of the
software to allow the business to appreciate and understand the risks at
implementation of the software. Test techniques include, but are not
limited to, the process of executing a program or application with the
intent of finding software bugs. It can also be stated as the process of
validating and verifying that a software program/application/product meets
the business and technical requirements that guided its design and
development, so that it works as expected and can be implemented with the
same characteristics.

Software Testing, depending on the testing method employed, can be


implemented at any time in the development process, however the most test
effort is employed after the requirements have been defined and coding process
has been completed.

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


the previous stages. A good case is one that has a high probability of finding
undiscovered error. A successful test is one that uncovers a yet undiscovered
error. If testing is conducted successfully, it will uncover errors in the software.
Testing cannot show the absence of defect if they are present.

Program testing is the most predominant verification and validation technique.


Content Based Image Retrieval has gone through all the standard procedures of
testing under verification and validation which ensures that the software
conforms to its specification. Testing involves exercising the program using data

31
like the real data processed by the program. Testing is carried out during the
implementation phase to verify that the software behaves as intended by its
designer and after the implementation is complete. The following are the
standard procedures for testing which the content based image retrieval has gone
through:

Testing Information Flow

Two classes of inputs will be provided to the test process:

1. A software configuration that includes software requirement


specification, design specification and source.

2. A test configuration that includes test plans, test cases and test tools. Tests
are conducted and all the result is evaluated. These test results are
compared with expected results. When erroneous data are uncovered, an
error is implied and debugging commences.

Test Planning

System testing is expensive. Test planning is concerned with setting standards


for the testing process rather than describing product tests. Test plans provide
information which is responsible for ensuring that appropriate hardware and
software resources are available to the testing team.

32
Testing Process

Systems are built out of subsystems which are built out of modules which are
composed of procedures and functions. The testing process proceeds in stages
where testing is carried out incrementally in conjunction with system
implementation.

Testing Strategies

 Black Box Testing

Black box testing alludes to test that are conducted at the software interface.
These are used to demonstrate the software functional operations whose input is
properly accepted and the outputs are correctly produced.

 White Box Testing

White box testing is predicted on close examination of procedural detailed


logical test cases that exercise specific sets of conditions and/or loops test path
through the software. Basic path testing is a white box testing technique. The
basic path method enables the test case designer to derive a logical complexity
of a procedural design and use this measure as a guide for finding basic set of
execution path. Test cases derived to exercise the basic set are guaranteed to
execute every statement in the program at least one time during testing.

Strategies for software testing to integrate software

33
Test cases design technique to a well-planned series of steps that the result in
successful construction software:

1. Unit Testing

2. Integration Testing

3. Validation Testing

4. System Testing

1. Unit Testing

Unit test focuses on verification effort for the smallest unit of software design
module. This is also known as module testing, the individual modules of ―SNMP
SIMULATOR‖ tested. In this testing step each module was found to be working
satisfactorily with regard to the expected output from the module. Important
control paths are tested to uncover within the boundary. The relative complexity
of tests and errors are deleted as result is limited by conditions.

The local data structure is examined to ensure that the data stored temporarily
maintains its integrity during all steps in algorithms executions. Boundary
conditions are tested to ensure that all statements in a module have been
executed at least once. All error-handling paths are testing.

Testing is done for the incorrect variable name, inconstant data types, underflow,
overflow etc.

34
2. Integration Testing

Integration testing is a systematic technique for constructing the program


structure, while at the same time conducting test to uncover errors associated
with interfacing. The objective is to take unit test modules and build a program
structure that has been dictated by design. All the modules are combined in
advanced. The entire program is tested as a whole. Parent developed software is
tested using bottom integration begins constructions a testing with atomic
modules. Low-level module combined into clusters is tested. Drivers are
removed and clusters are combined moving upwards in the program structure.

3. Validation Testing

In the integration testing stages, software is completely assembled as a package,


interfacing errors have been uncovered and corrected and a final series of
software test upon which validation testing may begin. Software validation is
achieved through a series of black box test that demonstrated conformity with
the requirements. Validation test succeeded because the software functions in a
manner that can be reasonably expected by the client.

5. Output Testing

After performing the validation tests, the next step is the output testing of the
proposed system. No system is useful, if it does not produce the required output
in the specified format. Considering the format required the user tests the output
generated or displayed by the system under consideration .Here the output
format on the screen is found to be correct as the format was designed in the
system design phase according to the user needs. For the hard copy also the

35
output comes out as specified requirements by the user. Hence, output testing
does not result in any correction in the system.

6. User Acceptance Testing

User acceptance is a key factor for the success of any system. The system under
consideration is tested for user acceptance by constantly keeping in touch with
perspective system user, as is done with regard to the following points:

1. Input Screen Design

2. Output Screen Design

3. Menu Driven System

4. Format of Outputs

Taking various kinds of test data does the above tests. Preparation of test data
plays a vital role in system testing. After preparing the test data, the system
under study is tested using the test data. While testing the system using data, the
errors are again uncovered. These errors are again corrected by using the above
testing steps and corrections are also noted for future use.

7. System Testing

After the system is implemented successfully, the training of the user is one of
the most important subtasks of the developer. For the purpose, the user manuals
are prepared and handed over to the user to operate the developed system. Both
the hardware and software securities are made to run the developed system
successfully in future.

36
System testing is actually a series of different test whose primary purpose is to
fully exercise the computer-based system, including recovery testing during
crashes, security testing for unauthorized users etc.

8. Validation Testing:

At the validation level, testing focuses on user visible actions and user
recognizable output from the system. Validations testing is said to be successful
when software functions in a manner that can be reasonably expected by the
customer.

Two types of validation testing:

a) Alpha testing is simulated or actual operational testing by potential


users/customers or an independent test team at the developers' site.
Alpha testing is often employed for off-the-shelf software as a form
of internal acceptance testing, before the software goes to beta testing.

b) Beta testing comes after alpha testing. Versions of the software,


known as beta version, are released to a limited audience outside of
the programming team. The software is released to groups of people
so that further testing can ensure the product has few faults or
bugs. Sometimes, beta versions are made available to the open public to
increase the feedback field to a maximal number of future users

c) Gray box testing Grey box testing is the combination of black box and
white box testing.

37
SOFTWARE QUALITY ASSURANCE :-

Each development and maintenance project should have a Software Quality


Assurance Plan that specifies its goals, the SQA tasks to be performed, the
standards against which the development work is to be measured, and the
procedures and organizational structure.

The IEEE Standards for the Software Quality Assurance Plans states that
the plan should contain the following sections:

I. Purpose

II. Reference documents

III. Management

IV. Documentation

V. Standards, practices and conventions

VI. Reviews and Audits

VII. Configuration Management

VIII. Problem reporting and corrective action

IX. Tools, techniques and methodologies

X. Code Control

XI. Supplier Control

XII. Records collection, maintenance and retention.

38
A. Purpose, Scope and Overview:

The purpose of this Software Quality Assurance (SQA) Plan is to establish


the goals, processes, and responsibilities required to implement effective quality
assurance functions for the ONLINE HIRING.

The Software Quality Assurance plan provides the framework necessary to


ensure a consistent approach to software quality assurance throughout the
project life cycle.

This plan establishes the SQA activities performed throughout the life
cycle of the Touché . Specifically, this SQA Plan will show that the SQA
function is in place for this project. It will show that the SQA group has a
reporting channel to senior management that is independent of the project
manager, the project’s software engineering group,

and software related groups that include Software Configuration


Management (SCM), System and Software Test, and Logistics.

The goal of the SQA program is to verify that all software and documentation to
be delivered meet all technical requirements.

B. Reference documents:

a. Software Quality Assurance, Principles and Practice:.

C. Management:

An IEEE standard lays down three aspects that should be covered in the
Software Quality Assurance Plan:

39
Organization: The organization section includes the roles of the team
members, their hierarchy etc. It is important that the head of the
Software Quality Assurance (SQA) function in the organization has the
adequate authority to be able to perform independent verification that the
processes are adhered to.

The following describes the functional groups that influence and control
software quality.

a). Program Management/Line Management (Sponsor) is responsible for the


following items:

1. Identifying an individual or group independent from the Project to


audit and report on the project’s SQA function.

2. Identifying the quality factors to be implemented in the system and


software.

b). Project Management is responsible for:

1. Resolving and following-up on any quality issues raised by SQA.

2. Identifying, developing and maintaining planning documents such as the


ProgramManagement Plan.

c). System Engineering is responsible for:

Implementing the engineering practices, processes, and procedures as defined in


program/project planning documents.

40
d). Software Design/Development is responsible for :

Identifying, implementing, and evaluating the quality factors to be


implemented in the software.

e). Software Test is responsible for: Verifying, Implementing the software test
practices, processes, and procedures as defined in program/project planning
documents.

f). System Test is responsible for:

Verifying the quality factors are implemented in the system (software and
hardware).

g). Logistics is responsible for:

1. Reviewing and commenting on the ―‖ SQA Plan.

2. Implementing the quality program in accord ONLINE VEHICLE


HIRINGassurance with this SQA Plan.

h). Software Configuration Management (SCM) is responsible for:

Implementing the SCM practices, processes, and procedures as defined in


reference and other program/project planning documents.

i). Independent Verification and Validation (IV& V) is responsible for:

Implementing the practices, processes, and procedures as defined for IV&V in


program/project planning documents.

41
j). Systems Engineering Process Office (SEPO) is responsible for:

1. Maintaining the SQA Process.

2. Ensuring SQA training availability.

3. Providing assistance in software process engineering and software process

improvement.

a) Tasks: An SQA task is performed in relationship to what software

Development activities are taking place. One or more SQA tasks can be

performed concurrently until a task is completed.

The following are the tasks of SQA plan:

 Evaluate System Requirements Analysis Process

 Evaluate System Design Process

 Evaluate Software Requirements Analysis Process

 Evaluate Software Design Process

 Evaluate Software Tools

 Evaluate Software Implementation and Unit Testing


Process

 Evaluate End-item delivery Process

 Evaluate Configuration Management Process

42
b) Responsiblities: The project manager and design/development teams
haveprimary responsibility for the quality controls applied during the
development of the software project.

The quality manager will:

 Define the responsibilities of quality personnel in the


form of quality

assurance procedures applicable to the project.

 Agree to the quality plan with the project manager.

 Approve the plan of the audits for the project which are to be
carried out by quality personnel.

 Resolve any disagreement between the project manager


and quality personnel on matters relating to quality.

 Review the activities performed by project personnel to


ensure that the requirements of the quality plan and quality
procedures are being satisfied.

Quality personnel will:

 Carry out planned internal audits of the project to assess compliance with
quality objectives.
 Agree on corrective action with the project manager for any
discrepancies, non-conformities found and ensure that corrective action is
taken.
 Evaluate defect trends and take appropriate action.

43
D. Documentation:

The basic purpose of the documentation section of the Software Quality


Assurance Plan is to describe the documentation to be produced and how it is to
be reviewed. The documentation section normally includes the following:

 Software Requirements Specification (SRS)

 Software Design Description

 Software Verification Plan

 Software Verification report

 Reference to Software Standards (ISO, CMM, IEEE etc) and procedures


mentioned and defined as in the Quality Manual and Quality
Management System

 User guides, operators and programmers manual

 Configuration Management Plan

 Software Quality Objectives.

E. Standards, practices and conventions:

To verify the delivery of a fully conforming, high-quality product, every


individual assigned to the project will participate in quality assurance.

This section describes the procedures used by SQA to verify that the
quality assurance provisions of this SQA Plan and applicable standards,
practices, conventions, and metrics are met.

The following measurements will be made and used to determine the cost and
schedule status of the SQA activities: SQA milestone dates (planned)

44
a. SQA milestone dates (completed)

b. SQA work scheduled (planned)

c. SQA work completed (actual)

d. SQA effort expended (planned)

e. SQA effort expended (actual)

f. SQA funds expended (planned)

F. Reviews and Audits:

The review and audits sections of Software Quality Assurance Plan will
state which technical and managerial reviews will be undertaken and how
they will be carried out. The ANSI standard suggests that the following
would be a minimum set of reviews:

 Software Requirements Specification Review: This review is held to


approve the document defining the software requirements
specifications and it aims to check the adequacy of the requirements.

 Primary Design Review: The purpose of this review is to approve


formally, the software top-level design document.

 Critical Design Review: The purpose of this review is to approve


the software detailed design document as a basis for further
development work.

 Software Verification Review: The purpose of this review is to


approve the test plan. It is the evaluation of the adequacy and
completeness of the methods described.

 Functional Audit: This is held to verify that all the requirements in


the software requirements specification have been met.

45
 Physical Audit: This is held to verify that the software and its
documentation are internally consistent prior to delivery to the user.

 In-Process Audit: In-Process audits of a sample design are held to verify


the consistency of the design.

G. Configuration Management:

This Configuration Management section of the Software Quality Assurance


Plan covers configuration identification, configuration control, configuration
status accounting, and configuration auditing.

viii. Problem reporting and corrective action:

This section of the Software Quality Assurance plan describes the system,
which ensures that software problems are documented and resolved. It should be
a closed-loop system. All the problems should be promptly reported at
appropriate level, acted upon and resolved. Each problem should be analyzed to
determine its significance and causes and classified by category and each
problem must have severity level and a priority number.

For each problem, some corrective action and a target completion date should be
identified. The appropriate level of management should be made aware of the
problems and adverse trends. The corrective action taken will be evaluated
to ensure that it solved the problem without introducing any new
problems. Management should monitor the status of all unresolved problems.

H. Tools, techniques and methodologies:

Tools - SQA software tools include, but are not limited to, operating
system utilities, debugging aids, documentation aids, checklists, structuring
preprocessors, file comparators, structure analyzers, code analyzers, standards

46
auditors, simulators, execution analyzers, performance monitors, statistical
analysis packages, software development folder/files, software traceability
matrices, test drivers, test case generators, static or dynamic test tools, and
information engineering CASE tools.

Techniques - techniques include review of the use of standards, software


inspections, requirements tracing, requirements and design verification,
reliability measurements and assessments, and rigorous or formal logic
analysis.

Methodologies - methodologies are an integrated set of the above tools and


techniques. The methodologies should be well documented for accomplishing
the task or activity and provide a description of the process to be used.

I. Code Control:

Code control includes the items listed below:

 Identifying, labeling, and cataloging the software to be controlled

 Identifying the physical location of the software under control

 Identifying the location, maintenance, and use of backup copies

 Distributing copies of the code

 Identifying the documentation that is affected by a change

 Establishing a new version

 Regulating user access to the code.

47
J. Media Control:

The Media Control section of the Software Quality Assurance Plan


will describe how the media are to be protected from unauthorized access
or damage.

Security threats to a software project come from the following environmental


factors:

 Fire Damage

 Water Damage

 Energy Variations

 Structural Damage

 Pollution

 Unauthorized Intrusion

 Viruses and Worms

 Misuse of Software, Data and Services.

K. Supplier Control:

Prior to any purchase of software to support the development effort, SQA


and project members will define and provide complete requirements to the
supplier/vendor. The Software Tool Evaluation Process will be followed.
Part of the evaluation process will require the supplier or vendor to
describe their technical support, handling of user questions and problems,
and software product upgrades.

48
L. Records collection, maintenance and retention:

SQA activities are documented by records and reports that provide a


history of product quality throughout the software life cycle.

Measurement data collected will be reviewed for trends and process


improvement. All SQA records will be collected and maintained in the SDL or
archival storage for the life cycle of the product.

M. Gantt Chart (Time Scheduling)

Automated tools, specialized notations and modern techniques are


often used to develop software requirement specifications, architectural and
detailed designs and the source code. Management tools such as PERT, Gantt
charts, work breakdown structures and personal staffing charts may be used to
track and control progress.

Implementation

15 Days
Testing

10 Days
Coding

15 Days

Design

20 Days

Analysis

10Days

Gantt Chart

49
FUTURE SCOPE AND FURTHER ENHANCEMENT

By using this circuit and proper power supply we can implement various
applications Such as fans, tube lights, etc.

By modifying this circuit and using two relays we can achieve a task of opening
and closing the door.

This project gives us an opportunity to do a big project in future. The


applications stated above are some demo applications that are absolutely
possible with its future development.

Initially for the limitation of time and required fund we were able to develop just
a home appliance control system.

The system will also work using Laser sensor. So, we have a big work scope in
this sector. We hope that, we will be able to complete all the features needed for
its ultimate applications.

We can also use it for a classroom or big hall to provide light only in that part
which have people there.

We can also improve or update this project for fan, door, windows etc.

50
CONCLUSION

The smart home appliance control system was designed and developed for
minimizing the wastage of electricity.

We use 5V from Arduino board and use 12V DC power supply for relay
connection.

We use the photodiode for receiving laser light because it is low cost, low noise,
59 excellent linearity in output photocurrent over 7 to 9 decades of light intensity
and fast response times.

Finally, we design and develop a Arduino base smart home appliance control
system.

We fix the entire problem that we have. Finally, we successfully achieve our
primary goals.

In this study, the application of microcontroller with improved algorithm of


extended specifications has reduced the misuse of electricity and improves the
security system.

We see that our smart home appliance control system is efficient and the
production cost is low. So, our smart home appliance control system is suitable
for commercial.

51
BIBLIOGRAPHY

 en.wikipedia.org
 Beginner’s Guide to understand IOT [online]
 Prof, Asha Rawat ―Automated Room Light Controller with Visitor
Counter‖, Imperial Journal of Inter Disciplinary Research, Vol. 2, Issue 4,
2016
 Lnkedin Slide Share for ―Home Automation using Sensors‖

52

You might also like