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