The Mousetrap Requirements are based on a subset of the IEEE 830 IEEE Recommended Practice for Software Requirements Specifications

1. Introduction

1.1 Purpose

The purpose of the Software Requirements Specification Document is to provide the requirements of the MouseTrap system. This document describes the desired behaviors of the system and discusses how MouseTrap performs.

1.2 Scope

MouseTrap is a GNOME Accessibility tool that aids users with disabilities. MouseTrap tracks the user using a web camera, and moves the cursor accordingly. Additionally MouseTrap allows the user to blink either eye to simulate mouse clicks. MouseTrap is designed to allow users who can’t operate a hardware mouse to still be able to interface with the computer.

1.3 Definitions, Acronyms, and Abbreviations

GNOME – A free and open source graphical user interface that runs on top of a computer’s operating system. GNOME is used on various Linux operating systems. GNOME Accessibility - The suite of software services and support in GNOME that allows people with disabilities to utilize all of the functionality of the GNOME user environment.

1.4 References

"Gnome MouseTrap." Foss2Serve. N.p., n.d. Web. 12 Sept. 2013. <>.

"MouseTrap." GNOME Wiki. N.p., n.d. Web. 12 Sept. 2013. <>.

"User Interface Guidelines for Supporting Accessibility." GNOME Accessibility Developers Guide. N.p., n.d. Web. 12 Sept. 2013. <>.

1.5 Overview

This document contains two additional sections. Section 2, “Overall Description”, provides a high-level overview of MouseTrap's functions, users, and constraints. Section 3, “Specific Requirements”, provides detailed descriptions of MouseTrap's functionality and interfaces.

Overall Description

2.1 Product Perspective

MouseTrap is currently a self-contained product. Upon completion, MouseTrap will look to be integrated within the GNOME Accessibility Suite.

2.2 Product Functions

This section describes the product functionality of MouseTrap at a high level. MouseTrap will:

  • Track the user’s forehead with a web camera.
  • Move the cursor based on the movement of the user’s head.
  • Display an interface to allow the user to see what the camera is tracking.
  • Allow the user to change preferences of how the cursor will move.
    • Hold: Interprets head movements as joystick movements.
    • Screen: Interprets head movements as real mouse movements.
    • Drag-Drop: Allows the user to drag the mouse pointer and drop it in a different position either horizontally or vertically.
  • Allow user to change general MouseTrap preferences.

    • Select Camera
    • Select Tracking Feature
    • Toggle Self View
    • Toggle Point Mapper
    • Flip Image
    • Enable Checking of CPU Usage
    • Enable Recalculation of Location on Tracking Feature
    • Set Debugging Level
    • Set Cursor Speed

2.3 User Characteristics

Mousetrap is being developed specifically for users who have little or no ability to move their arms. It is assumed that users with little arm mobility are still unable to operate a mouse and keyboard correctly. The users can only interact with the system through the use of head movement. This requires the user to have good control of their head movements.

Examples of Disabilities:

  • Spinal Cord Injury/Paralysis
  • Double Arm Amputee
  • Parkinson's
  • Cerebral Palsy

2.4 Constraints

MouseTrap is being developed in compliance with the GNOME User Interface Guidelines for Supporting Accessibility. MouseTrap must be developed and operated on a Linux OS. Mousetrap can also use nothing but data gathered from the webcam to aid the user.

2.5 Assumptions and Dependencies

An assumption for Mousetrap is Linux being the OS on any system using MouseTrap. The MouseTrap system is dependent on interfacing with GNOME.

2.6 Apportioning of Requirements

The first requirement that needs to be addressed is ensuring that MouseTrap tracks the user’s forehead correctly. The following requirement will be enabling cursor functionality. Finally, after both tracking and cursor movement are operational, additional features and preferences will be implemented. Currently, the project is still being worked on and is not ready for end user distribution.

3 Specific Requirements

3.2.1 Start Up MouseTrap

Input Run mousetrap from the command line
Action The program will boot
Output The MouseTrap window appears on screen and is now ready for use
Priority High

3.2.2 Follow Tracking Feature

Input User moves or turns their head in a specific direction
Action The camera will track the user's head movement
Output The cursor will follow user's head movement with regard to the selected cursor movement scheme
Priority High

3.2.3 Camera Preferences Select Camera

Input User selects their primary camera to use for tracking
Action The system will access the selected camera
Output The selected camera will display the image it sees
Priority High Select Tracking Method

Input User selects a method of head tracking
Action The system will follow the user's head according to the selected tracking method
Output The camera will follow either the user's head movement around the screen or the rotation of a stationary head
Priority Medium Toggle Self-View

Input The user clicks on the self-view box to turn the self-view window on or off
Action The system switches between having self-view on or off
Output If self-view is turned on, it will be visible. If self-view is turned off, it will be invisible
Priority Medium Flip Camera Image Orientation

Input The user clicks on the flip image box to flip the orientation of the camera image
Action The system changes the image by flipping it 180 degrees
Output If the box is unchecked, the image will be a mirror image. If the box is checked, the image will be flipped 180 degrees.
Priority Low Tracking Recalculation of User's Head

