Referee Scheduler

Post on 09-Jan-2016

90 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

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

Referee Scheduler

CIS 758 Blue ElephantTony DiColaMauktik GandhiJeff MathewTim McConnellTodd SahlEugene Talagrand

Presentation Outline

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

Traceability through Design, Arch., Impl.

Product Demo

Let’s check it out

Requirements Overview

C Core FunctionalityCore Functionality

U UsabilityUsability

P PerformancePerformance

S SecuritySecurity

S SupportabilitySupportability Non-FunctionalNon-FunctionalRequirementsRequirements

FunctionalFunctionalRequirementsRequirements

Core Functionality

Main Use Case Allowing Referees to Schedule Online

Main Additional Functional Req. Security – No Unauthorized Browsing

C S S PU

C S

Core Non-Functional Reqs

Usability Easy to Learn to Use

Supportability Easy to Learn to Program

Performance Speedy Enough Under Concurrent Load

S PU

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

T Model by Middleware Co.

Metrics?

Fowler: Product of Manufacturing Optimization

Ramnath: Do It Please Blue Elephant: We Tried

Timesheets Hard to Keep Up With

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

Core Architecture - MVC

MVC Continued

Transactions

Transactions contd.

Concurrency

Transient vs. Persistent Objects Optimistic Locking

Built in Support in Hibernate Finer Grain Control Available with

Custom Code

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

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

Security - ArchitectureSecurity - Architecture

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

Email Service Java Mailing API

C S S PU

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

Usability - DesignUsability - Design

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

C S S PU

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

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

Usability Process

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

C S S PU

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

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

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

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

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

Supportability - Process

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

C S S PU

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

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

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

Performance - Process

Speed of Main Use Case always considered

Refactored Session cache design

C S S PU

top related