Implementation Presentation (early draft)

advertisement
Team Pavlov’s Dogs:
Mike Abegg – Team Leader
Chris Ballenger - Quality Assurance
Tom Scarborough – Designer
Alex Towell - Developer
1
Client
 Dr.
Michael G. Dudley
 Psychology Department
2
Psychology Department’s
Problem
Psych 111 students are required to
participate in six credit hours of
experiments designed by faculty and
students
 Posted in the basement of Alumni Hall
 Participants must sign up for an experiment
compatible with their schedule
 Bring a participant card to the experiment
 Experimenter stamps the card as proof of
participation
 Teachers evaluate cards for grade
3
Psychology Department’s
Problem

Cumbersome and insecure
 Lost participation cards
 Forged participation cards

Inconvenient
 Excess paperwork
 Must travel to Alumni Hall
 Grades generated manually
4
Psychology Department Needs
A system for managing the experiment
participation pool that is convenient,
secure, less error prone, and
automated.
 No lost/forged participation cards
 Nearly paperless
 No travel-time
 Automated report generation
5
Client Specified Requirements

Web-based
Rules for Using Participants from the SIUE Department of Psychology Participant Pool




Multi-user
Compatibility
 Existing system
 Existing workflow



Participant recruitment
o Researchers must use the provided recruitment forms.
o Forms will be posted only on the provided recruitment boards in the main hall of the psychology department.
o No undue inducement or enticements for participants are allowed on the recruitment forms. For example, phrases like
"Only 10 minutes" or "Easy Experiment!" are not allowed. This is to ensure voluntary participation.
o Include all the information that is asked for on the sign up sheets
o If you are not going to use one of the lines on the sign up sheet, cross it out rather than leave it blank
o The contact information you provide must be accurate. If you prefer not to give out your personal phone number or email address, you must make an effort to actively follow up on any messages or e-mails sent to whatever addresses you
provide.
o Sign up sheets and cover sheets must stay on the recruitment board until after the experiment has been run. If you need
to have access to them during your experiment, make a copy for yourself and leave the originals on the board.
Procedure for awarding credit
o The participant pool is a limited resource shared by many people; you may only award as much credit and run as many
participants as have been approved by the participant pool coordinator
o Experiment cards will be given to psychology 111 students the first week of class. These cards are used to keep track of
the credit they receive from participating in experiments. It is their responsibility to keep track of these cards.
o Once a participant has signed an informed consent form, you should stamp their card (using the stamp provided to you)
next to the row on the card for your experiment. Do not stamp a blank row. Participants should fill in the study
number, date, time, place, and # of credits before you stamp their card.
 We are required to provide credit to the participants before they actually participate in the experiment. This
prevents them from feeling pressured to stay in the experiment if they feel uncomfortable about it.
o Please sign your initials over the stamp.
o If a participant does not have his/her card, you may stamp anything that contains all the information provided above.
Additional (blank) cards can be obtained in the main Psychology Department office (AH-0118).
o If you find a lost card, hold onto it until your experiment is finished. If the lost card has not been claimed by that time,
please bring it to the participant pool coordinator's office (Dr. Rose, AH 0123).
o At the end of your experiment, you must return the stamp to the coordinator's office immediately, along with the
appropriate stamp return form. If you lose a stamp, you will have to replace it. Experiment stamps are a limited
resource that must be managed responsibly.
Missed Appointments by Participants
o Researchers are required to keep track of participants who do not show up or are late for their experiments. A penalty
equal to the amount of credit awarded by your experiment will be imposed for an unexcused absence
o An absence is excused if the participant canceled the experiment either by crossing out their name on the sheet or by
contacting the experimenter at least one hour in advance of the appointment. Thus, it is critical that participants be able
to contact experimenters at any time.
o A form has been provided for you to keep track of penalties. Once a week while your experiment is being run, fill out
this form and turn it in to the student working in the psychology resource center (AH 0302a). The resource center is
only open Monday thru Thursday. All penalties must be turned in not later than Thursday of each week. You may put
them in the Resource Center mailbox that is in AH-0118 if a resource center worker is not available.
Missed appointments by Experimenters
o If for any reason you must cancel an experimental session, it is your responsibility to personally contact each participant
who had signed up for your experiment as soon as possible (at least 24 hrs. in advance).
o If you cannot talk to a real person (not just leave a message) before the scheduled time of the experiment, you are
responsible for giving full credit to the participant if they actually show up for the experiment.
o You are responsible for arranging that credit be given to students who show up for appointments that you have
canceled; no one else will do this for you
o Collecting data from the participant pool is a privilege, not a right, and we must treat the participants with the same
amount of respect that we wish to receive from them
Other Responsibilities
o Appropriate appearance and conduct
o Adherence to all human participant guidelines and IRB regulations
o Thorough debriefing of participants
o Careful training and monitoring of all student assistants and others who will be coming in contact with human research
participants
Failure to adhere to the participant pool coordinator’s instructions for using the participant pool will result in loss of access to the pool for
a duration to be decided by the participant pool coordinator and the department chair.
6
Analysis Methods
Interviewed client
 Contextual inquiry

 Observed Psychology 111 students signing
