initial requirements and design. second stage of development requirements document design document...
TRANSCRIPT
Initial Requirements and Design
Second stage of development◦Requirements Document◦Design Document◦Quality Assurance(QA)
Our product appeals to almost every demographic.◦ Jenny Bits, an elementary school student◦ Phyllis Lin, University Student◦ Tim Bucks, teaching assistant at SFU◦ James Power, 39 year old computer technician◦ Linda Bytes, 71 year old Grandmother
Who it’s not for, people without computers. No, our software will not run on cell phones.
Tim Phyllis
Special Attention given to optimization◦ Boot up in less than 8 seconds◦ Full program sized less than 20mb.◦ Between 10 and 30MB of ram used at any one
time◦ (Pentium 4 with 1GHz processor and 512MB ram or higher assumed)
Reliable, Robust and can run on Windows and Macintosh.
Usernames and passwords all secured
Full user tutorials on basic functionality. Screenshots included of GUI’s first version.
We all try to use the same programs and the same version of those programs◦ Java 5◦ Eclipse IDE 3.4.x◦ SQLite 3.6.14.2◦ Smack 3.1.0◦ etc…
Respect Ethics and the Law
Using SQLite for storing this information◦ User profiles◦ Chat log◦ All other local data.
Simplifies data storage by allowing us to use one database file (profiles.db) to save all information.
Blueprint of which features will be implemented in each version.
Example:◦ Chatbot Implementation Details
Non-essential for basic chatting. Release in alpha to experience 3 phases of user
testing. Requires new windows created in GUI. Saves configuration data to database. Uses core to determine whether to auto-reply.
Three main stages of testing◦ Unit testing◦ Integration testing◦ User acceptance testing
Junit is used for unit testing: Unit Testing: individual testing of each class
and method.◦ Both black-box and white-box test cases.
Sample test method: @Test
public void testUserStatusChange { UserProfile userProfile = new UserProfile(); userProfile.setStatusMessage("This is a test!"); assertTrue(!userProfile.getStatusMessage().isEmpty()); userProfile.clearStatusMessage(); assertTrue(userProfile.getStatusMessage().isEmpty()); }
After unit testing Incrementally add components: core,
database, GUI Use fully automated tests to ensure
compatibility Why: Parts of the program may work
perfectly alone, but may not interface with each other well.
Create focus groups of external users to try program—report back on bugs and features they would like added.
Approximately 20 users, test different things:◦ Adding friends◦ Chatting◦ Menu options
Why is it important? Three stages, so that design changes can
be incorporated into later revisions; not the upcoming release.
Google Calendar
The entire team can see this and it keeps us organized
40% of days are allocated for testing.
How do we know which are the most important areas to focus testing on?
Estimation:
Thank you for listening to our presentation. For more information, please visit:
◦ http://parrot-im.googlecode.com/
May we answer any questions?