Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Referee Scheduler CIS 758 Blue Elephant Tony DiCola Mauktik Gandhi Jeff Mathew Tim McConnell Todd Sahl Eugene Talagrand."— Presentation transcript:

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

2 Presentation Outline Product Demonstration / Overview Functional Requirements Intro Non-Functional Requirements Intro Process Intro Non-Functional Requirements in Detail  Traceability through Design, Arch., Impl.

3 Product Demo Let’s check it out

4 Requirements Overview C Core Functionality U Usability P Performance S Security S Supportability Non-FunctionalRequirements FunctionalRequirements

5 Main Use Case  Allowing Referees to Schedule Online Main Additional Functional Req.  Security – No Unauthorized Browsing CSSPU CS

6 Core Non-Functional Reqs Usability  Easy to Learn to Use Supportability  Easy to Learn to Program Performance  Speedy Enough Under Concurrent Load SPU

7 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

8 T Model by Middleware Co.

9 Metrics? Fowler: Product of Manufacturing Optimization Ramnath: Do It Please Blue Elephant: We Tried  Timesheets  Hard to Keep Up With

10 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

11 Core Architecture - MVC

12 MVC Continued

13 Transactions

14 Transactions contd.

15 Concurrency Transient vs. Persistent Objects Optimistic Locking  Built in Support in Hibernate  Finer Grain Control Available with Custom Code

16 Security - 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 CSSPU

17 Security - Architecture User class hierarchy  Hibernate mapping  Access Control Filter  Logical Paths  Tomcat Roles ? CSSPU

18 Security - Architecture Password Service  SHA1 – One-way encryption function  Random password Generation Email Service  Java Mailing API CSSPU

19 Usability - Requirements No End User Training Possible Successful Adoption Hinges on Transparent Usability End Users are not Computer Experts Accessibility CSSPU

20 Usability - Design Transparent Navigation  Shallow Information Hierarchy  Tabbed Interface  Clear, Consistent Page Sections  Consistent Placement of Feedback CSSPU

21 Usability – 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 CSSPU

22 Usability 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 CSSPU

23 Usability Process Iterative Prototype  Broad and Shallow  Little or No Functionality  Feedback From Clients and Users CSSPU

24 Supportability Requirements Extensibility  Additional Use Cases to be Implemented  Requirements Change Over Time Maintainability  Future Maintenance Programmers Need to Understand Architecture, Code Configurability CSSPU

25 Supportability Design Separation of Concerns into Tiers  Presentation Layer  Workflow Layer  Business Delegate Layer  Domain Model Layer  Data Access Object Layer  Data Source Layer CSSPU

26 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 CSSPU

27 Supportability Design Contd. Documentation of Design  Short Papers on Technologies / Design Patterns  Use Case Diagrams / Sequence Diagrams  Pointers to Good Resources  Doxygen API Documentation CSSPU

28 Supportability Architecture Strict Adherence to MVC Pattern Use of Popular Frameworks  Workflow by Struts  Persistence by Hibernate Configurability  Strategy Patterns  Externalized Strings CSSPU

29 Supportability - Process Incremental Refactorings  Refactored Packages  Page Composition  Externalized Strings  Class Based CSS Design CSSPU

30 Performance - Requirements Thousands of Games and Users During Initial Sign-Up Period, Several Hundred Concurrent Users  Site Must Remain Usable and Responsive under Load CSSPU

31 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 CSSPU

32 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 CSSPU

33 Performance - Process Speed of Main Use Case always considered Refactored Session cache design CSSPU


Download ppt "Referee Scheduler CIS 758 Blue Elephant Tony DiCola Mauktik Gandhi Jeff Mathew Tim McConnell Todd Sahl Eugene Talagrand."

Similar presentations


Ads by Google