Software Requirements Specification

joinherbalistΤεχνίτη Νοημοσύνη και Ρομποτική

17 Νοε 2013 (πριν από 3 χρόνια και 9 μήνες)

122 εμφανίσεις

Copyright © 2002 by Karl E. Wiegers. Permission is granted to use
, modify, and distribute this document.


Software Requirements
Specification

for

Motion Music

Controller

Version 1.0 approved

Prepared by
Rya
n

C. Bergsmith
, Kevin Warne, Ross Kelly

University of New Mexico, Electrical and Computer Engineering

10/23/2011

NOTE: This template is shareware downloaded

from
www.processimpact.com
. All shareware
payments are donated to the Norm Kerth Benefit Fund to help a consultant who is disabled
with a brain injury. Please visit
http://www.processimpact.com/norm_kerth.html

to make a
shareware payment ($10 suggested). Thank you!

eLearning versions of several popular Process Impact training seminars are available at
www.processimpact.com/elearning.shtml
, including “In Search of Excellent
Requirements,” “Exploring User Requirements with Use Cases,” “Writing High
-
Quality
Requirements,” “Software Inspections and Peer Reviews,” and “Project Management
Best P
ractices”. Single
-
user and corporate
-
wide site licenses are both available.

Software

Requirements Specification for <Project>


Page
ii


Table of Contents

Table of Contents

................................
................................
................................
..........................

ii

Revision History

................................
................................
................................
............................

ii

1.

Introduction

................................
................................
................................
..............................
1

1.1

Purpose

................................
................................
................................
................................
............

1

1.2

Document Conventions

................................
................................
................................
....................

1

1.3

Intended Audience and Reading Suggestions

................................
................................
..................

1

1.4

Project Scope

................................
................................
................................
................................
...

1

1.5

References

................................
................................
................................
................................
........

2

2.

Overall Description

................................
................................
................................
..................
2

2.1

Product Perspective

................................
................................
................................
.........................

2

2.2

Product Features

................................
................................
................................
..............................

2

2.3

User Classes and Characteristics

................................
................................
................................
.....

3

2.4

Operating Environment

................................
................................
................................
....................

3

2.5

Design and Implementation Constraints

................................
................................
..........................

3

2.6

User Documentation

................................
................................
................................
........................

3

2.7

Assumptions and Dependencies

................................
................................
................................
......

3

3.

System Features

................................
................................
................................
........................
4

3.1

System Feature 1

................................
................................
............

Error! Bookmark not defined.

3.2

System Featur
e 2 (and so on)

................................
.........................

Error! Bookmark not defined.

4.

External Interface Requirements

................................
................................
...........................
6

4.1

User Interfaces

................................
................................
................................
................................
.

6

4.2

Hardware Interfaces

................................
................................
................................
.........................

6

4.3

Software Interfaces

................................
................................
................................
..........................

6

4.4

Communications Interfaces

................................
................................
................................
.............

7

5.

Other Nonfunctional Requirements

................................
................................
.......................
7

5.1

Performance Requirements

................................
................................
................................
..............

7

5.2

Safety Requirements

................................
................................
................................
........................

7

5.3

Security Requirements

................................
................................
................................
.....................

7

5.4

Software Quality Attributes

................................
................................
................................
.............

7

6.

Other Requirements

................................
................................
................................
................
7

Appendix A: Glossary
................................
................................
................................
....................
8

Appendix B: Analysis Model
s

................................
................................
................................
.....
10

Appendix C: Issues List

................................
................................
................................
...............
10



Revision History

Name

Date

Reason For Changes

Version

Ryan Bergsmith

10/26/11

Initial Draft

A







Software

Requirements Specification for <Project>


Page
1


1.

Introduction

1.1

Purpose

This document specifies the software re
quirements for
Motion

Music Controller

