Top Banner
VIRTUAL MOUSE Created by UMESH RAM Page 1 Mini project report On VIRTUAL MOUSE In the partial fulfillment of 4 th semester of MCA By UMESH RAM (RegNo:95580058) DEPARTMENT OF COMPUTER APPLICATIONS COCHIN UNIVERSITY OF SCIENCE AND TECHNOLOGY KOCHI-22
59
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 1

Mini project report

On

VIRTUAL MOUSE

In the partial fu lfillm ent of

4 th sem ester of

MCA By

UMESH RAM (RegNo:95580058)

DEPARTMENT OF COMPUTER APPLICATIONS COCHIN UNIVERSITY OF SCIENCE AND TECHNOLOGY

KOCHI-22

Page 2: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 2

COCHIN UNIVERSITY OF SCIENCE AND TECHNOLOGY

COCHIN-682022

CERTIFICATE

This is to certify that the project report entitled “Virtual

Mouse" is a bonafide record of the project work done by Umesh Ram

(Reg No.95580058) in partial fulfillment of the requirements for the 4th

semester of MASTER OF COMPUTER APPLICATIONS in Department

of Computer Applications of COCHIN UNIVERSITY OF SCIENCE

AND TECHONOLOGY, COCHIN.

_______ ______________ Examiner Head of the Department

Submitted on :

Page 3: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 3

DECLARATION

‘I hereby declare that the project work entitled VIRTUAL

MOUSE is submitted in partial fulfillment of the requirements for the 4th

semester Master of Computer Applications and it is a report of the original

work done by me during the period of February– April in Cochin

University of Science and Technology, Cochin.’

Umesh Ram Place: Cochin Date:

Page 4: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 4

CONTENTS

TITLE

1. INTRODUCTION

1.1 PROJECT OVERVIEW

1.2 SYSTEM ENVIRONMENT

1.2.1 HARDWARE 1.2.2 SOFTWARE 1.2.3 OPERATING SYSTEM INFO

1.2.4 ABOUT THE LANGUAGE

1.2.5 ABOUT THE TOOL

2. SYSTEM ANALYSIS

2.1. PURPOSE 2.2. PROBLEM DEFINITION

2.3. FEASIBILITY

2.3.1 TECHNICAL FEASIBILITY 2.3.2 ECONOMIC FEASIBILITY 2.3.3 OPERATIONAL FEASIBILITY

2.4. EXISTING SYSTEM 2.5. PROPOSED SYSTEM

2.6. OVERVIEW

3. SYSTEM REQUIREMENTS SPECIFICATION

3.1 PURPOSE, SCOPE AND OVERVIEW

Page 5: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 5

3.2. FUNCTIONAL REQUIREMENTS

3.3. USER INTERFACE REQUIREMENTS

3.4. PERFORMANCE REQUIRMENTS

3.5. GENERAL CONSTRAINTS

3.6. NON FUNCTIONAL REQUIREMENTS

4. SQA PLAN

4.1 PURPOSE

4.2 SQA TASKS

4.3 STANDARDS, PRACTICES, CONVENTIONS, METRICS

4.4 TEST

4.5 TOOLS, TECHNIQUES AND METHODOLOGIES

4.6 APPENDIX

5. SYSTEM DESIGN

5.1. INPUT DESIGN 5.2. OUTPUT DESIGN 5.3. ARCHITECTURAL DESIGN-

CLASS DIAGRAMS

6. SOFTWARE TESTING

6.1. TEST PLAN

7. SYSTEM IMPLEMENTAION

8. MAINTENANCE

9. CONCLUSION

10. SCREEN SHOTS

11. BIBLIOGRAPHY

Page 6: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 6

ACKNOWLEDGEMENT

This Project itself is an acknowledgement to the inspiration, drive and

technical assistance contributed by many individuals. This project would have never

seen the light of this day without the help and guidance I have received.

I express my gratitude to Dr. K.V. Pramod, Head, Department of

Computer Applications, Cochin University of Science And Technology, Cochin,

Kerala for providing me with excellent infrastructure and awesome environment

that laid potentially strong foundation for my professional life.

I owe an incalculable debt to all staffs of the Department of Computer

Applications for their direct and indirect help.

I extend my heartfelt thanks to my parents, friends and well wishers

for their support and timely help.

UMESH RAM

Page 7: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 7

IN TR O D U CTIO NIN TR O D U CTIO NIN TR O D U CTIO NIN TR O D U CTIO N

Page 8: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 8

1.1 PROJECT OVERVIEW

VIRTUAL MOUSE

A virtual mouse is software that allows users to give mouse inputs to a

