Challenge Your Friends
Software Requirements Specification
COP4331 Processes in Object-Oriented Programming | Fall 2014 | Group 12 - Project 17
Modification history:
Version |
Date |
Who |
Comment |
v0.0 |
9/16/14 |
Luis Duque |
Template Added |
v1.0 |
9/16/14 |
Luis Duque |
Added to Assumptions, Definitions, Applicable Standards, and Specific Requirements |
v1.1 |
9/16/14 |
Alex Berliner |
Updated documentation, data requirements, resource requirements, and quality assurance requirements |
v2.0 |
11/16/14 |
Alan Birmaher |
Overall update and clean up to the page |
Team Name: The Spungos' Turbo Wall-Hacks
Team Members:
Contents of this Document
SECTION 1: Introduction
Software to be Produced:
Reference Documents:
Applicable Standards:
Definitions, Acronyms, and Abbreviations:
SECTION 2: Product Overview
Assumptions:
Stakeholders:
Event Table:
Event Name |
External Stimuli |
External Responses |
Internal data and state |
App starts |
User opens app |
User is prompted to log into twitter. The app will then notify the user of any given challenges and allow them to use the rest of the app's functionality. |
The app checks if the log in attempt was valid. |
User creates challenge |
User has pressed create challenge button |
The challenge is store to the phone's local storage for use in other aspects of the application. |
Scan the device and the internet for currently top-ranked challenges and challenges that are stored on the phone. |
User sends challenge |
User has pressed send challenge button |
The app notifies the user of the challenge being sent. |
Scan the device for currently created challenges that are stored on the phone. |
User receives challenge |
Data from the Twitter API indicates that a tweet has been issued challenging the user |
The app notifies the user of the challenge and asks if they wish to complete it or store it for later |
The challenge being issued is stored on the user's phone. |
User accepts challenge |
User has pressed create challenge button |
The app notifies the user that the challenge has been accepted and asks if they would like to issue the challenge to others. |
The app changes the flag of the current challenge to "accepted". |
User completes challenge |
The user clicks on a challenge that is currently open and clicks "complete challenge". |
The app will prompt the user to share the video of their challenge being competed. |
The app will scan the device for media that can be uploaded to the internet. |
User shares challenge |
User has pressed the share challenge button. |
The app will upload the media of the user completing the challenge to twitter. |
The app marks the challenge as completed in the internal storage and links the media file to the challenge. |
Use case description:
SECTION 3: Specific Requirements
3.1 Functional Requirements:
No: 1
Statement: Users shall open the Challenge your Friends app from their Android device
1.1: Allow user to log in to the application using Twitter.
1.2: If an error occurs, bring user back to the welcome page and display an error.
Source: Luis Duque
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Test operational functionality, display, etc.
Revision History: 9/16/2014 - Oscar Hedblad
No: 2
Statement: User shall enter a mode in which an option to challenge friends or to accept
2.1: The user shall click either the “accept challenges” or “challenge a friend” key.
2.2: If the user chooses “accept challenges”, user will have option to either “accept” or “reject”.
2.3: If the user chooses “challenge a friend”, user will have the option to “send existing challenge” or “create new challenge”.
Source: Luis Duque
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Test buttons functionality and further test display
Revision History: 9/16/2014 - Oscar Hedblad
No: 3
Statement: In the case that the app crashes, the user shall relaunch the app and attempt to recover any data that was volatile at the time.
Source: Alex Berliner
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Crash the app with volatile data
Revision History: 9/16/2014 - Alex Berliner
3.2 Interface Requirements:
No: 1
Statement: The app shall have a user interface.
Source: Alex Berliner
Dependency: 3.1.1
Conflicts: None
Supporting Materials: Use case diagram
Evaluation Method: Attempt log in
Revision History: Alex Berliner, 9/18/14, creation
No: 2
Statement: The user shall be able to create and edit challenges
Source: Alex Berliner
Dependency: 3.1.1
Conflicts: None
Supporting Materials: Use case diagram
Evaluation Method: Attempt to create and then edit a challenge
Revision History: Alex Berliner, 9/18/14, creation
No: 3
Statement: The user shall be able to send and receive challenges to others
Source: Alex Berliner
Dependency: 3.1.1
Conflicts: None
Supporting Materials: Use case diagram
Evaluation Method: Attempt to send a challenge and see if it shows up on another user’s phone
Revision History: Alex Berliner, 9/18/14, creation
No: 4
Statement: The user shall be able to alert others that they have completed a challenge
Source: Alex Berliner
Dependency: 3.1.1
Conflicts: None
Supporting Materials: Use case diagram
Evaluation Method: Attempt to use the app’s functionality to post to twitter announcing that you have completed a challenge
Revision History: Alex Berliner, 9/18/14, creation
No: 5
Statement: The user shall be able to access the internet
Source: Alex Berliner
Dependency: 3.1.1
Conflicts: None
Supporting Materials: Use case diagram
Evaluation Method: Attempt to log in to the app
Revision History: Alex Berliner, 9/18/14, creation
No: 6
Statement: The user shall be able to upload media
Source: Alex Berliner
Dependency: 3.1.1
Conflicts: None
Supporting Materials: Use case diagram
Evaluation Method: Attempt to upload an image to twitter and check if it got there successfully.
Revision History: Alex Berliner, 9/18/14, creation
3.3 Physical Environment Requirements:
No: 1
Statement: The application should be supported and run on Android mobile devices, with at least 1 GB of ram, a 1GHz processor, and internet access. The mobile device must have Internet Access to be functional.
Source: Alex Berliner
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Attempt to run this app on a phone with the previously specified characteristics
Revision History: Alex Berliner, 9/18/14, creation
3.4 Users and Human Factors Requirements:
The User
No: 1
Statement: The user shall know how to use an android mobile device well enough to install apps
Source: Luis Duque
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Ask the user if they are competent in android
Revision History: Luis Duque, 9/18/14, creation
No: 2
Statement: The user shall be able to connect to the internet and has a twitter account.
Source: Luis Duque
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: When the user opens the app they will need to log in to both accounts to use the app
Revision History: Alex Berliner, 9/18/14
The Administrators
No. 3:
Statement: The administrators shall be able to manage a database. Documentation will be available for administrators in order to use/access server’s resources.
Source: Luis Duque
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: The documentation will alert them of their responsibilities
Revision History: Luis Duque, 9/14/14, creator
3.5 Documentation Requirements:
User Documentation
No: 1
Statement: Instructions on how to launch the application will be presented with the application itself (online).
Source: Luis Duque
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Check that the instructions are provided
Revision History: Luis Duque, 9/14/14, creator
No: 2
Statement: Instructions on how to use the application will be provided with the application itself (online).
Source: Alex Berliner
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Check that the instructions are provided
Revision History: Alex Berliner, 9/18/14, creator
No: 3
Statement: Users who are reading the documentation are assumed to have a working understanding of social media and the platforms that are being utilized: Android and Twitter.
Source: Alex Berliner
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Display a warning on the first run of the app alerting them that they need to know android and twitter.
Revision History: Alex Berliner, 9/18/14, creator
3.6 Data Requirements:
No: 1
Statement: Data about the user’s existing challenges, both those sent to friends and those sent from friends will be retained.
Source: Luis Duque
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Save a picture to the phone and check that it is present in the phone’s storage
Revision History: Luis Duque, 9/16/14, creator
No: 2
Statement: Private data regarding the user’s twitter account information shall be stored.
Source: Alex Berliner
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Check that a user is able to log in automatically after using the app.
Revision History: Alex Berliner, 9/16/14, creator
No: 3
Statement: A system to rank and determine the popularity of challenges is essential for this application.
Source: Luis Duque
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Check that the ranking system works by polling twitter.
Revision History: Luis Duque, 9/14/14
3.7 Resource Requirements:
No: 1
Statement: Administrators shall be trained to maintain and improve the software for the mobile application. The group will be available for email for basic issues with the application.
Source: Luis Duque
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Make sure that the administrators are competent in software development.
Revision History: Luis Duque, 9/14/14, creator
No: 3
Statement: We shall be using the agile development system to devise our schedules around. This system allows us to control development as we advance to maintain what we think should be the appropriate outcome.
Source: Alex Berliner
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Make sure that the agile system is working at our meetings.
Revision History: Alex Berliner, 9/14/14, creator
No: 4
Statement: We will be using the Android Development Tools for eclipse.
Source: Alex Berliner
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: None
Revision History: Alex Berliner, 9/14/14, creator
No: 5
Statement: We will be using the Twitter API to interface the android devices to the Twitter servers.
Source: Alex Berliner
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Make sure that the API is up to date with android.
Revision History: Alex Berliner, 9/14/14, creator
No: 6
Statement: Android devices are required for use in development.
Source: Luis Duque
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: None
Revision History: Luis Duque, 9/14/14, creator
No: 7
Statement: This project does not have major operating costs because it is being hosted on Twitter, a free platform.
Source: Alex Berliner
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: None
Revision History: Alex Berliner, 9/14/14, creator
3.8 Security Requirements:
No: 1
Statement: Before being able to access the content of the application, users shall be able to log in using an existing Twitter account. This will be prompted for upon the application launch.
Source: Luis Duque
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Thorough testing, and familiarize ourselves with Twitter/Facebook API’s
Revision History: Luis Duque 9/14/14, creator
No: 2
Statement: User data shall be isolated from others.
Source: Luis Duque
#Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Thorough testing, making sure that all user data is isolated from others
Revision History: Luis Duque 9/14/14, creator
No: 3
Statement: We shall determine a reasonable amount of time to backup the system based on the amount of server capacity available.
Source: Luis Duque
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Making sure that the amount of time required for backing up our system is given, as well as server testing
Revision History: Luis Duque 9/14/14, creator
3.9 Quality Assurance Requirements:
No: 1
Statement: The system shall be available at all times. This is easily accomplished because the service will be hosted entirely on Twitter.
Source: Alex Berliner
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Testing of the application to ensure that it runs at all times, since Twitter is constantly active
Revision History: Alex Berliner 9/16/14
No: 2
Statement: Faults in the system shall be in the realm of data tracking and whether twitter’s algorithm changes to edit their trends.
Source: Alex Berliner
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Debugging and error searching in order to find potential faults in the system
Revision History: Alex Berliner 9/16/14
No: 3
Statement: We shall be able to fix faults in the system by pushing an updated version of our app to the app store
Source: Alex Berliner
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method: Updating version and testing thoroughly that the update indeed fixes potential faults
Revision History: Alex Berliner 9/16/14
No: 4
Statement: Resource usage and response times only matter on the android device. Fast response times are easily accomplished on the android device based on the frequency by which the app polls twitter.
Source: Alex Berliner
Dependency: None
Conflicts: None
Supporting Materials: None
Evaluation Method:
Revision History: Alex Berliner 9/16/14
SECTION 4: Supporting Material
None
Template created by G. Walton (GWalton@mail.ucf.edu) on Aug 30, 1999 and last updated Aug 15, 2000
This page last modified by Alan Birmaher on 11/16/14