Virtual Mouse
-
Upload
sajjad-idrees -
Category
Documents
-
view
1.353 -
download
101
Transcript of 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
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 :
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:
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
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
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
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
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.
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.
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
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.
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.
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.
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.
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.
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.
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
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.
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.
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
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
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
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.
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
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
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
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.
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.
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.
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
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.
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
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.
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.
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
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
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.
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
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:
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
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
VIRTUAL MOUSE
Created by UMESH RAM Page 42
Class Diagrams
VIRTUAL MOUSE
Created by UMESH RAM Page 43
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
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
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.
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.
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
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.
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.
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
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.
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
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
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
VIRTUAL MOUSE
Created by UMESH RAM Page 56
VIRTUAL MOUSE
Created by UMESH RAM Page 57
VIRTUAL MOUSE
Created by UMESH RAM Page 58
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
********************************************* ***************************** ************