Requirements

advertisement
CS 430
Bar Buster
Requirements Documentation
Caitlin Miller, Cameron Tucker, Chris Carpenter
11
Table of Contents
Table of Contents ...................................................................................................................... 2
1.0 Introduction ..........................................................................................................................5
1.1 Goals and Objectives .........................................................................................................5
1.2 Statement of Scope ..........................................................................................................5
1.3 Software Context ..............................................................................................................5
1.4 Major Constraints ..............................................................................................................5
2.0 Usage Scenario .................................................................................................................... 6
2.1 User Profiles ..................................................................................................................... 6
2.2 Use-Cases ........................................................................................................................ 6
2.3 Special Usage Consideration ............................................................................................ 9
3.0 Home .................................................................................................................................. 10
3.1 Data Description .............................................................................................................. 10
3.1.1. Data Objects ............................................................................................................ 10
3.1.2 Complete Data Model............................................................................................... 10
3.1.4 Data Dictionary......................................................................................................... 11
4.0 View/Select Bars ................................................................................................................. 12
4.1 Data Description ............................................................................................................. 12
4.1.1. Data Objects ............................................................................................................ 12
4.1.2 Complete Data Model .............................................................................................. 12
4.1.4 Data Dictionary ........................................................................................................ 12
5.0 Add Person ......................................................................................................................... 13
5.1 Data Description.............................................................................................................. 13
5.1.1. Data Objects ............................................................................................................ 13
5.1.2 Complete Data Model .............................................................................................. 13
5.1.4 Data Dictionary ........................................................................................................ 14
6.0 Log-in/Log-out.................................................................................................................... 15
6.1 Data Description ............................................................................................................. 15
6.1.1. Data Objects ............................................................................................................ 15
6.1.2 Complete Data Model .............................................................................................. 15
6.1.4 Data Dictionary ........................................................................................................ 15
7.0 Settings ............................................................................................................................... 16
7.1 Data Description .............................................................................................................. 16
2
Requirements Documentation
7.1.1. Data Objects ............................................................................................................ 16
7.1.2 Relationships ............................................................................................................ 16
7.1.3 Complete Data Model ............................................................................................... 16
7.1.4 Data Dictionary ......................................................................................................... 16
8.0 Functional Model and Description ...................................................................................... 17
8.1 Description for Function: Add Person .............................................................................. 17
8.1.1 Processing Narrative (PSPEC) for Function Add Person ........................................... 17
8.1.2 Functional Model and Description ............................................................................ 17
8.1.3 Function n Interface Description ............................................................................... 17
8.1.4 Performance Issues .................................................................................................. 17
8.2 Description for Function: Log In ...................................................................................... 18
8.2.1 Processing Narrative (PSPEC) for Function Log In .................................................... 18
8.2.2 Functional Model and Description ............................................................................ 18
8.2.3 Function Log In Interface Description ....................................................................... 18
8.2.4 Performance Issues .................................................................................................. 18
8.3 Description for Function: Log Out ................................................................................... 18
8.3.1 Processing Narrative (PSPEC) for Function Log Out ................................................. 18
8.3.2 Functional Model and Description ............................................................................ 18
8.3.3 Function Log Out Interface Description .................................................................... 19
8.3.4 Performance Issues .................................................................................................. 19
8.4 Description for Function: Enable Notification .................................................................20
8.4.1 Processing Narrative (PSPEC) for Function Enable Notifications .............................20
8.4.2 Functional Model and Description ............................................................................20
8.4.3 Function Enable Notifications Interface Description ................................................20
8.4.4 Performance Issues ..................................................................................................20
8.5 Description for Function: Disable Notifications ............................................................... 21
8.5.1 Processing Narrative (PSPEC) for Function Disable Notifications ............................. 21
8.5.2 Functional Model and Description ............................................................................ 21
8.5.3 Function Disable Notifications Interface Description ................................................ 21
8.5.4 Performance Issues .................................................................................................. 21
8.6 Description for Function: Select Bars ..............................................................................22
8.6.1 Processing Narrative (PSPEC) for Function Select Bars ............................................22
8.6.2 Functional Model and Description ............................................................................22
3
Requirements Documentation
8.6.3 Function Select Bars Interface Description ...............................................................22
8.6.4 Performance Issues ..................................................................................................22
8.7 Software Interface Description ........................................................................................ 23
8.7.1 External Machine Interfaces ..................................................................................... 23
8.7.2 External System Interfaces ....................................................................................... 23
8.7.3 Human Interface ....................................................................................................... 23
9.0 Behavioral Model and Description ..................................................................................... 24
9.1 Description for Software Behavior ................................................................................. 24
9.1.1 Events ...................................................................................................................... 24
9.1.2 States .......................................................................................................................25
9.2 State Transition Diagrams ............................................................................................. 26
9.3 Control Specifications (CSPEC) ....................................................................................... 27
10.0 Restrictions, Limitations, and Constraints........................................................................ 28
11.0 Validation Criteria ............................................................................................................ 28
11.1 Classes of Tests ............................................................................................................. 28
11.1.1 Security .................................................................................................................. 28
11.1.2 Usability ................................................................................................................. 28
11.1.3 Timeliness .............................................................................................................. 28
11.2 Expected Software Response ....................................................................................... 28
11.2.1 Security .................................................................................................................. 28
11.2.2 Usability ................................................................................................................. 28
11.2.3 Timeliness .............................................................................................................. 28
4
Requirements Documentation
1.0 Introduction
This document provides the requirements for an iPhone application that will contain a
database of photos and names from different users. The users can add more photos and
names and can specify and view posts from other users. The users will typically be bar
employees, and the photos and information will be about individuals that have been kicked out
of the venue due to being drunk and disorderly and will be rated upon the severity of their
actions. The users will be able to filter the amount of individuals they can view based on which
venues they want to view the posts from.
1.1 Goals and Objectives
The overall goals of the software is to compile and share a database of photos and
pictures to allow application users (bar employees) to view and add information to
allow other users to prevent drunk and disorderly individuals to enter their venue.
1.2 Statement of Scope
The first input is the user’s username and password. The main input for the application
will be the user taking a picture, uploading a picture, and filling out other information
describing the context of the post. The inputs will be put into a database, and the
output is the list of photos and information from the database. The user will be able to
set the range of scope of how many posts they can view by specifying and saving which
venues they want to be able to view posts from. The scope for the amount of posts the
user can view will vary by user and by zip code, which will limit the area of which venues
they can save to their user profile and view.
1.3 Software Context
This software would be used on iPhone’s within the bar industry. By bouncers being
able to keep track of individuals who are causing trouble in venues or individuals who
are intoxicated, it would help to keep the other bar staff at nearby venues safe from
fights and keep people out of the venue that would become troublesome because of
their intoxication level.
1.4 Major Constraints
Major constraint for businesses and users would be that they would need access to an
iPhone. They would also need the administrators to create and verify their accounts
before they would gain access to the full-usage of the application. As long as the
application’s software is up to date with the iPhone SDK’s, then the application should
be readily accessible.
5
Requirements Documentation
2.0 Usage Scenario
2.1 User Profiles
A user profile would contain a username and password to log in to the application. The
log-in would have to be verified by an administrator by the bar owner or general
manager creating an account, this way their business can be verified. Their user profile
would also contain the name of the business and the address. The venue would then
show up on a list of venues within a certain zip code according to their address, and will
show the information (photos, names of individuals) added by the user/employee at the
venue.
2.2 Use-Cases
Figure 1 shows the interaction between the user and the iPhone and iTunes software.
Figure 2 shows the interaction between the user and the main menu. Figures 3-7 show
the user’s interaction with each of the menu options.
iOS
iPhone Software
Phone User
iTunes Marketplace
Figure 1: Use-Case for Users Interaction with iTunes/iPhone
6
Requirements Documentation
Main Menu
Home
View/Select Bars
Add Person
Log-in/Log-out
Phone User
Settings
Figure 2: Use-Case for User Interaction with Main Menu
Home
Scroll Pictures
User
Figure 3.1: Use Case for User Interaction with Home Option
7
Requirements Documentation
View/Select Bars
View Individual
Bars
View All Bars
User
Figure 4: Use Case for User Interaction with the View/Select Bars Option
Add Person
Take Picture
Add Name
Add Description
User
Rate Severity
Figure 5: Use Case for User Interaction with the Add Person Option
8
Requirements Documentation
Log-in/Log-out
Log-in:
Username/Password
Log-out
User
Figure 6: Use Case for the User Interaction with the Log-in/Log-out Option
Settings
Turn On/Off Push
Notifications
Add New Bar to List
User
Figure 7: Use Case for User Interaction with the Settings Option
2.3 Special Usage Consideration
This software will run in an iPhone environment developed with the iPhone Software
Development Kits.
9
Requirements Documentation
3.0 Home
The Home screen provides a place for the user to view Persons provided by
other bars. Persons are arranged in a simple list of blocks (provided by bars to
which the user is subscribed) that are formatted much like a driver’s license with
the picture to the left and information listed on the right.
3.1 Data Description
The lone data object manipulated by the home screen is a Person object.
This object is provided by a User and contains a Person’s photo, name,
description, and a rating of the severity of the disturbance that was
caused. The Home screen allows a User to scroll through a list of patrons
that have been uploaded by the bars the User is subscribed to.
3.1.1. Data Objects
A Person object consists of an image of the person, name,
description, and a rating of the severity of the disturbance.
3.1.2 Complete Data Model
Username
List of
Followed
Bars
Boolean: Push
Notifications?
10
User
Password
Requirements Documentation
Person
ID
Views List of
Person Object
Severity
Image
Name
Description
3.1.4 Data Dictionary
Person objects contain:
A unique ID generated by the app, stored as an integer,
An image in .jpeg format,
A name, stored as a String,
A description, stored as a String, and,
A rating of the severity of the disturbance, stored as an
enumeration of red, yellow, and green representing severe,
moderate, and negligible, respectively.
11
Requirements Documentation
4.0 View/Select Bars
The View/Select Bars screen provides a list of bars in the area to the User using GPS
coordinates. The User may then select one or more bars to follow.
4.1 Data Description
The View/Select bars screen will provide a list of bars in the local area of
the User (determined by comparing GPS data). The user may then select
a bar to see their information, including address, name, and owner along
with an option to follow that bar.
4.1.1. Data Objects
Each Bar data object has attributes describing the GPS
coordinates, address, name, and owner of the bar.
4.1.2 Complete Data Model
Username
List of
Followed
Bars
User
Boolean: Push
Notifications?
Person
ID
Creates
Password
Image
Person Object
Severity
Name
Description
4.1.4 Data Dictionary
Bar objects contain:
A set of GPS coordinates stored according to the iPhone API,
an address, stored as a String,
the Bar’s name, stored as a String, and,
the Bar’s owner, stored as a String.
12
Requirements Documentation
5.0 Add Person
The Add Person screen allows a USER to create a Person object; therefore, the
only data objects that it deals with are Person objects. This screen displays fields
for the User to provide a Person’s photo, name, description, and a rating of the
severity of the disturbance that was caused.
5.1 Data Description
This object is provided by a User and contains a Person’s photo, name,
description, and a rating of the severity of the disturbance that was
caused.
5.1.1. Data Objects
Person objects contain a Person’s photo, name, description, and a
rating of the severity of the disturbance.
5.1.2 Complete Data Model
Username
List of
Followed
Bars
Boolean: Push
Notifications?
13
User
Password
Requirements Documentation
Person
ID
Creates
Person Object
Severity
Image
Name
Description
5.1.4 Data Dictionary
Person objects contain:
An image in .jpeg format
A name, stored as a String
A description, stored as a String, and,
A rating of the severity of the disturbance, stored as an
enumeration of red, yellow, and green representing severe,
moderate, and negligible, respectively.
14
Requirements Documentation
6.0 Log-in/Log-out
The Log-in/Log-out screen provides secure access to the application’s central
database.
6.1 Data Description
This screen creates two tokens containing a User’s username and
password combination once this information is passed in by the User.
6.1.1. Data Objects
The first object is the username. This object is created by the
system administrator and entered by the User for secure access.
The second object is the password. This password is created and
entered by the User to authenticate his or her login session.
6.1.2 Complete Data Model
Username
List of
Followed
Bars
Boolean: Push
Notifications?
User
Person
ID
Creates
Password
Person Object
Severity
Image
Name
Description
6.1.4 Data Dictionary
The username is stored as a String.
Passwords are stored and transmitted in a format that conforms to
the iPhone’s API for secure passwords.
15
Requirements Documentation
7.0 Settings
On the Settings Screen, a User may choose to push notifications onto their phone or
add a new bar.
7.1 Data Description
To push notifications, the user will manipulate a simple Boolean variable. When
adding a bar to their subscription list, the User will deal with Bar objects.
7.1.1. Data Objects
The Boolean variable controlling pushed notifications will evaluate
to ‘True’ to push notifications and ‘False’ to not push them.
When adding bars, the user will be presented with a list of Bar
objects consisting of bars with local addresses (based on GPS
coordinates). These will be displayed in a list ordered by ascending
distance from the current location.
7.1.2 Relationships
Relationships among data objects are described using an ERD- like form.
No attempt is made to provide detail at this stage.
7.1.3 Complete Data Model
An ERD for the software is developed
7.1.4 Data Dictionary
A reference to the data dictionary is provided. The dictionary is maintained
in electronic form.
16
Requirements Documentation
8.0 Functional Model and Description
8.1 Description for Function: Add Person
This function will consist of the user selecting a picture of the person being kicked out
of the venue, the person’s name, a description of the reason for kicking the person out
of the venue, and a severity rating of the offense.
8.1.1 Processing Narrative (PSPEC) for Function Add Person
The user will tap the icon to Add Person from the Menu to add a person to the list and a
new screen will appear for the user to fill in additional information. There will be the
option to take a new picture or select a previously taken picture. There will be a text box
to fill in the person’s name. The description area will also be a simple text box to fill in
the description of the person’s reason for being kicked out. Finally, there will be a scale
to rate the severity which could either be a 1-10 scale with 10 being extremely severe, or
it could consist of a subjective scale with descriptive words to describe the severity.
8.1.2 Functional Model and Description
A diagram showing the flow of information through the Add Person function.
Take
Picture
Menu
Add
Person
Database
Add
Picture
Figure 8: Data Flow for Add Person Function
8.1.3 Function n Interface Description
All the input for the function will be handled in one screen. The user will enter a picture
and/or a name, a description of the incident and the severity of the incident. This
information will be sent to the server to be stored.
8.1.4 Performance Issues
This function requires an internet or data network connection to send the information
to the server.
17
Requirements Documentation
8.2 Description for Function: Log In
This function will log the user into the system after entering their username and
password, and will make sure they are associated with a venue.
8.2.1 Processing Narrative (PSPEC) for Function Log In
The user will supply his/her credentials to log in to the venue. The system will check on
the server to make sure that the credentials are correct and will authorize the user to all
of their preferred functionality. Logging in will also prevent other users from logging in
to the same system.
8.2.2 Functional Model and Description
A diagram showing the flow of information through the Log In function.
Menu
Log In
Username/
Password
Database
Figure 9: Data Flow for Log In Function
8.2.3 Function Log In Interface Description
The user will be provided with text areas to input both a username and password to log
into the system. These values will then be sent to the server for authentication. The
user is then either verified or not verified and the program will then proceed accordingly
to that validation.
8.2.4 Performance Issues
The user must have an internet or data network connection in order to log in to the
system.
8.3 Description for Function: Log Out
This function will remove all functionality of a logged-in user from the device in use.
This will also allow someone else to log-in to that account from another device.
8.3.1 Processing Narrative (PSPEC) for Function Log Out
The user will tap on the icon to log-out and will then be prompted to confirm that
decision. Once confirmed, the user will be logged-out of the system.
8.3.2 Functional Model and Description
A diagram showing the flow of information through the Log Out function.
18
Requirements Documentation
Menu
Log Out
Database
Log In
Figure 10: Data Flow for Log Out Function
8.3.3 Function Log Out Interface Description
The icon to log-out will be located on the Home Screen. Once clicked, a confirmation
dialog will appear to let the user confirm whether or not they would like to log-out. If
the user confirms that they will be logging out, then a message is sent to the server to
log the user out of the system.
8.3.4 Performance Issues
The user must have an internet or data network connection to log out of the system.
19
Requirements Documentation
8.4 Description for Function: Enable Notification
This function will enable push notifications for the user, which will display real-time
notifications of new data from the application, even if the application is not directly
opened on the iPhone. If the user already has this feature enabled, then there will be
no change.
8.4.1 Processing Narrative (PSPEC) for Function Enable
Notifications
The user will simply tap the icon to enable push notifications and a message will be sent
to the server to enable push notifications for that user.
8.4.2 Functional Model and Description
A diagram showing the flow of information through the Enable Notifications function.
Settings
Enable
Notifications
Database
Notifications
Figure 11: Data Flow for Enable Interactions Function
8.4.3 Function Enable Notifications Interface Description
The input for this function consists of a tap on the icon for this function. The only
output is to send a message to the server to enable notifications for this user.
8.4.4 Performance Issues
The user must have an internet or data network connection to enable notifications.
20
Requirements Documentation
8.5 Description for Function: Disable Notifications
This function will disable push notifications for the user, which not remove real-time
notifications even when the application is not opened. If the user has already disabled
notifications then this function has no effect.
8.5.1 Processing Narrative (PSPEC) for Function Disable
Notifications
The user would tap the icon to disable notifications and a message would be sent to the
server to disable push notifications.
8.5.2 Functional Model and Description
A diagram showing the flow of information through the Disable Notifications function.
Settings
Disable
Notifications
Database
Figure 12: Data Flow for Disable Notifications Function
8.5.3 Function Disable Notifications Interface Description
The user will tap on the icon designated for disabling push notifications and this will
send a message to the server to disable notifications.
8.5.4 Performance Issues
The user must have an internet or data network connection to disable notifications.
21
Requirements Documentation
8.6 Description for Function: Select Bars
This function will allow the user to select all the bars that they would like to receive
kicked out lists from. This will allow bars to select which bars they feel are important to
get information from and limit the amount of information they are pulling from the
system.
8.6.1 Processing Narrative (PSPEC) for Function Select Bars
The user will tap the icon to begin selecting bars. Once they are in the bar selecting
interface, bars will be listed according to distance from their bar in ascending order. The
user will select the bars that they would like to receive notifications from and then
would submit that list. If the list has no changes, then the function is done. If there are
any changes, those changes are sent to the server to determine which push
notifications need to be sent to the user.
8.6.2 Functional Model and Description
A diagram showing the flow of information through the Select Bars function.
Settings
Select Bars
Database
Add Bar
to List
Figure 13: Data Flow for Select Bars Function
8.6.3 Function Select Bars Interface Description
The user will tap the icon to select bars. Then a list of bars will show up and the user will
select from those bars. That list will be submitted to the server.
8.6.4 Performance Issues
The user must have an internet or data network connection to select bars.
22
Requirements Documentation
8.7 Software Interface Description
8.7.1 External Machine Interfaces
The application will send information to the database in which other phones can pull
information from the database.
8.7.2 External System Interfaces
The software interfaces to a database where it stores the information from the users.
8.7.3 Human Interface
The software is based on human interaction to enter and store information.
23
Requirements Documentation
9.0 Behavioral Model and Description
A description of the behavior of the software is presented.
9.1 Description for Software Behavior
A detailed description of major events and states is presented in this section.
9.1.1 Events
A listing of events that will cause behavioral change within the system are
presented in this section.
9.1.1.1 Home
This option will allow the user to view the main screen where the list of photos
or names of the added people will be displayed according to the latest
timestamp. The user will be able to flip through the list.
9.1.1.2 Menu
This option will allow the user to choose and change which screen they are
viewing.
9.1.1.3 View/Select Bars
This allows the user to view all of their selected venues that they have saved to
their profile, then select a particular venue and view all the information that that
individual venue has added to the application/database.
9.1.1.4 Add Person
This option gives the user a form to add/take a picture, add a name, add a
description, and add the severity of why they were removed from the venue and
added to the list.
9.1.1.5 Add/Take Picture
This allows the user to take a picture with the camera function or pick a picture
from their photos folders.
9.1.1.6 Log-in/Log-out
This allows the user to enter a username and password, or to log-out and display
the screen for them to enter a different username and password.
9.1.1.7 Settings
This displays the option to change settings for the application such as the push
notifications and to add venues to their list of venues to view information from.
24
Requirements Documentation
9.1.2 States
A listing of states (modes of behavior) that will result as a consequence of events
is presented.
9.1.2.1 Home
This displays the list of people according to the latest timestamp.
9.1.2.2 Menu
This displays the list of options to go to other screens: Home, View/Select Bars,
Add Person, Log-in/Log-out, and Settings.
9.1.2.3 View/Select Bars
This displays a list of the user’s saved venues and the option to view their lists of
data individually.
9.1.2.4 Select Bar
Once the venue is selected, this displays a list of photos and people filtered to
display only the ones that the selected individual venue has added in time order.
9.1.2.5 Add Person
This displays the option to take or add a picture, add a name, add a description,
and add the severity.
9.1.2.6 Add Picture
This displays the user’s photo album in order to choose a photo to add to the
form.
9.1.2.6 Take Picture
This pulls up the phone’s camera application in order to take a photo.
9.1.2.7 Log-in/Log-out
This displays the form to fill in a username and password, and a button to logout.
9.1.2.8 Settings
This displays the options under settings – the switch button option to turn on/off
push notifications from the application to the main screen, and the option to
search for other venues to add to the user’s viewing list.
9.1.2.9 View Other Bars
This displays other venues within a certain distance of your zip code with the
latest ones joining the application being on the top of the list.
25
Requirements Documentation
9.2 State Transition Diagrams
This section depicts the overall behavior of the system.
Home
Select Bar
View/Select Bars
Take Picture
Menu
Add Person
Home
Add Picture
Log-in/Log-out
Notifications On
Notifications Off
Settings
View Other Bars
Figure 14: State Transition Diagram
26
Requirements Documentation
9.3 Control Specifications (CSPEC)
Control is managed by the software according to the actions that the software is
encountering.
As with all iPhone applications, if the software is overloading the phone, the application
quits and returns to the regular phone screen, in which the application must be
restarted to use.
When opening the application, the user is sent to the main screen which displays the
latest pictures that have been added to the database filtered by the user’s
specifications. The user can then control the screen they are viewing by selecting the
menu in which different screens can then be selected. There are different control
functions within each screen that will provide a customized application for the user that
is logged-in.
27
Requirements Documentation
10.0 Restrictions, Limitations, and Constraints
This application is being developed for the iPhone operating system and will be compatible
with the latest iPhone 3G, 3GS, and 4, and the iPod Touch according to the latest iPhone iOS
SDKs. The application will fit all screens, with the only concern is the difference in the screen
sizes between the iPhone 3G and 3GS, and the iPhone 4. The application will be designed to
work the most efficiently in providing the most up to date data that has been entered into the
database with the ability to handle more traffic at peak hours.
11.0 Validation Criteria
The software will be tested to ensure security, usability and timeliness.
11.1 Classes of Tests
11.1.1 Security
The software will be tested to see what unauthorized users are able to do.
11.1.2 Usability
The time to find and maneuver to menus and features will be measured.
11.1.3 Timeliness
The software will be measured to see how long certain functions and features take to
complete.
11.2 Expected Software Response
The expected results from testing are specified in this section.
11.2.1 Security
The software will be tested to ensure that an unauthorized user will not be able to sign
up for an account, will not be able to place people on the kicked out list, and will not be
able to register as a bar.
11.2.2 Usability
The software will be usable within two taps of the main screen. There should be no
menu or functionality that takes any more than two taps to find or to use.
11.2.3 Timeliness
The software should take no longer than 10 seconds to be usable when loading pictures
and no longer than 5 seconds otherwise. If the transfer speed will not allow this to be
achieved then a warning message must be displayed.
28
Requirements Documentation
Download