referee scheduler
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 PresentationTRANSCRIPT
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