system without using an actual mouse. To the extreme it can also be called

as hardware because it uses an ordinary web camera. A virtual mouse can

usually be operated with multiple input devices, which may include an

actual mouse or a computer keyboard. Virtual mouse which uses web

camera works with the help of different image processing techniques.

In this the hand movements of a user is mapped into mouse

inputs. A web camera is set to take images continuously. The user must have

a particular color in his hand so that when the web camera takes image it

must be visible in the image. This color is detected from the image pixel and

the pixel position is mapped into mouse input. Depending upon the size of

the image taken by camera various scaling techniques are used because the

pixel position in the image will not have a correspondence with screen

resolution.

Page 9: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 9

IMAGE PROCESSING

Image processing is any form of signal processing for

which the input is an image, such as photographs or frames of video;

the output of image processing can be either an image or a set of characteristics

or parameters related to the image. Most image-processing techniques involve

treating the image as a two-dimensional signal and applying standard signal-

processing techniques to it. Image processing usually refers to digital image

processing, but optical and analog image processing are also possible. Here

image processing is in the sense that we are splitting each pixel of the image

into RGB components .

IMAGE ANALYSIS

Image analysis is the extraction of meaningful information

from images; mainly from digital images by means of digital image processing

techniques. Image analysis tasks can be as simple as reading bar coded tags or

as sophisticated as identifying a person from their face. In this project we do

various image analyzing techniques. The main thing done is the color detection.

At first we receive an image from the web cam. Then each pixel is retrieved

from the image and extracts the red, green and blue values (RGB) from each

pixel. Now we can easily detect a particular color since all the colors are

combinations of RGB values. Here we just to try to detect only Red Green and

Blue colors. This is done by traversing through the image, retrieving each pixel,

extracting RGB values and then comparing the color values to the RGB values.

In java the getRGB( ) method is used for extracting a pixel from a image.

Page 10: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 10

1.2. SYSTEM ENVIRONMENT The following hardware and software are required for the

development and deployment of the system.

1.2.1 Hardware

Processor : Intel Pentium IV

Main Memory : 512 MB RAM

Hard Disk : 80 GB

CD Drive : 52X speed

Mouse : Standard two button or higher

Keyboard : Standard 101-102 key keyboard

Display : 15” Monitor Other devices : Modem

1.2.2 Software

Operating System : Windows 2000/XP and Vista

Language Used : JAVA

Tools : NETBEANS IDE

Other software : JMF

Page 11: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 11

1.2.3 Operating System Info

WINDOWS XP OPERATING SYSTEM

The operating system used was Microsoft Windows XP. The

Windows XP provides a suitable environment for the smooth functioning of

the project.

Windows XP makes personal computing easy. Power,

performance, a bright new look and plenty of help when you need it.

Windows XP has it all, along with unmatched dependability and security.

Windows XP professional marks a new standard in business

software combining enterprise-class performance and reliability with

unprecedented ease of use. Built on the rock-solid foundation of Microsoft’s

proven Windows 2000 technology, Windows XP Professional contains all

the features of Microsoft Windows XP Home Edition, and includes new and

enhanced features designed especially for business and advanced use.

The all-new Help and Support Center in Windows XP is our

one-stop shop for:

� Clear how-to instructions

� Engaging start-to-finish articles

� Troubleshooting advice.

Special wizards give you step-by-step instructions to smooth

the way when connecting new devices and running new software.

Page 12: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 12

1.2.4 ABOUT THE LANGUAGE

JAVA:

Java is the first programming language designed from ground up with

network programming in mind. The core API for Java includes classes and

interfaces that provide uniform access to a diverse set of network protocols.

As the Internet and network programming has evolved, java has maintained

its cadence. New APIs and toolkit have expanded the available options for

the Java network programmer.

Java is both a programming language and an environment for

executing programs written in Java language. Unlike traditional compilers,

which convert source code into machine level instructions, the Java compiler

translates Java source code into instructions that are interpreted by the

runtime Java Virtual Machine. So unlike language like C and C++, Java is

an interpreted language

Java Environment:

The Java environment is composed of several separate entities

Java Language:

This is a language that follows object-oriented concept used to create

executable contents such as applications and applets. But Java is not pure

object oriented language, it does not support multiple inheritance & Operator

overloading.

Java Runtime Environment:

The runtime environment used to execute the code. It is made up of

the Java language and Java virtual machine. It is portable and it is platform

neutral.

Page 13: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 13

Java tools:

It is used by the developers to create Java code. They include Java

compiler, Java interpreter, classes, libraries and applet viewer.