up for experiments

Usability studies
 Paper prototypes

Feedback from client
7
Users

Participants
 Psych 111 students who participate in
experiments

Experimenters
 Psych students/faculty who design and
conduct experiments

Coordinators
 Administrator
 Generate participation reports
8
Basic Workflow Model
Experimenter
Participant
Experimenter
Experiment Experimenter posting an experiment
Posts
Selects
Experiment
Participant signing up for an experiment
Experimenter conducts an experiment
Conducts
Experiment
Participant
Participates
Coordinator
Evaluates
Experiments
Experiment
Experiment
Produces
Participant partakes in an experiment
Coordinator evaluating experiments
and produces a report
Report
9
Workflow
Experimenter Posting Experiment
Experimenter has experiment
ready to post
Experimenter fills out
experiment description and
schedule
Experimenter makes
experiment available for
participation
10
Workflow
Participant selecting experiment
Participant needs to find an
experiment to participate in
Find the list of experiments
Eliminate incompatible
experiments
Based on schedule and
experiment restrictions
Find an experiment they like
Sign up for an experiment
time slot
Student name,
class/section/instructor
11
Workflow
Experimenter conducting experiment
Participant participating in experiment
Experiment has been completed
Experimenter is prompted to indicate if the participant
participated
Experimenter marks if they did or did not
12
Workflow
Coordinator making report
All experiments have been conducted
Sort participants by class and section
For each participant
For each experiment they participated in
If they participated add the experiment’s value to
their participation score, if they did not subtract
Write out the participant’s score
Print out report
13
Consolidated Workflow Model
Users
Coordinator
Coordinator makes participation report
Report
Experiments
Experiment
Experimenter
Experiment
…
Experiment
Participant
Experiment
Participation
14
Requirements
Design Requirements

Built from analysis
All users need the ability to register with the system and submit and update user details (including
contact details). Participants and experimenters will be able to select their role at registration time but
only participants will be active without coordinator approval. Registration can be opened and closed by
the coordinator, when the registration is closed no new users may be registered unless done manually
by the coordinator.
Experimenters:


Thoroughly defined
Reciprocal feedback
with our client
Experimenters need the ability to post and conduct experiments. Some experimenters will conduct
experiments posted by other experimenters (for instance several experimenters conducting the same
experiment, it would be submitted only one time (for instance by a team leader) but conducted by more
than one experimenter). Some experimenters will only post experiments for others to conduct (like a
faculty member who will have several grad students run a particular experiment). By default the person
submitting an experiment would own it (be able to schedule time slots, be able to update details, ect...)
but they would have the ability to give other experimenters co-ownership. Experimenters will have the
ability to limit availability to a select list of students. Participants will only be able to sign up for an
experiment after the coordinator approves it. The number of credits it is worth is 1 credit per hour.
To conduct an experiment an experimenter will have to schedule one or more time blocks with it. As far
as our system is concerned the actual conducting of the experiment will simply be the experimenter
confirming that the participant showed up and did what was expected of them (or not) for the given
time block after the time block has expired (after it has started). An experimenter will also have the
option of denying retaking an experiment on the occasion that a participant fails to show up, but by
default they will be able to retake.
Experimenters should be able to cancel and update experiment details and time blocks (with restrictions
and notifications). On the event that an experimenter cancel’s an experiment all actively registered
participants will receive full credit from the experiment.
Participants:
Participants need to be able to set up and update a weekly availability schedule and search for
experiments that are compatible. From the resulting experiments a participant should be able to sign up
for time slots to participate in the experiment. Participants should be able to cancel their participation,
no later than 24 hours before hand, or requiring experimenter approval after that. As part of the
registration process a participant will need to fill out a demographic survey, experiments will be filtered
based on this. Some experiments may have additional requirements that the system cannot filter
automatically, in these situations the user should be alerted to them and required to read and confirm
15
Use Cases
Use Cases
Use Cases Applicable To All User Types
Returning user logs into the system