(MMC), Revision
A,
Omega Pre
-
release. The
MMC serves as a Musical Instrument Digital Interface (MIDI) using
Kinect for Xbox 360, a motion sensing input device developed by Microsoft in 2010. Hand
movements and sp
eec
h are captured by the Kinect, interpreted and displayed via a graphical user
interface (GUI), and processed using advanced music recording
/playback

software. The
details of
the required software and the necessary components to implement the software are

d
escribed
in
the sections that follow
.

1.2

Document Conventions

Reference to any section in this document is italicized

as
in

… r
efer to
Section 1.2

Document
Conventions

for a description of the styles used in writing this document
.”


1.3

Intended Audience and Re
ading Suggestions

The intended audiences for this SRS consist of software developers, end users, and potential
investors.
All readers should refer to Section
2.1 Product Perspective

for background information
regarding the general context and origin of th
e MMC
, and
Section
2.2 Product Features
for a
concise list of the features available for this device
.

Also,
Appendix A: Glossary

d
efine
s

all the
terms nec
essary to properly interpret this

document
, including acronyms and abbreviations.



Software d
evelop
ers and
e
nd users should refer to
Section
2.3 User Classes and Characteristics

for information regarding the intended use of this software
,
Section

2.6 User Documentation
to
reference available

components delivered with the MMC software package (i.e. user
manuals and
on
-
help
),
and
Section 4 External Interface Requirements
for details
of the various interfaces used
.


Softwa
re developers in particular should refer to
Section 2.4 Operating Environment

for details of
the software/hardware environment used to im
plement and interact with the MMC and
Section 2.5
Design and Implementation Constraints

for a brief overview of the limitations of both the technical
and the legal aspects of this software.


Section 1.5 References

provides a listing of all the documents, w
eb addresses, etc. used and
referenced in both the development of the MMC software and the creation of this document.

1.4

Project Scope

The MMC

is intended to provide an application that utilizes the Kinect
as
a tool to create music and
to serve
as a contrib
ution to the open source
communities that are developing software tools
for
the Kinect. All source code, along with supporting documentation, will be made available for the
public.
The software package is meant to be used, critiqued, and
/or

edited by Kin
ect enthusiasts
to further the development of
the
tools available
to create

new and innovative applications
using
Kinect as a hardware interface.
Maintenance and supervision of the software will be ultimately left
to the contributors of the appropriate op
en forum communities.

Software

Requirements Specification for <Project>


Page
2


1.5

References

http://graphicleftovers.com/graphic/karate
-
stick
-
figure
-
set/


Will continue to grow.

2.

Overall Description

2.1

Product Perspective

The MMC was developed in response to the release of the Kinect Software Development Kit
(SDK) in A
pril 2011 by Microsoft. The SDK provides developers with the tools necessary to utilize
the Kinect’s most attractive features, speech recognition and
positional tracking of the body
(known as skeletal tracking). Since the release of the SDK, developers h
ave found thousands of
applications for the Kinect

in robotics, home security, gaming, music, and several other fields in
which a depth
-
sensing camera provides useful

and interesting capabilities
.


The MMC software package is essentially an appendix

to the

existing SDK

and is meant to be
used as both an innovative and authentic
tool

to create music as well as further the research o
f the
development of such tools
.




2.2

Product Features

The key features provided by the MMC include:




Skeletal Tracking


the

ability to interpret the position of key body parts, such as a person’s
hands, in three
-
dimensional space.




Speech Recognition


the ability to interpret voice commands to perform navigation
through the menu systems in the MMC.




Music
Recording/Playback


the ability to
capture/edit/save music created using the MMC

loaded onto a personal computer (PC)
.











Figure 1


Illustration showing that voice commands and hand movements are recognized by the
Kinect then interpreted and processed by a computer

containing the MMC software package
.

Software

Requirements Specification for <Project>


Page
3


2.3

User Classes and Characteristics

The user classes for the MMC software package are software developers, musicians, and gamers.


Software developers should have at least
a
basic understanding of all of the items discusse
d in
Section 2.4 Operating Environment
.


