21
TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Embed Size (px)

Citation preview

Page 1: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

TestFilesLife Cycle Architecture

Chris ByszeskiOoi Hsu Han

Amir KouretchianSachin Pradhan

Quang TranPeter Turschmid

Nick Walker

Page 2: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Introduction – What is TestFiles?

A web application targeted towards students Share and distribute old tests, quizzes, notes

and homework assignments Easy access through intelligent searching

over a variety of metadata: Class, title, type of test, instructor, etc

Self-sustaining: provides incentive to contribute

Not a social networking site, but will include a variety of creative personalized features

Page 3: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Functional Specification

Page 4: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Feature Set

User account creation, authentication/login Personalized welcome screen for each user Search (basic & advanced) &

Viewing/downloading testfiles Upload Rating of testfiles

Page 5: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Feature Set

Dynamically generated document page Favorite users management (favorite

uploaders) Quota system Uploader profile page Administrator/Maintenance Page Group control/test files access permissions Notification of new testfiles

Page 6: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Welcome Page

Primary page, “feature gateway” Contains

Advanced Search area List of recent downloads (for rating) Recommended testfiles Favorite user list, with recent uploads Most wanted testfiles Link to profile/settings editor Link to help page

Page 7: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Site Navigation Graph

Login

Welcome Screen

Administrator Page

Admin Login

Results

Test Info Screen

User Info

Edit Profile

Help

Submit Test

Submit Comment

User Submits Password

Help Link

BackEdit Profile Link

Commit Changes

Perform Search QueryBack

Test Choice Back to Results

Link to Comment Editor

Commit Comment

Link to Test Submission Page

Commit Test and Return

Cancel

Link to User Info

Back

Page 8: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Sample Use CaseGoal To download old midterms for a certain class

Primary Actor The user who is seeking for the old midterm

Precondition The user has an account and is logged in.

Successful Postcondition The user is able to download/view the test, and rate it accordingly or get a notification that the user is restricted from downloading the test.

Unsuccessful Postcondition No relevant testfiles is displayed when there are relevant testfiles

Trigger The user searched for the testfiles

Main Success Scenario

Failure Scenario

The user enters username and passwordThe system verifies and logs the user in A personalized welcome screen is displayedUser enters search criterion in search area of welcome pageA list of testfiles matching the criterion are displayed along with its metadata. All restricted testfiles that the user does not have permission to does not display in search result.The user clicks on one of the search resultsThe user can view/download the testfile, rate the testfile, flag the testfile as inappropriate, or add a comment about the testfile

User authentication failsNo relevant testfiles are displayedThe user is restricted from downloading the testfile when the user is allowed to

Page 9: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

System Architecture

Page 10: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Architecture Overview

Microsoft IIS Server Microsoft SQL Server ASP.NET C# Basic, well known

web application setup from databases class – standard in industry

Network

IIS Server

SQL Server

ASP.NET Web Interface

C# Webservice

FileSystem

User

Page 11: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Database SchemaUsers

PK UserID

Username Password Graduating Year Email Address School Major Student/Prof/Other Quota InformationFK1 Title(Quiz, Midterm, Final)FK1 ClassFK1 UniversityFK1 InstructorFK1 Submiting User

Tests

PK Title(Quiz, Midterm, Final)PK ClassPK,FK1 UniversityPK InstructorPK,FK2 Submiting User

Date Submitted Overall Rating Keywords Question Types(MC, TF, etc.) Test File School UserID

Groups

PK,FK1 UserIDPK GroupID

Groupname Read/Write

Comments

PK UserID of CommentorPK,FK1 TitlePK,FK1 ClassPK,FK1 UniversityPK,FK1 InstructorPK,FK1 Submitting User

Username of Commentor Comment Text Attached File Title(Quiz, Midterm, Final) Submiting User

Requests

PK,FK2 Title(Quiz, Midterm, Final)PK,FK2 ClassPK,FK2 UniversityPK,FK2 InstructorPK,FK2 Submiting UserPK,FK1 UserID

Date Submitted Quarter/Semester System

College Information

PK School

Quarter/Semester System Forbidden from use

Page 12: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Evolutionary Changes

Database administrators use software for multiple colleges

More advanced commenting on test Copyright issues and test file access control

Page 13: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Team Structure, Schedule, Tasks and Risk Assessment

Page 14: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Team Structure

Division by proficiency ASP Frontend / UI: Nick, Peter Server Backend: Hsu Han Database Design / Data Management: Amir,

Sachin, Chris Research of .NET Implementation Specifics:

Quang

Page 15: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Schedule and Milestones

Two Primary Milestones: Beta (May 9)

Upload/Download, basic search User login, simple but functional user interface

Final (May 30) Full ranking system, user account creation Administrator mode, file discussion system Favorite uploaders, full/advanced search Full welcome screen, finalized user interface

Page 16: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Risk Assessment

Top Five Risks Implementation Difficulties Tool Setup and Use Feature Creep Schedule Conflicts Database Design Other Concerns

Adherence to Project Methodology “Senioritis”

Page 17: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Testing and Documentation

Page 18: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Testing Strategy

Two-prong approach: User testing Code testing

Page 19: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

User Testing

Have users test every build Note bugs and functional inadequacies Ensures stable progress Ensures UI is intuitive and easy to use Ensures proper functionality is being provided

Page 20: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Code Testing

Unit testing EVERY DAY Do not leave to the last minute…write unit

tests for every function Database testing

Hard-code data and run queries to ensure correct data is being stored/returned

Page 21: TestFiles Life Cycle Architecture Chris Byszeski Ooi Hsu Han Amir Kouretchian Sachin Pradhan Quang Tran Peter Turschmid Nick Walker

Builds and Documentation

Nightly builds Ensure stable and promote clean and efficient

code writing Code documentation DAILY

Promotes clean and maintainable code User documentation

After all features are implemented Use user-feedback during user testing