Java Application:

Applications are programs written in Java to carry out certain tasks on

standalone local computer. Execution of a stand-alone program involves two

steps.

Compiling the source code in to byte code using javac.

Executing byte code program using Java interpreter

Java Applets:

Java applets are pieces of Java code that are embedded in HTML

document using the applet tag. When the browser encounters such code it

automatically download it and execute it.

Java Virtual Machine:

It is a specification to which Java codes must be written. All Java code

is to be compiled in this nonexistent virtual machine. Writing the code that

compiles in JVM ensures platform independence.

Page 14: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 14

Advantages of Java

Java is Robust:

Robust programs are those reliable programs that are unlikely to fail

even under the most unlikely conditions. Many languages like C do not have

this feature because they are relaxed in terms of type checking in terms of

programming errors. Java is strict about type declaration and does not allow

automatic typecasting. Also it uses a pointer model that does not overwrite

memory or corrupt data.

Java is secure:

Java allows creation of virus-free, tamper free systems to be created.

It ensures security in the following ways.

• Pointers and memory allocations are removed during compile time.

• The interpreter verifies all byte codes before executing.

• All Java applets are treated as entrusted code executing in trusted

environment.

Because Java was written to support distributed applications over the

computer networks, it can be used with a variety of CPU and operating

system architectures. To achieve this goal a compiler was created that

produces architecture-neutral object files from Java code.

Java is Portable:

Java byte code will be executed on any computer that has Java

Runtime Environment. The portability is achieved in the following ways.

• Java primitive data types and the behavior of arithmetic operations on

these data types are explicitly specified.

• The Java libraries include portable interfaces for each platform on

which the run time environment is available.

Page 15: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 15

• The entire Java system itself is portable.

Java is small:

Because Java was designed to run on small computers, Java system is

relatively small for a programming language. It can run efficiently on PCs

with 4MB RAM or more. The Java interpreter takes up only a few hundred-

kilo bytes.

Java is garbage collected:

Java programs don’t have to worry about memory management. The

Java system has a built in program called the garbage collector, which scans

the memory and automatically frees the memory chunks that are not in use.

Java is dynamic:

Fundamentally distributed computer environments must be dynamic.

Java is capable of dynamic linking new libraries, methods and instance

variables as it goes without breaking and without concern.

Java Swing:

The swing classes eliminate Java’s biggest weakness: Its relatively

primitive user interface toolkit. Swing provides many new components and

containers that allow us to build sophisticated user interfaces, far beyond

what was possible with AWT. The old components have been greatly

improved, and there are many new components, like trees, tables, and even

text editors. It also adds several completely new features to Java’s user

interface capabilities: drag-and-drop, undo, and the ability to develop our

own “Look and Feel”, or the ability to choose between several standard

looks. The swing components are all “lightweight”, and therefore provide

more uniform behavior across platforms, making it easier to test our

software.

Page 16: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 16

Reason for Using Java:

It is required to explore systems running different operating system. In

order to do so, there should be some way to connect to bridge those

operating systems so that all the differences between them are solved and the

functionalities are achieved. Also the functions performed in one system

should be able to transfer to another and the result should be able to reflect

there properly. Java serves as a bridge between these Operating systems.

Also Java is widely considered to be the best in developing network

applications.

The communication happens between Java Virtual Machines running

on the systems. When the client wants to perform the functionalities in

another system and see the result, a method in the remote system is invoked

from the client. The corresponding method in the remote system performs

the job and sends the results to the client that is reflected in its interface.

1.2.5 ABOUT THE TOOL

NETBEANS IDE

The Net Beans Platform allows applications to be developed from a

set of modular software components called modules. A module is a Java

archive file that contains Java classes written to interact with the Net Beans

Open APIs and a manifest file that identifies it as a module.

Page 17: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 17

SY STE M ASY STE M ASY STE M ASY STE M A N A L Y SISN A L Y SISN A L Y SISN A L Y SIS

Page 18: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 18

2. SYSTEM ANALYSIS

System analysis or study is an important phase of any system

development process. The system is studied to the minute detail and analyzed.

The system analyst dwelled deep into the working of the present system. The

system was viewed as a whole and the input of the system are identified. During

analysis phase for each problem identified many alternative solutions were

evaluated and selected the most feasible one. A feasibility analysis was

performed to evaluate possible solutions to recommend the most feasible one.

2.1 Purpose

The purpose of the project is to create a virtual mouse that works

with the help of a web camera. In this project a camera continuously takes

images of hand movements of a user, which is then mapped into mouse inputs.

This means that we can give inputs to computer without having any physical