Musicians will benefit from previous knowledge/use of both MIDI controllers and music recording
software such as Fruity Loops
®

or
Cakewalk
®; however, the MMC software is intended to provide
users with the features l
isted in
Section 2.2 Product Features

without any prior knowledge/use of
these tools.


Gamers with experience playing games using the Kinect platform will have a better understanding
of the primary interface to the MMC software package, but
similarly to

mu
sicians
, no prior
experience is necessary to use the MMC.

2.4

Operating Environment

The Kinect SDK
was developed in

both C#/C++ programming languages
and must be run on a PC
with Windows 7 installed
as its operating system. Since the SDK serves as the foundat
ion for the
development of the MMC software package, the same
environmental
requirements exist

for it as
well
.

This implies that the deliverable is a Windows Executable File (.exe).


Microsoft Visual Studio 2010
served as the integrated development envi
ronment (IDE) for the
MMC

and DirectX is used for development of the graphical user interface (GUI).


The Kinect sensor is connected via Universal Serial Bus (USB) to the PC.


The music recording software used

in conjunction
with the MMC is Fruity Loops
-

Version
10.0
®
.

2.5

Design and Implementation Constraints

As mentioned in
Section 2.4 Operating Environment
, due to the Kinect SDK
’s

environment
restrictions
,
the MMC software package must adhere to the same constraints. Furthermore, the
Kinect SDK is NOT for

commercial use which directly implies that the MMC software package is
not for commercial use.



Due to the extreme complexity of the raw data streams that the Kinect
outputs

to the PC
,

the SDK
is necessary to use

for developing most applications using t
he Kinect
, which limits the functionality
to what has been provided and
it also
adds a
level

o
f interpretation for the SDK user.


Software licenses that must be obtained include licenses for Windows 7 and Fruity Loops
.

2.6

User Documentation

TO FOLLOW

2.7

Assumpti
ons and Dependencies


Software

Requirements Specification for <Project>


Page
4


<List any assumed factors (as opposed to known facts) that could affect the requirements stated in

the SRS. These could include third
-
party or commercial components that you plan to use, issues
around the development or operating envi
ronment, or constraints. The project could be affected if
these assumptions are incorrect, are not shared, or change. Also identify any dependencies the
project has on external factors, such as software components that you intend to reuse from
another proj
ect, unless they are already documented elsewhere (for example, in the vision and
scope document or the project plan).>

3.

System Features

3.1

Voice Recognition System (VRS)

3.1.1

Description and Priority


The voice recognition system will allow the user to naviga
te through the MMC’s page
system via a set of voice commands defined in the MMC software package. Refer to
Table 1 System Feature Priorities

for information regarding the priority of this
feature.

3.1.2

Stimulus/Response Sequences


In the instance that a pr
e
-
defined voice command is given, the VRS shall interact
with the MMC’s page system accordingly.

3.1.3

Functional Requirements

REQ
-
VRS
-
1:
The VRS shall

recognize speech patterns from a user for MMC page
navigation.
This functionality, as well as error ha
ndling, is provided by the
Kinect SDK.



3.2

Graphical User Interface

3.2.1

Description and Priority


The GUI provides a visual reference for interaction with the MMC’s page system,
consisting of instrument pages, menu pages, and other various pages as needed.

Refer to
Table 1 System Feature Priorities

for information regarding the priority of
this feature.

3.2.2

Stimulus/Response Sequences


In the instance of receiving a pre
-
defined hand/voice command, the GUI will provide
feedback corresponding to that comman
d. This includes, but is not limited to,
highlighting an activated Action Pad (AP), displaying the requested page, etc.

3.2.3

Functional Requirements

REQ
-
GUI
-
1:
The GUI shall display a page based upon the required format for that
page
.



NOTE: A su
bset of requirements will be generated as knowledge regarding the
requirement of each page is determined.


Software

