email@example.com Guy Tuori
Image courtey of http://www.co.orange.nc.us/library/cybrary/
0. Table of Contents
Table of Contents 2
Block Diagram 4
Explanation of Block Diagram Modules 5
Change Request Form 10
Integration Thread 12
Cross Reference Listing 14
The following constraints are given by the client.
The system must be reasonably priced so that an average family could afford it. The client's
system specification requires that the software cost no more than $500 and that it run on a laptop
costing no more than $600. Additionally, it must run on ordinary commodity hardware and must not
require an uncommon operating system.
The system must be compatible with a wide variety of input devices, including different types,
such as "jelly bean" switches, facial movement switches, and blow switches, and different
manufacturers. The client does not specify compatibility with any particular model of input device, but
the system should generically support the most common types.
The following assumptions were not specified by the customer but are based on our best
interpretation of their requirements.
The user, while they may be quadriplegic, will be able to competently utilize some type of
single-switch input device. No assumptions are made about the speed or precision with which they will
be able to use it.
The user will be literate and otherwise capable of using a computer, but only for their motor
The user will have an assistant, a person capable of full normal computer use with a mouse and
keyboard, to install and configure the system. Although the user ought to be able to customize the
system themselves, an assistant will be necessary for initial configuration.
The system will be installed on a functioning computer running Microsoft Windows.
The system will meet a to-be-determined set of technical criteria that are fully compatible with
the client's constraints regarding the hardware.
2. Block Diagrams:
3. Explanation of Diagram Modules:
The user is the handicapped person using the software and device. They are quadriplegic and
incapable of using anything other than their head or parts of their neck. They physically use the input
device to send signals to the computer.
3.2 Input Device:
The input device is one of many devices that could be used to send a simple high/low signal to
the computer. It could be a blow switch to be used by the user’s mouth, a head switch to be hit by their
head or a facial twitch switch just to name a few. Its sole purpose is to convert some physical action to a
high or low electrical signal to later be interpreted by the computer.
The assistant is an able bodied person capable of using a mouse and keyboard as well as having
a basic understanding of using a computer. They will be responsible for installing the program, either
through a CD or downloading it, as well as hooking up the device to the computer. Once it’s installed
they will also help with configuring it for its initial use and be able to step in for future changes if
necessary. For instance, if the user accidentally changed their scroll speed to a very fast one and
couldn’t react quick enough to revert it to a manageable speed, the assistant could step in and fix it.
The driver converts the high/low signal from the input device into a useable input (either a key
press or mouse click).
The program gets its input from the driver. The program then uses this as the button for
whatever it’s doing at that point. In its default mode it is auto-
scanning through eight options: left click, double click, right Clicks and other options
click, click&hold, click&drag, onscreen keyboard, specialized
application and options. These options will be displayed in a Screen during cursor mode
box at the top of the screen at all times. If selected, the five
types of clicks will pull up a horizontal line one pixel in thickness that will bounce between the top and
bottom of the screen at a progressively slower rate until output from the driver is sent. At this point it
will stop and pull up a vertical line that does the same thing. Once both have been stopped whatever
click command was originally selected will be sent to the pixel where the two lines intersect. From here
the lines will disappear and it will return to auto scanning through its eight base options. The onscreen
keyboard option will pull up an onscreen keyboard which will scan through rows of keys then individual
keys in that row with the driver output being the signal to stop it. After a key has been selected, it will
type that letter. Modifier keys will be “sticky” in nature; if selected, they will either remain active until
another key is pressed or deactivated if reselected. Advanced versions of this will have word suggestion
software and common, simple words as their own key on the keyboard (and, the, it, etc.). The
specialized applications menu will pull up a list of whatever specialized applications are installed on the
computer as well as shortcuts to any applications the user choses to put there. These would include
things like a media player or browser plug-in, each with their own way to efficiently use a single button
to accomplish their tasks. The final choice is the Options menu. This contains ways to adjust settings
like cursor speed and sound settings. It can also be used to configure the appearance of the UI by letting
the user change the color or placement of items. At all times the first choice in any menu is go back and
in cursor mode clicking on a pixel in the top box where the choices are displayed would cancel the click.
The storage contains the settings file. This file holds the cursor speed and sound option settings
(for example, whether sound is enabled and what voice/sound effects to use). It also holds custom
application settings and profiles.
3.7 Speech Database:
All actions on screen could have the option to also have a sound cue to assist users. This is the
database that would contain all the voice and sound files that would be used by the program.
The User Interface is what is shown to the user on the screen and output through the speakers.
Specifically it would be a box at the top of the screen that would be always be visible and never have
another window above or below it. It would look something like this:
Click Double Click Right Click Click&Hold Click&Drag Keyboard Applications Options
The options would be highlighted or indicated in some way as it was available for selection from the
auto-scan. Obviously these are just the symbols used for a mock up and the finished product would look
The only constraint imposed by the system on the input device is that it be capable of emitting
when activated a single click or key press. This means that an enormous number of devices of myriad
types are supported. The system could even be used from a standard computer keyboard, using one key
(such as the spacebar) as the input. Thus, the system should be able to accommodate virtually any user's
The system is designed to be as configurable as possible, by the end user as well as by an
The most important configuration option is the scan speed. This will govern the initial speed of
both scanning option lists and the mouse cross hairs. As a scan continues, before the user makes a
selection, the speed will slow incrementally to allow the user more precision; this value specifies the
initial speed. The rate of decrease and minimum speed will also be modifiable.
The appearance of the GUI will be configurable as well. A scanning list of options will be
displayable as text, as graphics, or as both. Additionally, the list may be placed on any edge of the screen
(so that, for example, users with wide-screen monitors can place it on the left or right side). In addition,
interface colors will be customizable.
Finally, the user will be able to set the level of auditory feedback, up to announcing each option
when it is highlighted or selected. Via the operating system, the user will be able to select from several
voices and modify the speed of speech.
The system should expose the user to few technical risks. As with any computer software, any
bugs or errors in the system could compromise the integrity of the computer or the files therein
As the system is designed partially to allow users to access the internet, it is important to
consider the risks that internet use could expose users to. While these risks, including privacy concerns
and downloading viruses or malware, are not unique to the system, they may be especially important to
its users, many of whom would not have had prior experience using the internet.
Depending on the type of input device used, the user could potentially have concerns with
repetitive motion strain in the muscles used to actuate the control were they to overuse the system.
Because the system is based in well-understood software, there are relatively few schedule
risks. Any software project has an inherent risk of schedule slip due to mistaken specification or
difficulties in implementation. Additionally, because the development team is small, the departure of a
single team member could greatly affect the schedule.
There are few budgetary risks. If the schedule should slip, the budget may become affected as a
result. Also, if ensuring compatibility with input devices is more difficult than anticipated, then it may be
necessary to purchase more varieties than would otherwise be planned for.
Change Request Form
For Customer Use
Person Requesting Change Name:
Description of Change
For Developer Use
Estimated Budget Impact
Estimated Schedule Change
Company Authorization Name:
Developer Authorization Name:
6. Change Request Form:
6.1 For Customer Use:
This is first filled out by the customer when they are requesting a change during the project, be
in a new feature or simply a change to an existing one. Upon completion it is sent to us.
6.2 For Developer Use:
This section is then filled out after we have determined the modifications to the schedule and
budget. At this point it is sent back to the customer for final approval.
6.3 Joint Authorization:
Lastly both parties sign off in this section making the change official.
7. Integration Thread:
The integration thread represents the fundamental skeleton of the system that will deliver its
primary function to its users. It will serve as a foundation for the rest of the system to be built upon.
Our integration Thread is made up of the following components:
7.1 Single-switch Input Device:
The device, should it be working properly, will take user’s click/press and transfer it into a
high/low signal to the driver.
The driver will convert all the high/low signals from the device to key presses for the program to
The program will provide basic functions for the users, such as:
- The ability to use a generic interface to interact with the vast majority of programs.
-The ability to navigate the desktop and manage programs and documents.
-The ability to surf the web using a graphical browser.
Any additional features and program can be added or upgraded in the future.
The UI will send sound and picture to the speakers and monitors respectively. In addition, the
user is able to change the screen resolution and sound volume easily.
8. Cross Reference Listing:
System Requirements SRS Section Description Section
All features must be usable from a Input Devices A list of the types of input 3.2
single-switch interface. devices and how they’d
The user must be able to access Interfaces A description of the mouse 3.5
virtually all computer functions the and keyboard emulator.
way a mouse and keyboard can. 7.3
The user must be able to browse Interfaces A brief description of the 3.5
the web. applications mode,
specifically the browser. 7.3
The user must be able to browse Interfaces A brief description of the 3.5
and play media files, using a media applications mode,
player with capabilities comparable specifically the media 7.3
to common software. player.
The user must be able to control Interfaces A brief description of the 3.5
external appliances using a special applications mode,
power strip attached to the specifically custom 7.3
The user must be able to enter text Interfaces A brief description of the 3.5
for purposes such as word applications mode,
processing or writing emails. specifically office software. 7.3
The user must be able to use an Interfaces A brief description of the 3.5
instant messenger tool to applications mode,
communicate over standard IM specifically an IM client. 7.3
The user must be able to type text UI, A description of the 3.8
to be spoken out loud through Configurability methods of outputting to
speakers. the user. 4