Published using Google Docs
Detailed Design
Updated automatically every 5 minutes

Online Survey App

Detailed Design

COP 4331, Fall, 2014

Team Name: Group # 2

Team Members:

Modification history:

Version

Date

Who

Comment

v0.0

9/30/14

Damla Turgut

Template

v0.1

10/17/14

Adam Hollifield

Issue Relevance Expansion

v0.15

10/19/14

Cody Showers

Design Tradeoff Elaboration

v0.2

10/20/14

Shawn Morrison

Added Sequence Diagrams

v0.3

10/21/14

Robert

Montalbano

Added SRS/Sequence Table

v0.4

10/21/14

Frank Yi

Design Issue Elaborations

v0.5

10/22/2014

Robert Montalbano

Class Diagram

v1.0

10/23/2014

Adam Hollifield

Final Detailed Design for submission


Contents of this Document

Design Issues

Detailed Design Information

Trace of Requirements to Design


Design Issues:

Issue Relevance:

Prototyping:

Technical Difficulties:

Design Trade-offs:


Detailed Design Information:

Create Survey:

Sequence diagram for the Create Survey functionality of the application.  User selects the appropriate button to Create Survey.  User is presented with the various options to make the survey, upon clicking submit, the survey is saved and entered into the database, making it available for other users to take.

Survey Sequence - Create Survey.png

Login:

Main activity for the application.   User enters credentials into appropriate fields.  Both the phone number user ID and the password are hashed and sent to the database.  The database then returns whether the user has entered valid credentials or whether a new account must be created.  If a new account must be created, the user enters their phone number and password, both are hashed, and entered into the server’s database.

Survey Sequence - Login and Enter Password.png

Logout:
Button present on the homepage for this activity.  The request is processed by the user database server and the user is returned to the login screen of the application.

Survey Sequence - Logout.png

Take Survey:

User starts this sequence by selecting the appropriate button on the home page.  The database server is then queried and returns a list of the current available surveys.  The user can then select a survey from the list.  The user is then redirected to the survey itself, completes the survey, and presses submit.  Once submit is pressed, the responses are submitted to the server and are available for reporting.

Survey Sequence - Take Survey.png

Update Personal Profile:

User presses the update profile button present on the homepage to start this sequence.  A user can view and modify all account attributes such as gender, age, and education level.  When a user submits their updated profile, the corresponding user attributes are saved on the database server and will be tagged in any surveys this user completes.

Survey Sequence - Update Info.png

View Results:

The user pushes a button on the homepage to begin this sequence.  The database is queried for a list of the current surveys.  The user then selects the survey for which they wish to view the results.  The results and demographic information are also returned along with the survey.  Lastly, a user may also view the comments made on the survey.

Survey Sequence - View Results.png

Class Diagram:

ClassDia.png


Trace of Requirements to Design:

* - Strong Correlation

Sequence Diagrams

Software Requirements Specification

Create Survey

Use Case – 6, 7, 8, 9

Functional Requirements – 1*, 2, 3, 4, 6, 7*, 8*, 9, 10, 11*, 12, 13, 15, 16, 17, 18, 19, 20, 23*, 24, 29, 30, 32*, 33*, 35, 47, 48

Login and Enter Password

Use Case – 1, 2

Functional Requirements – 1, 2, 3, 4, 5, 15, 17, 18, 19, 21*, 22*, 27, 29*, 30, 31*, 35, 40*, 45*, 46, 47, 48

Logout

Use Case – N/A

Functional Requirements - 2, 3, 4, 15, 18, 19, 21, 22, 27, 29, 31, 40*, 45*, 46

Take Survey

Use Case – 3, 4, 5, 7, 9

Functional Requirements - 1*, 2, 3, 4, 5, 8*, 9*, 10*, 11*, 12*, 13*, 15, 16*, 17*, 18, 19, 20*, 21, 22, 23*, 27, 29, 30, 31, 32*, 35, 46, 47, 48, 49

Update Info

Use Case – 2, 2a, 2b, 2c

Functional Requirements - 1*, 2*, 4*, 5, 15, 17, 18, 19, 21, 22, 27, 29, 30, 31*, 35, 40*

View Results

Use Case – 3, 4, 7, 8, 9

Functional Requirements - 1*, 3, 4, 5, 6*, 7*, 8*, 9, 11*, 12*, 13, 14*, 15, 16*, 17, 18, 19, 20*, 23*, 24*, 28*, 29*, 30*, 31, 32*, 33*, 35*, 48, 49