connection with the computer and without having any hardware movements.

2.2 Problem Definition

To develop a software solution to a problem, the first step is to

understand the problem. The problem here is to develop a way so that humans

can interact with a computer without having any physical connection with the

computer. Many ideas were put forward but they all required physical

movement of hardware. Another idea put forward was to use the principle of

photoelectric effect. But for that a special hardware is needed and it is not

economically feasible. So the final decision is to develop a virtual mouse which

uses simple and cheap image processing techniques.

Page 19: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 19

2.3 FEASIBILITY STUDY

After the problem is clearly understood and solutions proposed,

the next step is to conduct the feasibility study. Feasibility study is defined

as evaluation or analysis of the potential impact of a proposed project or

program. The objective is to determine whether the proposed system is

feasible. There are three aspects of feasibility study to which the proposed

system is subjected as discussed below.

2.3.1. Technical Feasibility

Technical feasibility assesses whether the current technical

resources are sufficient for the new system. If they are not available, can

they be upgraded to provide the level of technology necessary for the new

system? It checks whether the proposed system can be implemented in the

present system without supporting the existing hardware. Since the virtual

mouse need only a web camera as an external hardware the software is

technically feasible.

2.3.2. Economic Feasibility

Economic feasibility determines whether the time and money

are available to develop the system. It also includes the purchase of new

equipment, hardware, and software. Since this project requires a web camera

it is cost effective. A software product must be cost effective in the

development, on maintenance and in the use. Since the hardware and

resources are already available with the organization and the organization

can afford to allocate the required resources.

Page 20: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 20

2.3.3. Operational Feasibility

Operational feasibility determines if the human resources are

available to operate the system once it has been installed. The resources that

are required to implement or install are already available with the

organization. The persons of the organization need no exposure to computer

but have to be trained to use this particular software. A few of them will be

trained. Further, training is very less. The management will also be

convinced that the project is optimally feasible.

2.4. EXISTING SYSTEM

The existing system is the physical mouse which means it is

physically connected to the computer and it requires physical movement of

hardware. It is not portable. It needs an external hardware too.

2.5. PROPOSED SYSTEM

The proposed system is a virtual mouse which works

with the help of a web camera. It is portable compact and very comfortable

to use. A camera continuously takes images of hand movements of a user,

which is then mapped into mouse inputs. Then the images are analyzed

using various image processing techniques and detect the position on the

screen. The user must have a particular color in his hand so that when the

web camera takes image it must be visible in the image. This color is

detected from the image pixel and the pixel position is mapped into mouse

input. Depending upon the size of the image taken by camera various scaling

Page 21: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 21

techniques are used because the pixel position in the image will not have a

correspondence with screen resolution.

2.6 .OVERVIEW

The software should be developed according to the system. The

user interface module should be developed in such a way that the user can

easily operate the system. It is the responsibility of the developer to give

training to the user. His most important responsibility is maintenance. He is

responsible to give support to the customer when they are getting problem

related to the software.

This project has following additional features • Written in Java, so it runs on Mac OS, OS/2, Unix, and almost all

versions of windows.

• Highly configurable and customizable

• Easily Portable

Page 22: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 22

SY STE M R E Q U IR E M E N TSSY STE M R E Q U IR E M E N TSSY STE M R E Q U IR E M E N TSSY STE M R E Q U IR E M E N TS

SP E CIF ICA TIO NSP E CIF ICA TIO NSP E CIF ICA TIO NSP E CIF ICA TIO N

Page 23: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 23

3. SYSTEM REQUIREMENTS SPECIFICATION

3.1 Purpose, Scope and Overview

The purpose of the project is to make a virtual mouse

which has no physical connection with the computer. It works with the help of

a web camera. It has a lot advantages over the existing physical mouse. It is

portable. It occupies less space and is very comfortable to the users. In this

system the camera continuously takes images and the images are analyzed using

various image processing techniques and mouse input is given to a particular

screen position. The user must have a particular color in his hand so that when

the web camera takes image it must be visible in the image. This color is

detected from the image pixel and the pixel position is mapped into mouse

input. Depending upon the size of the image taken by camera various scaling

techniques are used because the pixel position in the image will not have a

correspondence with screen resolution.

3.2. Functional requirements

The various Functional requirements of the system

can be summarized as follows:

• The system is will provide a good user interface through which the user

can interact with the system. The virtual mouse enables the user to give

mouse inputs.

• To work with media packages Java Media Framework should be

installed.

Page 24: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 24

• A text editor like Notepad also needed for editing the application.

• 3.3 User Interface Requirement

User Education and Training: -