Made from design
Requirements
Helped to clarify functionality




Start at login page
In the returning users portion, fill in the username and password
Click ok
The main form appears
New user registers for the system and logs in for the first time







Start at login page
In the new users portion, click the “Register” button
Registration page opens
Fill in the fields listed under new user registration
Fill in the fields listed under demographic survey
Click the submit button
The main form appears
User recovering password






Start at login page
Click “Forgot Password?” link
Password recovery page opens
Fill in username and email
Click ok
Feedback page appears letting the user know that an email has been sent to them
User changes password

Used during usability testing








User logs in
From the main page click profile
My profile page appears
Click the “change password” link
Sub window opens
Fill in old password, new password and verify
Click the accept button
Sub window closes
Participant Use Cases

Helped in interface design
Participant changes their weekly availability schedule
16
Web-based Interface
17
Interface Overview
Main Navigation Menu
Displays main functionality
depending on user type
Main Interaction Pane
Displays the controls for the
functionality that the user has
selected from the main
navigation menu
Consistent Layout
18
Common Controls
Experiment
selection
Session selection
Date Selection
20
Page Relationship and
Functionality Diagram
• User will only have
access to
functionality that is
appropriate for their
user type
• Related functionality
is in the same page
P
E
C
Restrictions
Login
P/E
E/C
C/P
Add/Modify
Experiment
Registration
Main
C/E/P
C/P
P/E
P
Profile
Search
Experiments
Current
Experiments
Availability
Edit
E
Schedule
C/E
Confirmation/
Approval
C
Users
C
Semester
C
Admin
C
Stats
Monthly
Sessions
List Experiments
Profile
Add
E/C
Experiment
Delete
E/C
Experiment
Modify
E/C
Experiment
Search
Weekly
Schedule
Confirmation
Approve
Experimenter
Approve
C
Experiment
Approve Late
E
Cancelation
Confirm
E
Participation
C
Admin
Daily sessions
Detail view
Add
Session
Delete
E/C
Experiment
Modify
E/C
Experiment
Give
E/C
Ownership
E/C
Add session
E/C Add Session
Delete
Session
Adjust
E/C
Status
Cancel
P/E/C
Participatoin
E/C
P
Users
• Pages help define
modules
C
Add User
C
Delete User
E/C
Search
P/E/C
Modify
Profile
Sign up
Ownership
Semester
Close
Registraition
End
C
Semester
C
C
Make Report
21
Module Diagram
• Similar pages
grouped together
P
E
P/E
• Functionality that is
commonly needed
or used by other
modules is identified
C
E/C
Restrictions
C/P
Add/Modify
Experiment
Main
C/E/P
C/P
P/E
P
Search
Experiments
Current
Experiments
Availability
Edit
E
Schedule
C/E
Confirmation/
Approval
C
Users
C
Semester
C
Admin
C
Stats
Search
Confirmation
Approve
Experimenter
Approve
C
Experiment
Approve Late
E
Cancelation
Confirm
E
Participation
Add
E/C
Experiment
Delete
E/C
Experiment
Modify
E/C
Experiment
C
Daily sessions
Detail view
Add
Session
Delete
E/C
Experiment
Modify
E/C
Experiment
Give
E/C
Ownership
E/C
Confirmation
Management
Module
Admin
Add session
Delete
Session
Adjust
Status
Cancel
P/E/C
Participatoin
E/C
P
Users
Weekly
Schedule
Login
Login
Management
Module
Registration
E/C Add Session
E/C
Profile
Admin
Module
Monthly
Sessions
List Experiments
Profile
C
Add User
C
Delete User
E/C
Search
P/E/C
Modify
Profile
Sign up
Ownership
Experiment Management
Module
Session Management
Module
User Management Module
Semester
Close
Registraition
End
C
Semester
C
C
Make Report
Semester
Management
Module
Database
Abstraction
22
Database ERD
User
AvailabilityTimeslot

