Plan Document (final)

advertisement
Plan Document
For The Pool Party
Participant Management System
1|Page
Contents
Overview ....................................................................................................................................................... 3
Objective ................................................................................................................................................... 3
Summary ................................................................................................................................................... 3
System Requirements ................................................................................................................................... 4
Development life cycle.................................................................................................................................. 4
Preliminary Design: ................................................................................................................................... 4
Iterative implementation: ......................................................................................................................... 5
User Oriented Design .................................................................................................................................... 7
Contextual Inquiry: ................................................................................................................................... 7
Interface Design: ....................................................................................................................................... 7
Database Design: ...................................................................................................................................... 8
HCI Testing: ............................................................................................................................................... 8
Iterative Implementation .............................................................................................................................. 9
Structure: .................................................................................................................................................. 9
Behavior: ................................................................................................................................................... 9
Functionality: .......................................................................................................................................... 10
Usability: ................................................................................................................................................. 10
Advanced Features: ................................................................................................................................ 10
Test Plan ...................................................................................................................................................... 11
Schedule ...................................................................................................................................................... 12
Spring 2009 Schedule:............................................................................................................................. 12
Intended Fall 2009 Schedule:.................................................................................................................. 13
Current Fall 2009 Schedule: .................................................................................................................... 13
Milestones:.............................................................................................................................................. 14
Deliverables: ........................................................................................................................................... 15
Spring 2009 deliverables ..................................................................................................................... 15
Fall 2009 deliverables ......................................................................................................................... 15
Risk Management ....................................................................................................................................... 16
Ethical Model .............................................................................................................................................. 17
2|Page
Overview
This document will layout our plan to complete the “Pool Party”
application. This document is maintained from the point of view of intention
rather than reality. The plan outlines contingencies, but if these contingencies are
or are not taken it will not be reflected in this document.
Pool Party will be a web-based application used for the Psychology
department’s Participation Pool. This application will primarily keep track of
students’ participation in different psychology experiments. Participation in
experiments is required of the Psychology 111 students.
Objective
The objective of the plan is to ensure the successful completion of the Pool
Party application and ensure the satisfaction of our client. Without such a plan
the completion of this project would be difficult or impossible. In the event that
the project is completed without a plan, its quality would be unsatisfactory. The
plan will provide a framework for success.
Summary
This plan has a number of different parts to it which will outline how the
system is intended to be developed. The system requirements section will consist
of information to describe what is needed to develop and run the system. The
development lifecycle section will cover the process used to design and
implement the system. The test plan section will detail the testing procedures
used to guarantee the overall quality of the system. The risk management section
will discuss what known risks will need to be taken into consideration. The ethical
concerns section will describe the ethical code we will use and any procedures
needed to ensure compliance. Our current schedule for implementation is also
outlined in its own section.
3|Page
System Requirements
Its target system is an apache web server with a Linux OS, but it should be
portable to any web server with PHP and a MySQL database. Users will connect to
the system via a web browser (supported browsers are Firefox, and Internet
Explorer). Though the system is intended to make extensive use of JavaScript, it
will fall back on non-JavaScript methods If the user chooses to disable JavaScript
in their browser.
Development life cycle
The lifecycle model we are planning to use is an agile method adapted from
spiral methodology and iterative development. Like the spiral model we start out
with a heavy analysis/requirements/design phase, and then we switch over to an
iterative and incremental implementation model. This section will briefly describe
the overview of the lifecycle which will be detailed in the following sections.
Preliminary Design:
The first phase of our development life cycle has two components,
functionality and usability. The functionality of the system is determined by
examining the existing system that is in place, other existing components our
system will interact with and by discussing what the client expects from the
system. The functionality is then organized into a user oriented set of functional
4|Page
requirements that the system will need to be able to perform. After the
requirements have been established design of the database will begin.
Once functionality has been determined our focus will shift from what the
system needs to do to how the users will interact with the system to accomplish
these tasks. User interface will be designed with input from the client and if
possible the users themselves. After our design is considered in a somewhat
cohesive form, human-computer interaction testing will be performed for each
component by the user groups who will be using it. Between each batch of testing
any problems found will be analyzed and potential solutions implemented into
the design until we are satisfied that our user groups will be able to accomplish
the tasks they need to.
Because this project is essentially a web front end for a database, and
largely written in PHP (a primarily imperative language) it will not have a typical
object model. Instead it will be divided into modules, with related functionality in
each module, with data being pulled from a database. Because virtually every
module will map directly to a single web page, it is easiest to consider the pages
themselves to be the modules. As a result there is no object diagram for this
project.
Iterative implementation:
Once our design is complete we will begin an iterative implementation
cycle. The key idea with our implementation cycle is to complete the project in
successive passes, making a more powerful and complete system at the end of
each pass. And making noncritical features easily dropped.
The first thing to happen at the beginning of a pass is to analyze the state of
the project after the completion of the previous implementation pass and
determine concrete goals for the new pass, making sure that the originally planed
objective are still feasible and adjusting them if they are not. Next any design
details for the upcoming pass that have not been worked out should be
completed and any new components that may be needed will be designed. After
5|Page
this the new components will be implemented, the person implementing a
component is expected to test their components as they develop them. Once all
components for a given implementation pass have been completed they will be
thoroughly tested, individually and then as a system. A complete system test of all
functionality that should be implemented will be performed at the end of an
implementation pass and the implementation will not be able to move to the next
pass until all defects from the previous pass have been corrected.
Following the final pass of implementation an extended testing period
should begin to find and resolve all defects and/or vulnerabilities. For more
details please refer to the testing section.
6|Page
User Oriented Design
The design of the Pool Party application is focused on the users. The final
design should be very intuitive and easy to follow. The design should mimic the
current workflow of the users but make the process as a whole much easier. The
participants will no longer need to travel to a physical location to sign up for
experiments. Participants will no longer need to keep track of their participation
form or get it stamped. The Experimenters will be able to create experiments
easily and keep track of the number of participants who are signed up with ease.
At the end of the semester the coordinator will be able to generate a report with
just a few clicks. Overall the Pool Party application will make the entire process
less cumbersome.
Contextual Inquiry:
In order to gain a greater understanding of the process needing to be
replicated we performed a contextual inquiry. The contextual inquiry was
performed in a few ways. Two of the group members completed PSYCH 111 in
previous semesters and went through the entire process as a participant. This
provided a good deal of knowledge about the procedure from the standpoint of a
participant. Also, the team went to Alumni Hall and looked at the board where
the experiments were posted to get a feel for how the experiments are organized,
and people signing up we observed. A series of interviews were also conducted
with our client to get more in depth information about what happens in the
background that a participant would not have much knowledge about. From this
we made a basic requirements document, and made some rough entity/object
models.
Interface Design:
Taking the information from the contextual inquiry into consideration we
created a basic interface using Microsoft PowerPoint. This was mainly used to
ensure that all required functionality was present while keeping a make shift GUI
that could easily be modified. The PowerPoint slides would later serve as our
paper prototype used in HCI testing, we chose to do this over a typical paper
7|Page
prototype because having the prototype in a shared electronic file allowed us to
collaborate more effectively. The final design of the interface is described in
greater depth in the design document.
Database Design:
The Contextual inquiry also served as the basis for our Database design.
We focused initially on identifying entity types, and found there to be only two
strong entity types, users and experiments. We then proceeded by identifying all
weak entity types that would allow for the different relationships we identified in
the contextual inquiry.
HCI Testing:
In order to ensure that our interface was easily usable we performed HCI
testing for all three types of user. Multiple sessions were performed for each user
type. The HCI testing for the participant was conducted using actual PSYCH 111
students. This enhanced the testing for the participant portion of the interface
because the test subjects were examples of someone who would actually be using
the system. For the experimenter and coordinator portions of HCI testing we
attempted to find actual experimenters to volunteer as test subjects, but we were
only able to test with one of them. Further HCI testing of the experimenter and
coordinator portions of the interface were performed by lower level computer
science students.
8|Page
Iterative Implementation
There are five implementation passes for this project, they are labeled as
structure, behavior, functionality, usability, and advanced. The end of each phase
should provide a set of deliverables and the system should be closer to the final
deliverable form. If time constraints make completion of all passes unfeasible,
then pass 5 and pass 4 may be dropped without risk of an incomplete system.
Structure:
The first pass of implementation will focus on establishing the structure of
the website, and the layout of the interfaces and the tables of the database. At
this point in the development all interface elements will be placed for all possible
users and usages of the interface. This phase will focus on the look and style, and
be done entirely with Smarty Templates. Though the database should be set up
by the end of this phase it will not have any connection to the interface. The final
result of this phase will be similar to a fully featured prototype, but will lack any
functionality.
Behavior:
The behavior pass will focus on having the layout of the web pages react
properly to a given set of data and on implementation of the database abstraction
layer. Though no connection to the actual database will be established in this
phase, dummy data will passed in via the URL (retrieved by $_GET) or embedded
in the page. Inter-page behaviors will be implemented at this time such as when a
session view page is passed criteria for filtering sessions the appropriate
notification text will be presented.
9|Page
Functionality:
The functionality pass will focus on the connection between the database
abstraction module and the interface. All dummy data will be redirected with an
SQL statement that should provide the appropriate data through the database
abstraction module. Data validation for all inputs should be implemented in this
pass. At the end of this pass the system should be technically capable of
performing all of its functionality; however this does not mean that it will be
highly useable to do so. Also at the end of this phase something akin to a
JavaScript free interface will be complete.
Usability:
The Usability phase will focus on using JavaScript to enhance the usability
of the system. Widgets will be added to pages that dynamically update values,
and help in workflow. Popup boxes with useful data can be used added. Hiding
unnecessary details from the user (such as primary key identifiers) will make the
system less confusing. At the end of this pass our system should be acceptably
useable as to be considered deliverable.
Advanced Features:
The final pass of implementation will focus on adding optional features to
further enhance usability. This will mostly be addition of AJAX features to existing
interfaces to make finding and using information faster and easier. Nothing in this
pass should be vital for the completion of the project, but should be considered
enhancements to make the system better than merely meeting the bare
minimum requirements.
10 | P a g e
Test Plan
There will be sufficient testing of every part of our system both hardware
and software. Since we plan to use an iterative approach, testing will be necessary
to create the best application for each iteration cycle.
Testing in the design phase has consisted of:
 Testing the database design – making sure our design could support the