To achieve the objectives and benefits expected from the

computer based system, it is essential for people who will be involved to be

confident of their role in the new system. This involves them in

understanding the overall system. As the system becomes more complex the

need for education and training is more and more important. Education of

the user should really have taken place much earlier in the project when they

were being involved in the investigation and design work.

System testing is an expensive but critical process that can

make as much as fifty percentage of the budget of the program development.

The common view of testing held by the user is that it is performed to prove

that there are no errors in the program. Therefore, the most practical

approach is with understanding that testing is the process of executing

programs with the intention of finding errors.

3.4. Performance Requirements

Considering the interactive nature of the task the system must have the

following characters.

• Minimum response time

• Efficient CPU utilization

• Less Memory space

• High reliability

Page 25: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 25

• High flexibility

• User friendly

3.5. General Constraints

As the clients is not used to an automated environment they didn’t

impose any stringent constraints over the system. But they put they forth some

important comment that is desirable for the proposed system.

• They want an effortless use of editor.

• As the editor is not used to an automated environment they want

the data I\O screens to be user friendly and considerably simple.

3.6. Other Non Functional Requirements

Nonfunctional requirements define system properties and

constraints it arises through user needs, because of budget constraints or

organizational policies, or due to the external factors such as safety

regulations, privacy registration and so on. Nonfunctional requirements are:

• Security

• Reliability

• Maintainability

• Portability

• Extensibility

• Reusability

• Application Affinity/Compatibility

• Resource Utilization

Page 26: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 26

SO F TW A R E Q U A L ITY A SSU R A N CE SO F TW A R E Q U A L ITY A SSU R A N CE SO F TW A R E Q U A L ITY A SSU R A N CE SO F TW A R E Q U A L ITY A SSU R A N CE

P L A NP L A NP L A NP L A N

Page 27: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 27

4. SQA PLAN

4.1 Purpose, Scope and Overview

The purpose of this plan is to define the Software Quality

Assurance (SQA) for “VIRTUAL MOUSE”. SQA tasks and responsibilities;

provide reference documents and guidelines to perform the SQA activities;

provide the standards, practices and conventions used in carrying out SQA

activities; and provide the tools, techniques, and methodologies to support

SQA activities, and SQA reporting.

This plan establishes the SQA activities performed throughout

the life cycle of the “VIRTUAL MOUSE”,

The goal of the SQA program is to verify that all software and

documentation to be delivered meet all technical requirements. The SQA

procedures defined herein shall be used to examine all deliverable software

and documentation to determine compliance with technical and performance

requirements.

4.2 SQA Tasks

Good software practice requires a measure of independence for

the SQA group. This independence provides a key strength to SQA; that is,

SQA has the freedom, if the quality of the product is being jeopardized, to

report this possibility directly above the level of the project. While in

practice this rarely occurs, for almost all problems are correctly addressed at

the project level, the fact that the SQA group can go above the project level

gives it the ability to keep many of these problems at the project level.

Page 28: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 28

Figure below shows the SQA organization with relation to the

project organization.

IV &V SEPO

SQA

SCM

SystemsEngineering

SoftwareDevelopment

SoftwareTest

SystemTest

Logistics

ProjectManagement

ProgramManagement/

Line Management(Sponsor)

Figure: “VIRTUAL MOUSE”, Organization

The following describes the functional groups that influence

and control software quality.

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

Page 29: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 29

II. 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 Program Management Plan.

III. System Engineering is responsible for:

1. Implementing the engineering practices, processes, and procedures as

defined in program/project planning documents.

IV Software Design/Development is responsible for:

1. Identifying, implementing, and evaluating the quality factors to be

implemented in the software.

V Software Test is responsible for:

1. Verifying, Implementing the software test practices, processes, and

procedures as defined in program/project planning documents.

VI System Test is responsible for:

1. Verifying the quality factors are implemented in the system (software

and hardware).

VII Logistics is responsible for:

1. Reviewing and commenting on the “VIRTUAL MOUSE” SQA Plan.

2. Implementing the quality program in accordance with this SQA Plan.

VIII Software Configuration Management (SCM) is responsible for:

1. Implementing the SCM practices, processes and procedures as defined

in reference (e) and other program/project planning documents.

Page 30: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 30

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

1. Implementing the practices, processes, and procedures as defined for

IV&V in program/project planning documents.

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

TASKS TO BE PERFORMED

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.

o Evaluate System Requirements Analysis Process

o Evaluate System Design Process

o Evaluate Software Requirements Analysis Process

o Evaluate Software Design Process

o Evaluate Software Tools

