310 likes | 436 Views
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
E N D
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 • Testing • Documentation • Beyond 501
What is VIO? • Novel channel to communicate intimacy online for long distance relationships • “1 Bit of Intimacy”
Beyond 501 • Handoff • 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: 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
Report error : Incorrect string entered Start Read username, partnername, user email id, partner email id, OS, survey pref. and validation string No Is validation string correct? Yes Are username and email id both unique? No Yes No Username exists in database? Insert username, partnername, user email, OS and survey pref. in database Yes Send email to user confirming registration No Usermail exists in database? Yes Generate preferences file using defaults and username and partnername System Flow Diagram Continue to Next Slide
Report error : username already exists. Mac Win Give .zip file to user as download and send email to user and partner Package Mac installer and preferences file in .zip file Package Windows installer and preferences file in .zip file Stop OS? System Flow Diagram... Continued
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
Forums Registration Website Updates
Web Registration Requirements • Registration check rules as a set
Requirements (2) • Send e-mail to user informing of successful registration (iocrew@cemcom.infosci.cornell.edu) • 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
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/interactions • Many 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