virtual intimate objects: final presentation
DESCRIPTION
Virtual Intimate Objects: Final Presentation. The Group: Richard Calvi, Vishal Desai, Matt Feusner, Wei Guo, Aakash Jain, Shantanu Shah, William Yip Client: Joseph “Jofish” Kaye. Outline. Final Delivery Registration/Download Website Windows Version 2.1 Mac Version 2.1 Demos - PowerPoint PPT PresentationTRANSCRIPT
Virtual Intimate Objects:Final Presentation
The Group: Richard Calvi, Vishal Desai, Matt Feusner, Wei Guo, Aakash Jain, Shantanu Shah, William Yip
Client: Joseph “Jofish” Kaye
Outline
Final Delivery Registration/Download Website Windows Version 2.1 Mac Version 2.1
Demos Windows Version Mac Version
TestingDocumentationBeyond 501
What is VIO?
Novel channel to communicate intimacy online for long distance relationships “1 Bit of Intimacy”
Version 2.1: Requirements
What the Client Wanted
Provided?
Custom Sounds Yes
Custom Icons Yes
5-Second Server Polling Time
Yes
Mac Version Yes
VIO 2.1 Additional
RequirementsWhat the Client Wanted Provided
Customized Transition Times YesWebsite to Download VIO Yes
Installer in Archive with Custom Preference File
Yes
Forums YesProtection Against Automated Registrations Yes
Beyond 501Handoff Repository on Sourceforge
Jofish listed as an administrator Source Code Documentation on Doxygen Simple Help Files for User Archive of the Web Pages Documentation on Development Environment
Compiling wxWidgets libraries Running Makefile on Mac Using Visual Studio with wxWidgets Setting up server/scripts, etc
Beyond 501 (cont’d)
Version 3.0 Beta Based on client requests made a few days
ago Secret shared phrase between user
Implemented on Windows Will NOT be part of the final deliverable on
May 12 (but we’ll do it because we’re “nice” )
Will be complete and delivered by the end of the semester
Version 2.1
Version 2.1: Requirements
Icons User can specify an icon for each different state Program displays a specified icon based on state
(partner’s state when the mouse is hovering the tray icon, user’s state otherwise)
Standard circle icon if option is unspecified
Sounds User can specify an sound for each different state Program plays a specified sound file upon receiving a
click from the user’s partner The sound file to be played is based on the user’s
state when the click is received Standard sound plays if option is unspecified
Version 2.1: Requirements (Cont.)
State redefinitions Allows user to specify the time intervals that define the
states Uses states defined in v1.1 if not set
Server Specification Allows user to specify the server the software
communicates with Uses the default ioserver address if not set
Website Updates: Designed to download VIO for Windows or Macintosh Special Image-based Security Frequently Asked Questions to help new users Forums to post questions or comments
Version 2.1: Design
New Class: Icon Manager Storage class that contains the 8 different icons to be
displayed for each of the user’s and partner’s state Essential Methods include:
updateIcon: changes the user and partner icons based on the user’s preference change in the advanced options window
updateColor: changes the color used to fill the default circle icons (if used)
getMyIcon: Returns the icon for the user given the state getPartnerIcon: Returns the icon for the user given the
partner’s state shrinkIcon: shrinks a 32×32 icon to a 16×16 icon
Other classes: same design as presented last time
Start
Read username, partnername, user email id, partner email id, OS, survey pref. and validation string
Are username and email id both unique?
Insert username, partnername, user email, OS and survey pref. in database
Send email to user confirming registration
Generate preferences file using defaults and username and partnername
Yes
Username exists in database?
No
YesNo
Usermail exists in database?
NoYes
Is validation string correct?
Yes
No Report error : Incorrect string entered
System Flow Diagram
Continue to Next Slide
Package Mac installer and preferences file in .zip file
Package Windows installer and preferences file in .zip file
Give .zip file to user as download and send email to user and partner
Stop
Mac
OS?
WinReport error : username already exists.
System Flow Diagram... Continued
Class Diagram
Version 2.1: Implementation
Implementation on Windows: Same as v2.0 C++/WxWidgets
Implementation on Macintosh: gcc instead of Visual Studio Changes from Windows version:
Window instead of taskbar icon UNIX C sockets instead of wxURL Bitmaps instead of icons
DEMO on Windows & Macintosh
Registration Website Updates Forums
Web Registration Requirements
Registration check rules
UsernameE-mail
addressAction
Unique UniqueAllow
download
Unique Non-UniqueWarning
followed by download link
Non-unique Non-uniqueWarning
followed by download link
Non-unique Unique Error
as a set
Requirements (2)
Send e-mail to user informing of successful registration ([email protected])Provide a link to user to download a zipped archive of the appropriate version of VIO (based on OS) along with the pre-configured preferences file.
Data Dictionary
Database (MySQL) Schema
Web Implementation
DB: MySQL 4.1.10a Web-logic: PHP
Testing & Acceptance
Static Testing
Code Review/Verification Code is reviewed by the developer
after each change Individually and with code sessions
Use of Visual Studio’s debugger wxWidgets warning flags Memory leak detector with Visual Studio
Dynamic Testing
Requires manual user inputs/interactionsMany test cases are performed by developers while running the actual application UI components such as the buttons, dialog
inputs, file choosers, icons, sounds, etc Non-UI components such as preference
loader, network communication, user name validation, etc
Dynamic Testing
Unit Testing Testing each individual component as
written UI Components: Running the program and
use/ensure the new component works Non-UI: Individual main methods to test out
functionality (with Preference) External tools used
Visual Studio Debugger stepping through each line to ensure the result
matches expectation Web browser
looking at send/receive output from the server
Dynamic Testing
Boundary Related to user inputs Run a standard set of tests to ensure correct
handling by using the software Number values
Setting several time periods to be the same and to 0 Names
Long (up to 100 characters) and short names (1 letter)
Files Long folders structure/names Long sound names
Dynamic Testing
Exception Related to user inputs Run a standard set of tests to ensure correct
handling by using the software: Invalid values for numbers
negative numbers, numbers > 99999 Empty input
Invalid input for names names including characters other than alphanumeric
characters and ‘-’, names longer than 100 characters long Empty string
Invalid file selection non-existing files Empty input
Stress Testing
Run a standard set of tests to ensure correct handling by using the software: Multiple clicks/sends Changing preferences repeatedly to
different files/values Having no preference file or an incomplete
preference file
Another way to track memory usage (to look for leaks)
Compatibility Test
Windows Tested on multiple XP and 2000
machines We expect it to work on Windows 98,
but not extensively tested due to unavailability
Mac OS X 10.3 (2003) and above
Beta Testing
Jofish Several beta test users
Bug reports reported back to Jofish, forwarded to us
Developers Our own developers Recruited several beta test users
Bug reports reported back to us directly For faster feedback and quicker bug detection For targeted test cases
Different operating system Different system configuration Different user profile and expertise level
Questions?