o Evaluate Software Implementation & Unit Testing Process o Evaluate End-item delivery Process

o Evaluate Configuration Management Process

4.3 STANDARDS, PRACTICES, CONVENTIONS AND METRICS

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

product, every individual assigned to the project will participate in quality

Page 31: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 31

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)

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)

4.4 TEST “VIRTUAL MOUSE” testing activity includes unit level testing,

integration testing, performance testing (CI Qualification Testing), and

acceptance testing (System Qualification Testing). Figure 6-1 provides the

Test Process Flow. SQA shall audit and verify that the software and test

documentation is subject to configuration management control. SQA shall

witness the tests and verify that test results are recorded and evaluated. SQA

shall coordinate the maintenance of Problem/Change Report (P/CR),

sometimes called Software Trouble Report (STR), logs with SCM and shall

verify that software changes are controlled according to reference (e).

Virtual mouse was tested in different light conditions to determine how it

works in different conditions. SQA shall witness regression-testing resulting

from P/CRs or STRs to verify the effectiveness of the correction.

Page 32: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 32

CM Controlled: SRS, Design Spec,

Source Code

Test Configuration: Test Plan, Test

Cases, Test Procedures, Test

Tools, Test Environment

Testing Test Results Expected Results

Evaluation

Errors

Corrections

Page 33: Virtual Mouse

VIRTUAL MOUSE

4.5 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 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. Where applicable, SQA will use SEPO organizational

processes and tailor the processes specific to the project.

CODE CONTROL

Code control includes the items listed below:

a. Identifying, labeling, and cataloging the software to be controlled

b. Identifying the physical location of the software under control

c. Identifying the location, maintenance, and use of backup copies

d. Distributing copies of the code

e. Identifying the documentation that is affected by a change

f. Establishing a new version

g. Regulating user access to the code.

Page 34: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 34

MEDIA CONTROL

Media control includes adequate protection from

unauthorized access.

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.

All supplier software has been operationally tested in the target

system. No future supplier software is planned.

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.

Page 35: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 35

4.6 Appendix

AI Action Item CMM Capability Maturity Model CRLCMP Computer Resource Life Cycle Management Plan CI Configuration Item DBDD Database Design Description DCR Document Change Request DID Data Item Description FCA Functional Configuration Audit FQR Formal Qualification Review IDD Interface Design Description IEEE Institute of Electrical and Electronics Engineers IRS Interface Requirements Specification IV&V Independent Verification and Validation KPA Key Process Area OJT On-the-Job PCA Physical Configuration Audit P/CR Problem/Change Report PDR Preliminary Design Review PP&O Project Planning and Oversight PRR Product Readiness Review SCM Software Configuration Management SDD Software Design Document SDF Software Development File SDP Software Development Plan SDR System Design Review SEI Software Engineering Institute SEPO Systems Engineering Process Office SME Software Management for Everyone SPI Software Process Improvement SQA Software Quality Assurance SRR System Requirements Review

Page 36: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 36

SY STE M D E SIG NSY STE M D E SIG NSY STE M D E SIG NSY STE M D E SIG N

Page 37: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 37

5. SYSTEM DESIGN

System design is the second phase of the software life cycle.

The system goes through logical and physical state of development. The user

oriented performance specification is extended into a design specification,

while designing the needed system. The design phase begins when the

Requirement Specification document for the software to be developed is

available. When the Requirement Specification activity is entirely in the

problem domain, design is the first step to move from the problem domain to

the solution domain. Design is essentially the bridge between the

requirements specification and the final solution for satisfying these

requirements.

5.1 INPUT DESIGN

Input design is the process of converting a user-oriented

description of the inputs to a computer-based business system into a

programmer-oriented specification. The design decision for handling input

specify how data are accepted for computer processing. Input design is a part

of overall design that needs careful attention.

The collection of input data is considered to be the most

expensive part of the system design. Since the inputs have to be planned in

such a way so as to get the relevant information, extreme care is taken to

obtain the pertinent information. If the data going into the system is incorrect

then the processing and outputs will magnify these errors. The goal of

designing input data is to make data entry as easy, logical and free from

errors as possible.

Page 38: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 38

The following are the objectives of input design:

• To produce a cost effective method of input.

• To ensure validation.

Effort has been made to ensure that input data remains accurate

from

The stage at which it is recorded and documented to the stage at which it is

accepted by the computer. Validation procedures are also present to detect

errors in data input, which is beyond control procedures. Validation

procedures are designed to check each record, data item or field against

certain criteria.

5.2 OUTPUT DESIGN

The output design phase of the system design is concerned with the

