730 likes | 913 Views
Project: Rooms And Colloquium System. ROOMS Team CS706, Analysis of Software Artifacts Fall 2001. Current Rooms System. Problem Statement. Replace current room reservation system additional functionality better documentation better extensibility better integration with colloq. Process.
E N D
Project: Rooms And Colloquium System ROOMS Team CS706, Analysis of Software Artifacts Fall 2001
Problem Statement • Replace current room reservation system • additional functionality • better documentation • better extensibility • better integration with colloq
Process Requirements Use Cases Program Design System Design Implementation Testing
Requirements Requirements
Requirements Requirements Will Benton
Requirements Requirements Gerry Tutsch Will Benton
Requirements Requirements Will Benton Gerry Tutsch Dave Parter
Requirements Faculty Requirements Gerry Tutsch Dave Parter Will Benton
Requirements Current Users Faculty Requirements Gerry Tutsch Dave Parter Will Benton
Requirements Marv Solomon Current Users Faculty Requirements Gerry Tutsch Dave Parter Will Benton
High Level Design User
High Level Design Client User
High Level Design Client Server User
High Level Design Client Server Persistence User
High Level Design Client Server Persistence User
Software Targets • Tomcat • Servlet API • Java • JSSE • JavaMail • JAF • PostgreSQL
Refining Design Browser Servlet PostgreSQL User
Refining Design Browser Servlet PostgreSQL User HTTP or HTTPS JDBC
Focusing Browser Servlet PostgreSQL User HTTP or HTTPS JDBC
Refining Servlet request Handler Rooms Servlet HTTP JDBC response
Refining request Rooms Servlet Handler HTTP JDBC response HTML Form Web Page
Refining Handler Factory request Handler Rooms Servlet HTTP JDBC response HTML Form Web Page
Refining Handler Factory <<create>> request Handler Rooms Servlet HTTP JDBC response HTML Form Web Page
Refining Handler Factory <<create>> request Handler Rooms Servlet HTTP JDBC response HTML Form Web Page
Refining <<abstract>> HTMLForm <<create>> request Rooms Servlet <<concrete>> Handler HTTP JDBC response <<concrete>> HTMLForm <<concrete>> WebPage
Program Design Event EventHandler Database Event: 1. Related to Reservation (view, make, cancel, delete…) 2. Related to Room (view, add, delete,edit…) 3. Related to User(add, delete, change privilege…) 4. Related to Colloquium(add, delete, edit…)
Program Design • EventHandler (make SQL, deliver SQL result): 1. Reserve Handler 2. Room Handler 3. User Handler 4. Colloquium Handler
Program Design Class interaction SQL request Interface (HTML) Servlet Event Handler Database
Sequence Diagram Actor: Visitor / Account User / Administrator Objects: • HTML • Servlet • EventHandler • Database Example: (add a room available for reservation):
Expansion of Design One specific Handler for one specific Event! Example: • RoomHandler broken into: • viewRoomHandler, • addRoomHandler, • deleteRoomHandler, • …
Why so many handlers? • Better to implement: Each handler processes specific request, generate specific response web-page. • Better to distribute implementation tasks. • Redundancy? — Just repeat of some headers, the functional part is different for different handlers (no repeat).
Implementation Observations • Diagrams in design phase can not predict the exact number of classes, objects used in implementation. • BUT really make clear the logics of the project (logic components, interactions). • Really helps in implementation!
Walkthrough “Make Reservation”
“Got it.” “We need this thing to make a reservation.” Talking with Customer