Requirements Specification for <Project>


Page
5


3.3

Musical Instrument Digital Interface Messaging System (MIDIMS)

3.3.1

Description and Priority


The MIDIMS generates messages defined by the MIDI 1.0
Protocol. This enables
electronic musical instruments, computers and other electronic equipment to
communicate and synchronize with each other. Refer to
Table 1 System Feature
Priorities

for information regarding the priority of this feature.

3.3.2

Stimul
us/Response Sequences


In the event an Action Pad is activated, a MIDI message will be output to the DAW
with the purpose of generating a sound.




In the event that a MIDI related voice command is given, a MIDI message will be
generated to perform the comman
d’s intended function.

3.3.3

Functional Requirements

REQ
-
MIDI
-
1:
An Action Pad

event shall generate a MIDI message based upon the
required format for that message.




NOTE: A subset of requirements will be generated as knowledge regarding the
requir
ement of each MIDI message is determined.

3.4

Digital Artist Workshop (DAW)

3.4.1

Description and Priority


The DAW provides interpretation of MIDI message output from the MMC’s MIDIMS
for recording/playback functionality. Refer to
Table 1 System Feature Pri
orities

for
information regarding the priority of this feature.

3.4.2

Stimulus/Response Sequences


In the event that a MIDI message is received from the MMC’s MIDIMS, an action
specified by the MIDI 1.0 protocol will be performed.

3.1.3

Functional Requireme
nts

REQ
-
DAW
-
1:
The DAW shall respond to MIDI message based upon the MIDI 1.0
protocol.




NOTE: A subset of requirements will be generated as knowledge regarding the
requirement response of each MIDI message is determined.

3.5

Positional Recognition Syst
em (PRS)

3.5.1

Description and Priority


The Positional Recognition System (PRS) will track the XYZ
-
position of a user’s
hand movements which are used to interact with the MMC’s page system. In
particular, hand movements are used to activate an Action Pad.

Refer to
Table 1
System Feature Priorities

for information regarding the priority of this feature.

3.5.2

Stimulus/Response Sequences

Software

Requirements Specification for <Project>


Page
6



In the event that a user enters the Kinect’s active operating area, his/her hand
positions are continually tracked and pro
vided to the PC as XYZ positional data.

3.5.3

Functional Requirements

REQ
-
PRS
-
1:
The VRS shall

provide the PC with XYZ positional data of a user’s
hands.
This functionality, as well as error handling, is provided by the
Kinect SDK.





Table 1
-

System Feature Priorities

4.

External Interface Requirements

4.1

User Inter
faces

There will be a clean and clear graphical user interface. It is imperative that the user knows exactly
what state of our program he or she is in (e.g. Controlling a virtual piano or drum set). This will be
accomplished by having distinguishable contr
ol formats depending on the instrument being
accessed. Also, available voice commands will be displayed graphically and change throughout
depending on how essential they are. Different gestures will induce a specific musical effect and
therefore show a gra
phical indication of the gesture being recognized.

4.2

Hardware Interfaces

The two main hardware devices required are a computer and an Xbox Kinect. Each device
contains several different internal and external hardware components. The computer will need to
b
e complete and house up to date technology. The Kinect houses a variety of different sensors
and chips. In this project we will be exploring the functionality of the visual body tracking and audio
voice recognition. Visual tracking is dealt with using the
two onboard cameras and IR projector. To
implement various voice recognition functions the Xbox Kinect encloses four microphones. The
SDK allows us to interface with these sensors using programming languages such as C++ and C#.

4.3

Software Interfaces

This be
ing a software oriented project there will be many useful software interfaces. Many tools
pertaining to our project require Windows 7, therefore this will be used as our primary operating
system. Microsoft Word will be the word processor used to document t
he development of this
project.


The use of the SDK will be important in testing, generating, and compiling of code.
Communications between the SDK and Xbox Kinect sensors will be done using C++ and C#

