Sunteți pe pagina 1din 59

VIRTUAL MOUSE

Mini project report


On

VIRTUAL MOUSE
In the partial fulfillm 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

Created by UMESH RAM

Page

VIRTUAL MOUSE

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 :
2

Created by UMESH RAM

Page

VIRTUAL MOUSE

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:

Created by UMESH RAM

Page

VIRTUAL MOUSE

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
Created by UMESH RAM Page

VIRTUAL MOUSE

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 DESIGNCLASS DIAGRAMS

6. SOFTWARE TESTING
6.1. TEST PLAN

7. SYSTEM IMPLEMENTAION 8. MAINTENANCE 9. CONCLUSION 10. SCREEN SHOTS 11. BIBLIOGRAPHY


Created by UMESH RAM Page

VIRTUAL MOUSE

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

Created by UMESH RAM

Page

VIRTUAL MOUSE

IN TR O D U CTIO N

Created by UMESH RAM

Page

VIRTUAL MOUSE

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.

Created by UMESH RAM

Page

VIRTUAL MOUSE

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 signalprocessing 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.
Created by UMESH RAM Page

VIRTUAL MOUSE

1.2. SYSTEM ENVIRONMENT


The following hardware and software are required for the development and deployment of the system. 1.2.1 Hardware Processor Main Memory Hard Disk CD Drive Mouse Keyboard Display Other devices 1.2.2 Software Operating System Language Used Tools Other software : : : : Windows 2000/XP and Vista JAVA NETBEANS IDE JMF : : : : : : : : Intel Pentium IV 512 MB RAM 80 GB 52X speed Standard two button or higher Standard 101-102 key keyboard 15 Monitor Modem

Created by UMESH RAM

Page

10

VIRTUAL MOUSE

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

Created by UMESH RAM

Page

11

VIRTUAL MOUSE

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.

Created by UMESH RAM

Page

12

VIRTUAL MOUSE

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.

Created by UMESH RAM

Page

13

VIRTUAL MOUSE

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

Created by UMESH RAM

Page

VIRTUAL MOUSE

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 hundredkilo bytes. Java is garbage collected: Java programs dont 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 Javas 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 Javas 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.

Created by UMESH RAM

Page

15

VIRTUAL MOUSE

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.

Created by UMESH RAM

Page

16

VIRTUAL MOUSE

SYSTE M A N A L YSIS

Created by UMESH RAM

Page

17

VIRTUAL MOUSE

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

Created by UMESH RAM

Page

VIRTUAL MOUSE

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.

Created by UMESH RAM

Page

19

VIRTUAL MOUSE

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

Created by UMESH RAM

Page

20

VIRTUAL MOUSE

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

Created by UMESH RAM

Page

21

VIRTUAL MOUSE

SYSTE M R E Q U IR E M E N TS SPE CIFICA TIO N

Created by UMESH RAM

Page

22

VIRTUAL MOUSE

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

Created by UMESH RAM

Page

VIRTUAL MOUSE

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
Created by UMESH RAM Page

24

VIRTUAL MOUSE

High flexibility User friendly 3.5. General Constraints As the clients is not used to an automated environment they didnt 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

Created by UMESH RAM

Page

25

VIRTUAL MOUSE

SO FTW A R E Q U A LITY A SSU R A N CE PLA N

Created by UMESH RAM

Page

26

VIRTUAL MOUSE

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.

Created by UMESH RAM

Page

27

VIRTUAL MOUSE

Figure below shows the SQA organization with relation to the project organization.
Program Management/ Line Management (Sponsor) IV &V SEPO

SQA

Project Management SCM

Systems Engineering

Software Development

Software Test

System Test

Logistics

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 projects SQA function. 2. Identifying the quality factors to be implemented in the system and software.
Created by UMESH RAM Page

28

VIRTUAL MOUSE

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.

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.

Created by UMESH RAM

Page

29

VIRTUAL MOUSE

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 o o o o o o o Evaluate System Requirements Analysis Process Evaluate System Design Process Evaluate Software Requirements Analysis Process Evaluate Software Design Process Evaluate Software Tools Evaluate Software Implementation & Unit Testing Process Evaluate End-item delivery Process 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
Created by UMESH RAM Page

30

VIRTUAL MOUSE

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. b. c. d. e. f. SQA milestone dates (completed) SQA work scheduled (planned) SQA work completed (actual) SQA effort expended (planned) SQA effort expended (actual) 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.
Created by UMESH RAM Page