use cases we came up with
 Testing the interface design – checking the ease of usability with paper
prototypes
 Testing the architecture design – making sure we had the tools to create
a successful application
Testing in the implementation phase will consist of, but not limited to, the
following:
 Testing the code – making sure the application works like it is supposed
to
 Testing the web server and database – making sure the servers can
handle a great number of people, i.e. 100, at a time
 Testing the security – making sure our website can handle various forms
of hacking techniques, i.e. SQL Injection attacks.
At the end of each implementation pass, unit testing will occur. Upon completion
of the final pass, testing of the entire system will take place to ensure every part
of the application can work with the other, before put into production.
11 | P a g e
Schedule
The schedule for the Pool Party application can be divided into two parts,
the Spring 2009 schedule and the Fall 2009 schedule. These two schedules are
detailed below. All passes are described even if they are not active in the current
schedule.
Spring 2009 Schedule:
Feb 2009
ID
Task Name
Start
Finish
Mar 2009
Apr 2009
Duration
1/25 2/1 2/8 2/15 2/22 3/1 3/8 3/15 3/22 3/29 4/5 4/12 4/19 4/26 5/3
1
Contextual Inquiry
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
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
The Spring 2009 schedule starts on January 20th and runs until May 7th.
January 20th was when our contextual inquiry began. May 7th is the last possible
day in which our final presentation can be made. The Spring 2009 schedule deals
mostly with the design and plan of the Pool Party application including items such
as contextual inquiry, requirements specification, interface and database design,
HCI testing, prototype creation, presentation preparation and the delivering of
presentations.
12 | P a g e
Intended Fall 2009 Schedule:
Sep 2009
ID
Task Name
Start
Finish
Oct 2009
Nov 2009
Dec 2009
Duration
8/23
1
Structure
8/24/2009
8/31/2009
8d
2
Structure Design
8/24/2009
8/24/2009
1d
3
Structure Implementation
8/25/2009
8/30/2009
6d
4
Structure Testing
8/31/2009
8/31/2009
1d
5
Structure Completed
8/31/2009
8/31/2009
0d
6
Behavior
9/1/2009
9/21/2009
21d
7
Behavior Design
9/1/2009
9/4/2009
4d
8
Behavior Implementation
9/5/2009
9/17/2009
13d
9
4d
Behavior Testing
9/18/2009
9/21/2009
10
Behavior Completed
9/21/2009
9/21/2009
0d
11
Functionality
9/22/2009
10/12/2009
21d
12
Functionality Design
9/22/2009
9/24/2009
3d
13
Functionality Implementation
9/25/2009
10/7/2009
13d
14
Functionality Testing
10/8/2009
10/12/2009
5d
15
Functionality Completed
10/12/2009
10/12/2009
0d
16
Usability
10/13/2009
11/2/2009
21d
17
Usability Design
10/13/2009
10/15/2009
3d
18
Usability Implementation
10/16/2009
10/28/2009
13d
19
Usability Testing
10/29/2009
11/2/2009
5d
20
Usability Completed
11/2/2009
11/2/2009
0d
21
Advanced Features
11/3/2009
11/25/2009
23d
22
Advanced Feature Design
11/3/2009
11/6/2009
4d
23
Advanced Feature Implementation
11/7/2009
11/20/2009
14d
24
Advanced Feature Testing
11/21/2009
11/25/2009
5d
25
Advanced Features Completed
11/25/2009
11/25/2009
0d
26
Final Testing
11/26/2009
12/17/2009
22d
27
Project Completed
12/17/2009
12/17/2009
0d
8/30
9/6
8/23 8/30
9/6
9/13
9/20
9/27
10/4
10/11 10/18 10/25
11/1
9/20
9/27
10/4 10/11 10/18 10/25 11/1
11/8
11/15 11/22 11/29
12/6
Current Fall 2009 Schedule:
Sep 2009
ID
Task Name
Start
Finish
Oct 2009
Nov 2009
Dec 2009
Duration
1
Structure
8/24/2009
9/14/2009
2
Structure Design
8/24/2009
8/31/2009
8d
3
Structure Implementation
9/1/2009
9/13/2009
13d
4
Structure Testing
9/14/2009
9/14/2009
1d
5
Structure Completed
9/14/2009
9/14/2009
0d
6
Behavior
9/14/2009
10/12/2009
29d
7
Behavior Design
9/14/2009
9/17/2009
4d
8
Behavior Implementation
9/18/2009
9/30/2009
13d
12d
9/13
11/8 11/15 11/22 11/29 12/6 12/13
22d
9
Behavior Testing
10/1/2009
10/12/2009
10
Behavior Completed
10/5/2009
10/12/2009
8d
11
Functionality
10/12/2009
11/21/2009
41d
12
Functionality Design
10/12/2009
10/14/2009
3d
13
Functionality Implementation
10/16/2009
11/14/2009
30d
14
Functionality Testing
11/14/2009
11/19/2009
6d
15
Functionality Completed
11/2/2009
11/2/2009
0d
16
Usability
11/12/2009
11/18/2009
7d
17
Final Testing
11/20/2009
12/18/2009
29d
18
Project Completed
12/17/2009
12/18/2009
2d
13 | P a g e
The Fall 2009 schedule starts on August 23rd and runs until December 17th.
August 23rd is the first day of the fall semester. December 17th is the end of finals
week for the fall semester at which time the application must be completed. The
Fall 2009 schedule focuses on the implementation of the Pool Party application
including items such as the creation of a full template skeleton, full interface
layout and testing, PHP implementation, database implementation and
integration, JavaScript implementation (optional), AJAX implementation
(optional), and testing.
Milestones:
Milestones for the Pool Party application have been included in the above
schedules. Each milestone marks the completion of a specific phase of
development in which a working version of the application exists with added
functionality. The milestones for the Pool Party application include the following:
Basic Layout Completed: At this time, we will have all interfaces layed out with
Smarty Templates.
Interface Implementation Completed: At this point we will have added PHP to the
previous phase and will have tested the functionality of the interface.
Basic Functionality Completed: Upon completing this milestone we will have
implemented the database, performed database abstraction and integrated
the database into the application. The product will be in a deliverable state
after this.
Advanced Interface Completed (optional): At this milestone, we will have tested
the functionality of the application with the database implemented, added
common controls and basic Java Script to the application.
Project Completed: Once this milestone is reached all features will have been
implemented and final testing will be completed yielding a finished
product.
14 | P a g e
Deliverables:
The deliverables for the Pool Party application can be divided by semester
as well. The Spring 2009 deliverables and Fall 2009 deliverables are listed below.
Spring 2009 deliverables
A final interface design
A final database design
Responsibility assignments
A working accessible server
A partially working prototype
A completed plan document
A completed design document
Fall 2009 deliverables
First phase: A basic layout of the application
Second phase: A completed interface for the application
Third phase: Basic functionality
Fourth phase(optional): Advanced functionality
Final Testing: Final product
15 | P a g e
Risk Management
Risk Management is important when creating web-based applications
because of varies parts of the system. Some of the risks we may encounter for the
Pool Party applications are:
 Time constraints – schedule is designed to have a working product early
