referee scheduler

33
Referee Scheduler CIS 758 Blue Elephant Tony DiCola Mauktik Gandhi Jeff Mathew Tim McConnell Todd Sahl Eugene Talagrand

Upload: thiery

Post on 09-Jan-2016

103 views

Category:

Documents


1 download

DESCRIPTION

Referee Scheduler. CIS 758 Blue Elephant Tony DiCola Mauktik Gandhi Jeff Mathew Tim McConnell Todd Sahl Eugene Talagrand. Presentation Outline. Product Demonstration / Overview Functional Requirements Intro Non-Functional Requirements Intro Process Intro - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Referee Scheduler

Referee Scheduler

CIS 758 Blue ElephantTony DiColaMauktik GandhiJeff MathewTim McConnellTodd SahlEugene Talagrand

Page 2: Referee Scheduler

Presentation Outline

Product Demonstration / Overview Functional Requirements Intro Non-Functional Requirements Intro Process Intro Non-Functional Requirements in Detail

Traceability through Design, Arch., Impl.

Page 3: Referee Scheduler

Product Demo

Let’s check it out

Page 4: Referee Scheduler

Requirements Overview

C Core FunctionalityCore Functionality

U UsabilityUsability

P PerformancePerformance

S SecuritySecurity

S SupportabilitySupportability Non-FunctionalNon-FunctionalRequirementsRequirements

FunctionalFunctionalRequirementsRequirements

Page 5: Referee Scheduler

Core Functionality

Main Use Case Allowing Referees to Schedule Online

Main Additional Functional Req. Security – No Unauthorized Browsing

C S S PU

C S

Page 6: Referee Scheduler

Core Non-Functional Reqs

Usability Easy to Learn to Use

Supportability Easy to Learn to Program

Performance Speedy Enough Under Concurrent Load

S PU

Page 7: Referee Scheduler

Process Intro

Lightweight RUP, ala Craig Larman Step-by-Step OOAD Inception, Elaboration

Bounded Iterations

New Methodology, Martin Fowler Adaptive, People Oriented

Rapid UI Prototyping w/ Feedback T-Model, Middleware Technologies

From J2EE Best Practices Article

Page 8: Referee Scheduler

T Model by Middleware Co.

Page 9: Referee Scheduler

Metrics?

Fowler: Product of Manufacturing Optimization

Ramnath: Do It Please Blue Elephant: We Tried

Timesheets Hard to Keep Up With

Page 10: Referee Scheduler

Metrics: Results

Anecdotal Results: Productivity Increased as:

Configuration Management Settled Down Initial Problems:

Eclipse Tomcat Hibernate, MySQL Struts

Members Became Familiar with Core Architecture – MVC, Struts, JSP, JSTL

Page 11: Referee Scheduler

Core Architecture - MVC

Page 12: Referee Scheduler

MVC Continued

Page 13: Referee Scheduler

Transactions

Page 14: Referee Scheduler

Transactions contd.

Page 15: Referee Scheduler

Concurrency

Transient vs. Persistent Objects Optimistic Locking

Built in Support in Hibernate Finer Grain Control Available with

Custom Code

Page 16: Referee Scheduler

Security - RequirementsSecurity - Requirements

Access to registered users only Prevent public browsing

Access control and Roles Referees vs. Administrators

Password Security Encrypted passwords in database Email notification when password changes

C S S PU

Page 17: Referee Scheduler

Security - ArchitectureSecurity - Architecture

User class hierarchy Hibernate mapping Access Control Filter Logical Paths Tomcat Roles ?

Referee Administrator

-email-password-userName-realName

User user.hbm.xml maps entire class hierachary into database

Model Type

C S S PU

Page 18: Referee Scheduler

Security - ArchitectureSecurity - Architecture

Password Service SHA1 – One-way encryption function Random password Generation

Email Service Java Mailing API

C S S PU

Page 19: Referee Scheduler

Usability - RequirementsUsability - Requirements

No End User Training Possible Successful Adoption Hinges on

Transparent Usability End Users are not Computer Experts Accessibility

C S S PU

Page 20: Referee Scheduler

Usability - DesignUsability - Design

Transparent Navigation Shallow Information Hierarchy Tabbed Interface Clear, Consistent Page Sections Consistent Placement of Feedback

C S S PU

Page 21: Referee Scheduler

Usability – Design ContinuedUsability – Design Continued

Task Oriented Design Minimal Text & Images, No ‘Happy Talk’ Built In Help JavaScript Validation of Input

Accessibility Text-Only Browser Support Minimal Browser Dependency

C S S PU

Page 22: Referee Scheduler

UsabilityUsability Architecture & Impl. Architecture & Impl.

Common, Ubiquitous Technologies Server Pages, JavaScript, CSS

Focus on Architecture Extensibility Templating, Page Composition

Used Standardized Libraries JSTL - Simpler Language, Easier for

Page Designers

C S S PU

Page 23: Referee Scheduler

Usability Process

Iterative Prototype Broad and Shallow Little or No Functionality Feedback From Clients and Users

C S S PU

Page 24: Referee Scheduler

Supportability Requirements Supportability Requirements

Extensibility Additional Use Cases to be Implemented Requirements Change Over Time

Maintainability Future Maintenance Programmers Need

to Understand Architecture, Code Configurability

C S S PU

Page 25: Referee Scheduler

Supportability Design Supportability Design

Separation of Concerns into Tiers Presentation Layer Workflow Layer Business Delegate Layer Domain Model Layer Data Access Object Layer Data Source Layer

C S S PU

Page 26: Referee Scheduler

Supportability Design Contd.Supportability Design Contd.

Separation of Concerns into Tiers Decoupling of Components of Application

Limits Effect of Change in one area Makes Code Easier to Comprehend Allows Parallel Development via Interfaces

C S S PU

Page 27: Referee Scheduler

Supportability Design Contd.Supportability Design Contd.

Documentation of Design Short Papers on Technologies / Design

Patterns Use Case Diagrams / Sequence

Diagrams Pointers to Good Resources Doxygen API Documentation

C S S PU

Page 28: Referee Scheduler

Supportability ArchitectureSupportability Architecture

Strict Adherence to MVC Pattern Use of Popular Frameworks

Workflow by Struts Persistence by Hibernate

Configurability Strategy Patterns Externalized Strings

C S S PU

Page 29: Referee Scheduler

Supportability - Process

Incremental Refactorings Refactored Packages Page Composition Externalized Strings Class Based CSS Design

C S S PU

Page 30: Referee Scheduler

Performance - RequirementsPerformance - Requirements

Thousands of Games and Users During Initial Sign-Up Period, Several

Hundred Concurrent Users Site Must Remain Usable and

Responsive under Load

C S S PU

Page 31: Referee Scheduler

Performance – Design Cont.Performance – Design Cont.

Presentation Layer: XSL-T was used for the first 4 Weeks

Provides Extensibility, but very Computationally Intensive

JSP/JSTL Refactoring One Week of Performance Testing

C S S PU

Page 32: Referee Scheduler

Performance – Design Cont.Performance – Design Cont.

Keeping Games in Memory Required 300 MB of RAM for 300 users

Client Side Sorting, Filtering of Conflicting Games Offloaded to User to Reduce Server Load Optimized Primary Database Query

Trade-off between memory, CPU and Database performance

C S S PU

Page 33: Referee Scheduler

Performance - Process

Speed of Main Use Case always considered

Refactored Session cache design

C S S PU