Two strong entity
types
ID {PK} : Integer
User ID {FK} : Integer
Start Time : Time
End Time : Time
Participation
ID {PK} : Integer
User ID {FK} : Integer
Session ID {FK} : Integer
Status : ParticipationStatus
has Participant
*
1
*
1
is
Participating
Participant
1
*
in
 User
 Experiment
Experimenter
Conducts
3 user types
 Participant
 Experimenter
 Coordinator
Many mapping
tables
*
1
1
PrerequisiteExperiments
ID {PK} : Integer
Experiment ID {FK} : Integer
Prerequisite{FK} : Integer
-PrimaryOwner
*
Owns
User Restriction
1
*
ID {PK} : Integer
User ID {FK} : Integer
Experiment ID {FK} : Integer
has
*
1
«enumeration»UserType
+Freshmen
+Softmore
+Junior
+Senior
+Participant
+Experimenter
+Coordinator
«enumeration»ParticipationStatus
«enumeration»DrinkingLevel
+None
+Moderate
+Heavy
+SignedUp
+Completed
+Missed
«enumeration»RestrictionMode
+Allow
+Deny
+None
1is restricted to
0..1
Restrictions
«enumeration»RelationshipType
+Single
+Dateing
+Married
+Divorced-Single
+Divorced-Dateing
experiment
ID {PK} : Integer
PrimaryOwner{FK} : Integer
Name : String
Credits : Rational
Abstract : String
Description : String
EthnicityRestrictionMode : RestrictionMode
UserRestrictionMode : RestrictionMode
1
«enumeration»EthnicityType
1
Experiment
1
Enumerations
+Caucasian
+Black, African American
+Hispanics
+Asian
+Pacific Islander
+Native American
other experiment
Requires
*
*
ID {PK} : Integer
Experiment ID {FK} : Integer
Experimenter ID {FK} : Integer
Start Time : Time
Location : String
MaxParticipents : Integer
ID {PK} : Integer
User ID {FK} : Integer
Experiment ID {FK} : Integer
1..*
*
«enumeration»StudentType

Owner
Experimenter
Participant
1
Session

ID {PK} : Integer
Student ID {UNIQUE} : String
User Name {UNIQUE} : String
User Type : UserType
First Name : String
Last Name : String
Email : String
Phone Number : String
Password : String
Class : String
Section : String
Gender : Character
DOB : Date
Ethnicity : EthnicityType
Student Status : StudentType
1
Smoker : Boolean
Drinker : DrinkingLevel
Relationship Status : RelationshipType
*
Ethnicity Restriction
ID {PK} : Integer
Experiment ID {FK} : Integer
Ethnicity : EthnicityType
ID {PK} : Integer
Experiment ID {FK} : Integer
Gender : Character
Smoker Status : Boolean
Drinker Status : DrinkingLevel
Relationship Status : RelationshipType
Minimum Age : Integer
Maximum Age : Integer
StudentStatus : StudentType
Other : String
Software Architecture
Presentation
Layer
DOM
Front-End
Client-Side
Scripting
events
Web Browser
Client-side
Server-side
AJAX path
Web Server
Back-End
Database
Server-Side
Scripting
Server-side scripting

Dynamic website - customize the server’s
response
 E.g., depending on user log-in type, client will get
different versions of Current Experiments page.

We could do this with client-side Javascript,
but…
 Would have to work around inconsistent Javascript
implementations
 Would make Javascript a requirement—deal
breaker
Security

Big security concerns
 Cross-site Scripting
 SQL Injection
 Never trust the end-user’s input
Deployment
Final system will be deployed as a
compressed file
 File will be decompressed into the web
root of a configured web server
 Setup script will be included in the
compressed file

 User will run the script
 System will be ready to go
27
The Plan
How we did it.
Tools
 Incremental Iterative Lifecycle Model
 Timeline and Milestones
 Responsibilities
 Risk management
 Test Plan
 Conflict Resolution

28
Tools

Programming Languages
 PHP, Javascript, SQL

