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 Requirements Implementation System Design Use Cases Program Design Testing
Requirements
Will Benton
Requirements Will Benton Gerry Tutsch
Requirements Will Benton Gerry Tutsch Dave Parter
Requirements Will Benton Gerry Tutsch Dave Parter Faculty
Requirements Will Benton Gerry Tutsch Dave Parter Faculty Current Users
Requirements Will Benton Gerry Tutsch Dave Parter Faculty Current Users Marv Solomon
Use Cases
Use Case, for a User
High Level Design
User
High Level Design Client User
High Level Design ClientServer User
High Level Design ClientServerPersistence User
High Level Design ClientServerPersistence User
Software Targets Tomcat Servlet API Java JSSE JavaMail JAF PostgreSQL
Refining Design Browser Servlet PostgreSQL User
Refining Design Browser Servlet PostgreSQL User JDBC HTTP or HTTPS
Components
Focusing Browser Servlet PostgreSQL User JDBC HTTP or HTTPS
Refining Servlet Rooms Servlet Handler response request JDBCHTTP
Refining Rooms Servlet Handler response request JDBCHTTP Web Page HTML Form
Sequence
Refining Rooms Servlet Handler response request JDBCHTTP Web Page HTML Form Handler Factory
Refining Rooms Servlet Handler response request JDBCHTTP Web Page HTML Form Handler Factory >
Refining Rooms Servlet Handler response request JDBCHTTP Web Page HTML Form Handler Factory >
Refining Rooms Servlet > Handler response request JDBCHTTP > WebPage > HTMLForm > HTMLForm >
From Design to Implementation
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 Interface (HTML) Servlet Event Handler Database request SQL
Sequence Diagram Actor: Visitor / Account User / Administrator Objects: HTML Servlet EventHandler Database Example: (add a room available for reservation):
Sequence Diagram
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).
Difference from Design — remove old reservation records Design Implement ReservHandler DelOldReservHandler no generator of response Webpage DelOldReservWebpage (generate response) no generator of Handler HTMLForm (to generate Handler)
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”
“We need this thing to make a reservation.” Talking with Customer “Got it.”
“Make Reservation” in Requirements Doc
“Make Reservation” in Use Case Document
“Make Reservation” in Use Case Diagram
“Make Reservation” in Logical Class Diagram
“Make Reservation” in DB Schema
“Make Reservation” Sequence Diagram
“Make Reservation” Class API
“Make Reservation” in Help Manual
Test Plan
Unit Testing Test Plan
The system component functions properly. The component’s design requirement is satisfied. Unit testing is implemented by code writers. Unit Testing
Test Plan Unit Testing Code Review
Code Walkthrough / Review the code and accompanying documentation Code Inspection / Review code’s correctness, efficiency, performance / Code Walkthrough is implemented in the Room Reservation System
Test Plan Unit Testing Integration Testing Code Review
Integration Testing Verify the system components work together properly Tester Integration Leader Use Case Code Writer
Test Plan Unit Testing Integration Testing Code Review System Testing
Test Plan Unit Testing Integration Testing Code Review Function Testing Performance Testing Interface Testing System Testing Acceptance Testing
System Testing Function testing the system performs its functions as specified in the requirement Performance testing security, accuracy, speed and reliability / Acceptance testing / the system requested by customers is the system that was built
Integration and System Testing: Make A Non-Recurring Reservation 1. Requirement A User can reserve a given room for a specified time range. Each reservation must be associated with a contact person. Each reservation has a purpose (a brief piece of text). User: Account User
Sequence DiagramUse Case MakeNonRecurReservationReserve a room Integration and System Testing: Make A Non-Recurring Reservation 2. Sequence diagram and use case
Room Reservation System Testing Report Form Tester Name: Ming LiTesting Date: 12/10/01 Name of the Module: Make a NonRecurring Reservation Function of the Module: an account user makes a non recurring reservation Testing Procedure: Click the link for “Create Reservation” and fill in the form, and click the submit button Input Data: mingl(username), ROOMS meeting(event), CS2310(room), 12/10/2001(date), 12:00(start time), 13:00(end time) Output: Schedule table of that date, a color bar with a link to that reservation Test Result: correct function Security Checking: Ok, you must at least be a user to make a reservation Performance Evaluation: OK. The start time only have :00, :15, :30, :45 choices. User Interface Evaluation: OK. However, if there is too many different event description, there will be too many color bar links and they will make the output messy. Does this module implement the requirements?(please underline one) Yes No If no, your comments:
The Product
Client (basic)
Client (graphical)
Summary, Stories and Demo
People Class Professor Somesh Jha Group Mentors Will Benton Jerry Tutsch Group Members Brian Bowers Andrew Palmer Hongwei Zhu Ming Li Minyi Xu Naijun Zhou Keith Noto
Thank you! The Rooms Team would like to thank: Somesh Jha Will Benton Jerry Tutsch Marvin Solomon David Parter Everyone who gave input!