Voice Recognition
System

Graphical User
Interface

MIDIMS

Digital Artist
Workshop (DAW)

Positional
Recognition

Overall
Priority

Medium

High

Medium

Medium

High

Cost

6

8

7

5

8

Benefit

6

9

7

7

9

Software

Requirements Specification for <Project>


Page
7


programming languages. To design the code being implem
ented the use of VIM acting as a text
editor is required.


Fruity loops will serve as a DAW for this project. There will be outgoing communications with fruity
loops to insure the desired musical action has been processed. MMC will interface with fruity lo
ops
to process audio based on recorded movement and gestures. Body motion will trigger a response
to change notes. Gestures will affect the attributes to the note/melody like increasing audio
amplitude.

4.4

Communications Interfaces

<Describe the requirements

associated with any communications functions required by this
product, including e
-
mail, web browser, network server communications protocols, electronic
forms, and so on. Define any pertinent message formatting. Identify any communication standards
that
will be used, such as FTP or HTTP. Specify any communication security or encryption issues,
data transfer rates, and synchronization mechanisms.>

5.

Other Nonfunctional Requirements

5.1

Performance Requirements

REQ
-
NF
-
1:
The PC used with the MMC shall have at le
ast a dual
-
core 2.66GHz
processor and 2GB of RAM.

5.2

Safety Requirements

Refer to the Kinect User Manual for safe interaction with the Kinect device (a link is provided in
Section 2.6 User Documentation
).

5.3

Security Requirements

It is stressed that the MMC is N
OT for commercial use.

5.4

Software Quality Attributes

The MMC software package is intended to further the research/development of music related
Kinect applications.

6.

Other Requirements

<Define any other requirements not covered elsewhere in the SRS. This might

include database
requirements, internationalization requirements, legal requirements, reuse objectives for the
project, and so on. Add any new sections that are pertinent to the project.>


Software

Requirements Specification for <Project>


Page
8


Appendix A: Glossary

Action Pad (AP)
:

The name given to the compo
nents of the GUI that are used to generate
sounds.


Digital Artist Workshop (DAW)
:
A
n electronic system designed solely or primarily for recording,
editing and playing back digital audio.


Graphical User Interface

(
GUI
)
:

A

type of user interface that allow
s users to interact with
electronic devices with images rather than text commands.


Kinect
:
is a motion sensing input device
created
by Microsoft for the Xbox 360 video game
console
.


Musical Instrument Digital Interface

(
MIDI
)
:

An

industry
-
standard protoc
ol that enables
electronic musical instruments
,
computers and other electronic equipment to communicate and
synchronize with each other.


Musical Instrument Digital Interface Messaging System (MIDIMS)
:
The name given to the
MMC feature that provides MIDI
messages to the DAW.


Motion Music Controller

(
MMC
)
:

The name of the software package described in this SRS.


Positional Tracking System (PTS
)
:

The name given to the MMC feature that provides positional
data to the PC.


Software Development Kit (SDK)
:

A

s
et of development tools that allows for the creation of
computer applications. Note: The Kinect’s SDK is often referenced in this document and refers to
the SDK releases by Microsoft in April 2011 to aid in the development of Kinect
-
based
applications.


So
ftware Requirements Specification

(
SRS
)
:

A

requirements specification for a software system
that provides a

complete description of the behavior of a system to be developed
.


Voice Recognition System (VRS):

The name given to the MMC feature

that interprets

voice
commands.


Software

Requirements Specification for <Project>


Page
9



Software

Requirements Specification for <Project>


Page
10


Appendix B: Analysis Models




<Optionally, include any pertinent analysis models, such as data flow diagrams, class diagrams,
state
-
transition diagrams, or entity
-
relationship diagrams
.>

Appendix C: Issues List

< This is a dynamic list

of the open requirements issues that remain to be resolved, including
TBDs, pending decisions, information that is needed, conflicts awaiting resolution, and the like.>