conveyance of information to the end users in user-friendly manner. The output

design should be efficient, intelligible so that the system relationship with the

end user is improved and thereby enhancing the process of decision making.

The output design is an ongoing activity almost from the beginning of the

project, efficient and well-defined output design improves the relation of the

system and the user. The primary considerations in the design of the output are

the requirement of the information and the objective of the end user.

The system output may be of any of the following

• A report

• A document

• A message

Page 39: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 39

5.3ARCHITECTURAL DESIGN

DATA FLOW DESIGN

Data flow diagram (DFD) was first developed by Larry

Constantine as a way of representing system requirements in a graphical

form; this led to modular design. A DFD describes what data flow (logical)

rather than how they are processed, so it does not depend on hardware,

software, and data structure or file organization. It is also known as ‘bubble

chart’.

A data Flow Diagram is a structured analysis and design tool

that can be used for flowcharting in place of, or in association with,

information-oriented and process-oriented system flowcharts. A DFD is a

network that describes the flow of data and the processes that change, or

transform, data throughout a system. This network is constructed by using a

set of symbols that do not imply a physical implementation. It has the

purpose of clarifying system requirements and identifying major

transformations that will become programs in system design. So it is the

starting point of the design phase that functionally decomposes the

requirement specifications down to the lowest level of detail.

A DFD can be considered as an abstract of the logic of an

information-oriented or a process-oriented system flow-chart. For these

reasons DFDs are often referred to as logical flow diagrams. The four basic

symbols used to construct data flow diagrams are shown below:

Page 40: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 40

A rectangle represents a data

source or destination.

A directed line represents the flows of

data, which is data stream.

An enclosed figure, usually a circle or

an oval bubble, represents a process

that transforms data streams.

An open-ended rectangle represents

data storage.

These are symbols that represent data flows, data sources, data

transformations and data storage. The points at which data are transformed

are represented by enclosed figures, usually circles, which are called nodes.

The principle processes that take place at nodes are

1. Combining data streams

2. Splitting data streams

3. Modifying data streams

Page 41: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 41

Data Flow Diagram of the Virtual Mouse System

1 image is stored

Users Hand Movements

Web Camera taking image

Taking image for Processing

Process image and find pixel positions

Mapping pixel

positions to mouse inputs

Produce mouse movements and clicks

Page 42: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 42

Class Diagrams

Page 43: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 43

Page 44: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 44

SO F TW A R E TE STIN GSO F TW A R E TE STIN GSO F TW A R E TE STIN GSO F TW A R E TE STIN G

Page 45: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 45

7. SOFTWARE TESTING

System testing provides the file assurance that software once

validated must be combined with all other system elements. System testing

verifies whether all elements have been combined properly and that overall

system function and performance is achieved.

Characteristics of a Good Test:

• Tests are likely to catch bugs

• No redundancy

• Not too simple or too complex

7.1 TYPES OF TESTING

7.1.1 Unit Testing

Unit testing focuses verification effort on the smallest

unit of software designs the module. To check whether each module in the

software works properly so that it gives desired outputs to the given inputs.

All validations and conditions are tested in the module level in the unit test.

Control paths are tested to ensure the information properly flows into, and

output of the program unit and out of the program unit under test. Boundary

conditions are tested to ensure that the modules operate at boundaries. All

independent paths through the control structure ensure that all statements in

a module have been executed at least once.

7.1.2 Integration Testing

The major concerns of integration testing are developing

an incremental strategy that will limit the complexity of entire actions

among components as they are added to the system. Developing a

Page 46: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 46

component as they are added to the system, developing an implementation

and integration schedules that will make the modules available when needed,

and designing test cases that will demonstrate the viability of the evolving

system. Though each program works individually they should work after

linking them together. This is also referred to as interfacing. Data may be

lost across interface and one module can have adverse effect on another.

Subroutines after linking may not do the desired function expected by the

main routine. Integration testing is a systematic technique for constructing

program structure while at the same time conducting tests to uncover errors

associated with the interface. In the testing, the programs are constructed and

tested in small segments.

Here our objective is that to edit, compile and execute Java

programs within a single platform. Using integration test plan prepared in

the design phase of the system developments guide, the integration test is

carried out and all the errors found in the system are corrected for the next

testing steps.

7.1.3 System Testing

When a system is developed, it is hoped that it performs

properly. In practice however some errors always occur. The main purpose

of testing and information system is to find the errors and correct them. A

successful test is one which finds an error.

The main objectives of system testing are

• To ensure during operation the system will perform as

per specifications.

Page 47: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 47

• To make sure that the system meets user’s requirements