31

VIRTUAL MOUSE

CM Controlled: SRS, Design Spec, Source Code

Testing

Test Results

Expected Results

Test Configuration: Test Plan, Test Cases, Test Procedures, Test Tools, Test Environment

Evaluation

Errors

Corrections

Created by UMESH RAM

Page

32

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. b. c. d. e. f. g. Identifying, labeling, and cataloging the software to be controlled Identifying the physical location of the software under control Identifying the location, maintenance, and use of backup copies Distributing copies of the code Identifying the documentation that is affected by a change Establishing a new version Regulating user access to the code.

VIRTUAL MOUSE

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.

Created by UMESH RAM

Page 34

VIRTUAL MOUSE

4.6 Appendix AI CMM CRLCMP CI DBDD DCR DID FCA FQR IDD IEEE IRS IV&V KPA OJT PCA P/CR PDR PP&O PRR SCM SDD SDF SDP SDR SEI SEPO SME SPI SQA
SRR

Action Item Capability Maturity Model Computer Resource Life Cycle Management Plan Configuration Item Database Design Description Document Change Request Data Item Description Functional Configuration Audit Formal Qualification Review Interface Design Description Institute of Electrical and Electronics Engineers Interface Requirements Specification Independent Verification and Validation Key Process Area On-the-Job Physical Configuration Audit Problem/Change Report Preliminary Design Review Project Planning and Oversight Product Readiness Review Software Configuration Management Software Design Document Software Development File Software Development Plan System Design Review Software Engineering Institute Systems Engineering Process Office Software Management for Everyone Software Process Improvement Software Quality Assurance System Requirements Review

Created by UMESH RAM

Page 35

VIRTUAL MOUSE

SYSTE M D E SIG N

Created by UMESH RAM

Page 36

VIRTUAL MOUSE

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.
Created by UMESH RAM

Page 37

VIRTUAL MOUSE

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

Created by UMESH RAM

Page 38

VIRTUAL MOUSE

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:

Created by UMESH RAM

Page 39

VIRTUAL MOUSE

rectangle

represents

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. 2. 3. Combining data streams Splitting data streams Modifying data streams

Created by UMESH RAM

Page 40

VIRTUAL MOUSE

Data Flow Diagram of the Virtual Mouse System


Users Hand Movements

Web Camera taking image

1 image is stored

Taking image for Processing

Process image and find pixel positions

Mapping pixel positions to mouse inputs

Produce mouse movements and clicks

Created by UMESH RAM

Page 41

VIRTUAL MOUSE

Class Diagrams

Created by UMESH RAM

Page 42

VIRTUAL MOUSE

Created by UMESH RAM

Page 43

VIRTUAL MOUSE

SO FTW A R E TE STIN G

Created by UMESH RAM

Page 44

VIRTUAL MOUSE

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

Created by UMESH RAM

Page 45

VIRTUAL MOUSE

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 per specifications. To ensure during operation the system will perform as

Created by UMESH RAM

Page 46

VIRTUAL MOUSE

during operation.

To make sure that the system meets users requirements

To verify that the controls incorporated in the system

function as intended. outputs are correct. To make sure that during operation incorrect input and To see that when correct inputs are fed to the system the

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.

Created by UMESH RAM

Page 47

VIRTUAL MOUSE

SYSTE M IM PL E M E N TA TIO N

Created by UMESH RAM

Page 48

VIRTUAL MOUSE

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

Created by UMESH RAM

Page 49

VIRTUAL MOUSE

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.

Created by UMESH RAM

Page 50

VIRTUAL MOUSE

M A IN TE N A N CE

Created by UMESH RAM

Page 51

VIRTUAL MOUSE

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.
Created by UMESH RAM

Page 52

VIRTUAL MOUSE

CO N CLU SIO N

Created by UMESH RAM

Page 53

VIRTUAL MOUSE

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

Created by UMESH RAM

Page 54

VIRTUAL MOUSE

SCR E E N SH O TS

Created by UMESH RAM

Page 55

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

B IB LIO G R A PH Y
11. BIBLIOGRAPHY
BOOK S

Core Java 2 volume-1 & 2 -Cay S. Horst Mann, Gary Cornell Software Engineering A Practitioners Approach, Fifth Edition by Roger S. Pressman W E BSITE S

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

Created by UMESH RAM

Page 59

S-ar putea să vă placă și