Project: Rooms And Colloquium System ROOMS Team CS706, Analysis of Software Artifacts

advertisement
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
Use Cases
Program Design
System Design
Implementation
Testing
Requirements
Requirements
Requirements
Requirements
Will
Benton
Requirements
Requirements
Will
Benton
Gerry
Tutsch
Requirements
Requirements
Will
Benton
Gerry
Tutsch
Dave
Parter
Requirements
Faculty
Requirements
Will
Benton
Gerry
Tutsch
Dave
Parter
Requirements
Current
Users
Faculty
Requirements
Will
Benton
Gerry
Tutsch
Dave
Parter
Requirements
Marv
Solomon
Current
Users
Faculty
Requirements
Will
Benton
Gerry
Tutsch
Dave
Parter
Use Cases
Use Case, for a User
High Level Design
High Level Design
User
High Level Design
Client
User
High Level Design
Client
User
Server
High Level Design
Client
User
Server
Persistence
High Level Design
Client
User
Server
Persistence
Software Targets
Tomcat
/
/
Java
/
/
Servlet API
/
JSSE
/
JavaMail
/
JAF
PostgreSQL
Refining Design
Browser
User
Servlet
PostgreSQL
Refining Design
Browser
Servlet
PostgreSQL
User
HTTP
or
HTTPS
JDBC
Components
Focusing
Browser
Servlet
PostgreSQL
User
HTTP
or
HTTPS
JDBC
Refining
Servlet
request
HTTP
response
Rooms
Servlet
Handler
JDBC
Refining
request
HTTP
response
Rooms
Servlet
Handler
HTML
Form
Web
Page
JDBC
Sequence
Refining
Handler
Factory
request
HTTP
response
Rooms
Servlet
Handler
HTML
Form
Web
Page
JDBC
Refining
Handler
Factory
request
HTTP
response
Rooms
Servlet
Handler
HTML
Form
Web
Page
JDBC
Refining
Handler
Factory
request
HTTP
response
Rooms
Servlet
Handler
HTML
Form
Web
Page
JDBC
Refining
<<abstract>>
HTMLForm
request
HTTP
response
Rooms
Servlet
<<concrete>>
Handler
<<concrete>>
HTMLForm
<<concrete>>
WebPage
JDBC
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)
request
Servlet
Event
Handler
SQL
Database
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
DelOldReservWebpage
response Webpage
no generator of
(generate response)
HTMLForm
Handler
(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.”
“Got it.”
Talking with Customer
“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
Test Plan
Unit Testing
Unit Testing
• The system component functions properly.
• The component’s design requirement is satisfied.
• Unit testing is implemented by code writers.
Test Plan
Unit Testing
Code Review
Code Review
/
Code Walkthrough
/
/
Code Inspection
/
/
Review the code and accompanying
documentation
Review code’s correctness, efficiency,
performance
Code Walkthrough is implemented in the Room
Reservation System
Test Plan
Unit Testing
Code Review
Integration Testing
Integration Testing
/
Verify the system components work together
properly
Tester
Use Case Code Writer
Integration
Leader
Test Plan
Unit Testing
Code Review
Integration Testing
System Testing
Test Plan
Unit Testing
Code Review
Integration Testing
Function Testing
Acceptance Testing
Performance Testing
Interface Testing
System Testing
System Testing
/
Function testing
/
/
Performance testing
/
/
the system performs its functions as specified in
the requirement
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
Integration and System Testing:
Make A Non-Recurring
Reservation
2. Sequence diagram and use case
Sequence Diagram
Use Case
MakeNonRecurReservation
Reserve a room
Room Reservation System Testing Report Form
Tester Name: Ming Li
Testing 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 (jha@cs.wisc.edu)
Group Mentors
•
Will Benton (willb@cs.wisc.edu),
•
Jerry Tutsch (tutsch@execpc.com)
Group Members
•
Brian Bowers (blbowers@cs.wisc.edu),
•
Andrew Palmer (palmeran@biostat.wisc.edu),
•
Hongwei Zhu (hzhu@cs.wisc.edu),
•
Ming Li (mingl@cs.wisc.edu),
•
Minyi Xu (minyi@cs.wisc.edu),
•
Naijun Zhou (naijun@cs.wisc.edu),
•
Keith Noto (noto@cs.wisc.edu)
Thank you!
The Rooms Team would like to
thank:
/
/
Somesh Jha
/
Will Benton
/
Jerry Tutsch
/
Marvin Solomon
/
David Parter
/
Everyone who gave input!
Download