during operation.

• To verify that the controls incorporated in the system

function as intended.

• To see that when correct inputs are fed to the system the

outputs are correct.

• To make sure that during operation incorrect input and

output will be deleted.

The scope of a system test should include both manual

operations and computerized. Operations system testing is a comprehensive

evaluation of the programs, manual procedures, computer operations and

controls. System testing is the process of checking if the developed system is

working according to the original objectives and requirements. All testing

needs to be conducted in accordance to the test conditions specified earlier.

Page 48: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 48

SY STE M IM P L E M E N TA TIO NSY STE M IM P L E M E N TA TIO NSY STE M IM P L E M E N TA TIO NSY STE M IM P L E M E N TA TIO N

Page 49: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 49

8. IMPLEMENTATION

System implementation is the conversion of new system into an

operating one which involves creating compatible files, training staff and

installing hardware. A critical factoring in conversion is not disrupting the

functioning of organization. User training is crucial for minimizing

resistance to change and giving chance to prove its worth.

Training aids user friendly manuals and healthy screens provide

the user with a good start. Software maintenance follows conversion to the

extent that changes are necessary to maintain satisfactory operations relative

to changes in the user’s environment. Maintenance often includes minor

enhancements or corrections to the problem that surface late in the systems

operations.

In the implementation phase, the team builds the components

either from scratch or by composition. Given the architecture document from

the design phase and the requirement document from the analysis phase, the

team should build exactly what has been requested, though there is still room

for innovation and flexibility. For example, a component may be narrowly

designed for this particular system, or the component may be made more

general to satisfy a reusability guideline. The architecture document should

give guidance. Sometimes, this guidance is found in the requirement

document.

Page 50: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 50

The implementation phase deals with issues of quality,

performance, baselines, libraries, and debugging. The end deliverable is the

product itself. During the implementation phase, the system is built

according to the specifications from the previous phases. This includes

writing code, performing code reviews, performing tests, selecting

components for integration, configuration, and integration.

The implementation includes the following things.

• Careful planning

• Investigation of system and constraints.

• Design the methods to achieve the charge over.

• Training the staff in the changed phase.

• Evaluation of change over method.

The method of implementation and time scale to be adopted

are found out initially.

Page 51: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 51

M A IN TE N A N CEM A IN TE N A N CEM A IN TE N A N CEM A IN TE N A N CE

Page 52: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 52

9. MAINTENANCE

When the system is in maintenance phase, some people with in the

system are responsible for collecting maintenance requests from users

and other interested parties. The process of maintaining system is the

process of returning to the beginning of system development phase until

changes implemented.

System maintenance is the activity that occurs following the

delivery of the software product enhancement to software products

adapting products to new environment and correcting errors. Software

products enhancement may involve providing new functional capabilities

improving user displays and modes of intersection or upgrading the

performance characteristics of the system.

Problem correction involved modification and revalidation of

software to correct errors. The process that includes the diagnosis and

correction of one or more error is known as corrective maintenance.

As the software is used recommendation for new capabilities,

modification and general enhancement may be obtained and this leads to

perfect maintenance when software is changed to improve feature

maintainability or reliability to preventive maintenance. For maintaining

this system the following have to be made strictly.

The executable generated several of the form and reports are only

given to the end users. The backup should be taken in order to safeguard

the system against any loss of data due to system manufacturing.

Page 53: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 53

CO N CL U SIO NCO N CL U SIO NCO N CL U SIO NCO N CL U SIO N

Page 54: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 54

10. CONCLUSION

All the suggestions forwarded during the software proposal have

been successfully completed and final threshold of application has been

crossed. Some errors were spotted out during the system testing and were

corrected. The system developed for the given conditions was found

working efficiently. More future work can be established on the project by

using artificial neural networks in combination with the system

Page 55: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 55

SCR E E N SH O TSSCR E E N SH O TSSCR E E N SH O TSSCR E E N SH O TS

Page 56: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 56

Page 57: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 57

Page 58: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 58

Page 59: Virtual Mouse

VIRTUAL MOUSE

Created by UMESH RAM Page 59

B IB L IO G R A P H YB IB L IO G R A P H YB IB L IO G R A P H YB IB L IO G R A P H Y

11. BIBLIOGRAPHY

B O O K SB O O K SB O O K SB O O K S

Core Java 2 volume-1 & 2 -Cay S. Horst Mann, Gary Cornell Software Engineering – A Practitioner’s Approach, Fifth Edition by

Roger S. Pressman

W E B SITE SW E B SITE SW E B SITE SW E B SITE S

********************************************* ***************************** ************