Input The user clicks the box labeled "Recalc"
Action The system will allow for the recalculation of the tracking feature
Output A button labeled "Recalculate" will appear on the user's screen and when clicked, it will cause MouseTrap's tracking feature to re-identify the user's head
Priority Medium Set Debugging Level

Input The user clicks on the "+" or "-" icon to increase or decrease debugging level.(10-50 with 10 being the lowest level)
Action The system increases or decreases the debugging level
Output After clicking apply, the debugging level is changed to the value set
Priority Low Set Cursor Sensitivity

Input The user clicks on the "+" or "-" icon to increase or decrease the cursor sensitivity(0-15 with 0 being the slowest sensitivity)
Action The system increases or decreases the sensitivity that the mouse moves across the screen in relation to the users head movement. The higher integer selected the faster the mouse will move, zero is the default.
Output After clicking apply, the cursor sensitivity is adjusted.
Priority Medium Access Help Manual

Input The user clicks on the "Help" button on the main user interface screen.
Action A new "Help" window is displayed
Output The help menu will be displayed with documentation detailing how to use MouseTrap and what particular buttons within the application do.
Priority Low Toggle Face Outline

Input The user selects the Face Outline option on the main ui screen.
Action System draws face outline rectangle if not present. If present, system removes face outline rectangle.
Output If the face outline is visible, it becomes invisible. If the face outline is invisible, it becomes visible.
Priority Medium

3.2.4 Cursor Movement Select Cursor Movement Method

Input User checks a box, which is specified with Screen, Joystick, and Drag and Drop on the UI, to select a movement method
Action System checks which box is selected and allows mouse movement accordingly
Output The mouse will move via: Screen, Direction of Head Movement (Joystick), or Drag and Drop
Priority High Move Cursor -Screen

Input User moves their head
Action Cursor follows how and where their head moves
Output Cursor is in position relative to where the users head is
Priority High Move Cursor - Joystick

Input User moves their head
Action Cursor moves in the direction the user's head has moved
Output While head is not at origin, cursor continues moving in the direction the head has moved
Priority High Move Cursor – Drag and Drop

Input User moves their head
Action Cursor moves in the direction the user's head has moved. When movement stops, system selects whatever item there is at that point, then waits for more movement and another pause to drop item.
Output Either the item is grabbed, or dropped
Priority Medium Click Left Mouse

Input The user blinks their left eye
Action The system left clicks on whatever the mouse cursor is currently hovering over
Output The appropriate action occurs related to whatever was clicked on
Priority High Click Right Mouse

Input The user blinks their right eye
Action The system right clicks on whatever the mouse cursor is currently hovering over
Output A context menu is brought up related to whatever the mouse was hovered over
Priority High Scroll Cursor

Input TBD
Action The system goes into "Scroll" mode.
Output The window currently under the cursor is scrolled rather than allowing for cursor movement
Priority Medium Click Drag and Drop Cursor

Input The user blinks both eyes, moves their head, and blinks both eyes again
Action The system goes into "drag and drop mode"
Output Widget under cursor for first user blink is moved to location of second user blink where it remains
Priority High

3.2.5 Usage Features Check CPU Usage

Input The user has enabled the CPU usage display
Action The system continually calculates the CPU percentage that it takes to run MouseTrap
Output The CPU percentage that it takes to run MouseTrap is displayed on the left side of the main menu screen
Priority Medium Recalculate Face Location of the Tracking Feature

Input User selects the button labeled Recalculate
Action The system will recalculate the position of the users face using the Tracking Feature in MouseTrap
Output The Tracking Feature will set new coordinates of the users face to use while calculating their position
Priority Medium

3.2.6 Close MouseTrap

Input The user selects the exit option
Action The program is closed
Output There will be a prompt asking the user when they would like MouseTrap to reopen before terminating
Priority High

3.4 Logical Database Requirements

MouseTrap will not utilize a database

3.5 Design Constraints

No particular design constraint requirements have been identified

3.6 Standards Compliance

In following with the GNOME User Interface Guidelines for Supporting Accessibility, mouse controls will be limited to one button, all mouse actions will be reversible, and the drag-and-drop control option will be accompanied with visual cues for the user to discern whether their desired action is valid or invalid.

3.7 Software System Attributes

MouseTrap has many key attributes including: security, reliability, and maintainability.
SecurityMouseTrap must insure that no other applications can utilize the web camera feed while MouseTrap is running. It is important to prevent another application from using the web camera image for any reason.
ReliabilityMouseTrap must work properly every time. Since MouseTrap will be the main interface for the user with disabilities to access the computer, it is important that it functions every time the user runs it. MouseTrap should maintain a 95% or higher uptime.
Maintainability – As system changes occur, MouseTrap must stay maintainable. Since MouseTrap must interface with GNOME, it is essential that updates to MouseTrap can occur as needed, without causing any downtime for the user.

Projects/MouseTrap/Requirements (last edited 2014-10-21 05:16:32 by AdamDevigili)