Other Languages
 HTML/CSS, Smarty Templates

SVN
 version control system

PHPDoc
 documentation system
29
Lifecycle Model

Two phases
 Design
 Implementation

Design phase is user centered
 Contextual inquiry
 Thorough requirements
 Comprehensive interface design

Iterative Incremental Implementation
 Complete the implementation in a sequence of
passes
 Each pass has it’s own design and testing
periods
30
Design







Analyze the client’s problems and needs
Identify users
Identify existing work flow
Identify essential entities and functionality of the
users’ workflow
Design an interface capable of fulfilling the existing
work flow using these entities and functionality,
and a database capable of supporting the interface
Test the interface with subjects sampled from the
user base (if possible)
Establish modules that will encompass common
areas of functionality
31
Incremental Iterative Implementation
a.k.a. The “Drill”

A series of successive passes

Each pass builds upon the success of the
previous ones

Every pass allows for review and change in
the design if needed

Every pass has it’s own testing component

Provides good milestones

Reduces risk by making it easier to cut less
vital features and maintaining a working
codebase
32
Iterative Incremental Implementation

First Pass, ‘Structure’: HTML skeleton using Smarty
Templates and database implementation

Second Pass, ‘Behavior’: PHP implementation of basic
interfaces and database abstraction

Third Pass, ‘Functionality’: Database Integration

Fourth Pass, ‘Usability’: Common controls and basic
Javascript