and able to eliminate less important features if necessary by dropping
later passes
 Complexities of Ajax architecture – interface should be useable without
the help of Ajax features and these features should be
compartmentalized into a disposable pass that can be dropped should
there not be sufficient time.
 Browser compatibility issues – browser will not need JavaScript to run
 Server setup: LAMP – getting the server set up before implementation
begins
 Redundant code between PHP and JavaScript – PHP code generates XML
and HTML results and JavaScript, when available, will interface with
those results
 Team members have unforeseen events – either send the team member
a note letting them know of what is needed of them or delegate the item
to different team members
 Unable to contact Client – bring the issue to upper management, this will
be the current instructor
16 | P a g e
Ethical Model
We will be employing the AITP code of ethics in this project. Our largest
ethical concern revolves around using pre-existing code made by persons outside
our group. There are several modules we have considered using. So to ensure
compliance with ethical standards with regards to use of other people’s code we
will do the following:




Site the module’s name
Site the module’s creator(s)
Provide a link to where we acquired it from
Demonstrate that the creator granted permission for its use. We will do this
by either hosting or linking to either a general statement that anyone could
use their code or their granting us permission explicitly.
 All of this will be documented in an ‘Acknowledgments’ page, which would
be accessible from the login screen, and from the root level of the help
documentation we generate.
17 | P a g e
Download