Fifth Pass, ‘Advanced Features’: Ajax and other advanced
Features
`
33
Spring Schedule

What we did last semester
 Requirements Analysis
 Interface Design
 HCI Testing
 Database Design
 Planning
 Documentation
Feb 2009
ID
Task Name
Start
Finish
Duration
1
Requirements Gathering
1/20/2009
2/20/2009
32d
2
Requirements Specifiation
2/20/2009
2/28/2009
9d
3
Presentation Prep
2/10/2009
2/16/2009
7d
4
Project Definition Presentation
2/16/2009
2/16/2009
0d
5
Interface Design
2/20/2009
3/20/2009
29d
6
Database Design
3/5/2009
3/21/2009
17d
7
HCI testing
3/21/2009
4/26/2009
37d
8
Presentation Prep
3/24/2009
4/1/2009
9d
9
Design and Plan Presentation
4/1/2009
4/1/2009
0d
1/25 2/1
10
Presentation Prep
4/18/2009
4/22/2009
5d
11
Progress Report Presentation
4/22/2009
4/22/2009
0d
12
High Fidelity Prototype
4/26/2009
5/2/2009
7d
13
Doocumentation
4/21/2009
5/2/2009
12d
14
Presentation Preparation
4/26/2009
5/2/2009
7d
15
Final Presentation
5/5/2009
5/5/2009
0d
2/8 2/15 2/22 3/1
Mar 2009
Apr 2009
3/8 3/15 3/22 3/29 4/5 4/12 4/19 4/26 5/3
Final Fall Schedule
Original
Sep 2009
ID
ID
1
2
3
4
Task Name
Task Name
Structure
1
Structure
2
Structure Design
3
Structure Implementation
4
Structure Testing
Structure Design
Structure Implementation
5 Structure Completed
6
Behavior
7
Behavior Design
Structure Testing
Start
Start
8/24/2009
8/24/2009
8/24/2009
8/31/2009
8/31/2009
1d
9/1/2009
8/31/2009
7
11
Functionality
Behavior Design
0d
13d
9/14/2009
21d
1d
9/1/2009
9/4/2009
4d
9/5/2009
0d
9/22/2009
10/12/2009
21d
9/24/2009
3d
13d
12d
9/14/2009
9/25/2009
10/1/2009
Functionality Completed
11
Functionality16
12
Usability Design
Functionality17Design
18
Usability
Usability Implementation
10/7/2009
10/12/2009
13d
5d
10/12/2009
10/12/2009
0d
10/12/2009
10/13/2009
11/21/2009
11/2/2009
21d
41d
10/13/2009
10/12/2009
10/15/2009
3d
3d
10/16/2009
10/28/2009
13d
10/5/2009
10/16/2009
14
Usability Completed
Functionality20Testing
11/2/2009
11/14/2009
15
18
5d
30d
0d
23d
11/3/2009
11/6/2009
4d
Advanced Feature Implementation
11/12/2009
11/7/2009
11/20/2009
11/18/2009
14d
7d
Advanced Feature Testing
11/21/2009
11/20/2009
29d
22
Advanced Feature Design
23
Final Testing24
11/14/2009
11/2/2009
11/2/2009
11/19/2009
Functionality Completed
17
10/14/2009
8d
11/25/2009
Advanced Features
Usability
10/29/2009
10/12/2009
11/3/2009
21
16
9/30/2009
4d
10/12/2009
Functionality Implementation
Usability Testing
9/17/2009
29d
10/8/2009
13
19
0d
4d
13 Functionality Implementation
Behavior Testing
15
13d
9/21/2009
9
Behavior Completed
9/14/2009
9/17/2009
9/21/2009
10/12/2009
9/18/2009
9/22/2009
10
9/14/2009
9/21/2009
Behavior Implementation
12 Functionality Design
Functionality Testing
8d
9/21/2009
8
14
22d
9/13/2009
8/31/2009
9/18/2009
9/14/2009
Behavior Completed
8/31/2009
11/2/2009
11/2/2009
11/25/2009
12/18/2009
5d
11/25/2009
11/25/2009
0d
Final Testing
11/26/2009
12/17/2009
22d
Project Completed
12/17/2009
12/17/2009
0d
25
Advanced Features Completed
26
27
Project Completed
12/17/2009
12/18/2009
9/6
9/13
9/20
9/27
8/23 8/30
9/1/2009
Behavior
Behavior Testing
8d
6d
6
9
8/31/2009
1d
9/14/2009
10
Duration
8/30/2009
Structure Completed
Behavior Implementation
Finish
8/23 8/30
8/24/2009
9/14/2009
8/24/2009
Oct 2009
6d
0d
2d
Nov 2009
Sep 2009
Duration
8/25/2009
5
8
Finish
Oct 2009
10/4 10/11 10/18 10/25 11/1
9/6
9/13
9/20
9/27
Dec 2009
Nov 2009
Dec 2009
11/8 11/15 11/22 11/29 12/6
10/4 10/11 10/18 10/25 11/1
11/8 11/15 11/22 11/29 12/6 12/13
Responsibilities
Mike
Alex
Tom
Chris
Database
Abstraction
Confirmations
User
Management
Administration
Session Mgmt.
Module
Experiment
Management
Module
Participation
Mgmt. Module
JavaScript
Database
Experiment
Searching /
Listing
Session Control
(PHP)
Login Module
Security
Backups
Semester
Management
Quality
Assurance
User Listing /
Searching
38
Risk Management
Risk
 Complexities of Ajax
architecture
(days to weeks)

Mitigation
Interface should be useable without Ajax
features

Do not require Javascript. Resolve CSS
issues in first phase

Try to get the server set up before the end
of Spring semester, or use an alternate
server
Time constraints

Create a working version ASAP then
provide iterative enhancements thereafter
Redundant code between PHP
and Javascript
(weeks)

PHP code generates XML and HTML
results (of SQL queries) and Javascript,
when available, will interface with those
results

Browser compatibility issues
(days to weeks)

Server setup: LAMP
(days)


39
Risk Management (cont.)
Risk
Mitigation

Team member have
unfortunate event
(weeks to month)

Responsibility be reassigned to
other team members

Data Lost
(hours to months)

Everyone has redundant copy
because of SVN

Requirement Changes
(weeks to months)

Have client look over the
requirements and sign a contract
40
Testing: Design Phase

Database design
 Checked that our design supports use cases
 Consulted with Dr. Ehlmann (database
expert)

User interface design
 Conducted paper prototype interviews for
participant user interface
 Also did this for experimenter and
coordinator user interfaces, but had
scheduling problems
41
Testing: Implementation Phase

Produce iterative builds that progressively
implement design

Each iteration will have a testing phase, especially
for milestones

A few milestone iterations:
 User interface layout: does interface correctly implement
design?
 Integrated database: application meets client’s
requirements; exhaustive test phase
 Finished implementation: ~3 weeks of dedicated testing of
entire system allotted at end
42
Closing thoughts
44
Final Product
Demo!
45
Questions?
46
Download