Professional Documents
Culture Documents
Outline
Project Overview Action Items from Presentation2 Component Design Assessment Evaluation User Manual Code Documentation Project Evaluation Lesson Learnt Demo (Hotel Reservation System) Questions / Comments
Project Overview
Project Statement
The hotel reservation system will provide service to on-line customers, travel agents, and an administrator. On-line customers and travel agents can make searches, reservations and cancel an existing reservation on the hotel reservations web site. Administrator can add/update the hotel and the room information approve/disapprove a new travel agents account application and generate a monthly occupancy rate report for each hotel.
Action Items
Use cases for Formal Specification Middle Tier class diagram and Sequence Diagrams Any option is added for room preferences
The class diagram above captures middle-tier, business specific layer, of the Hotel Reservation System.
Detail View
5: cancel
6: cancelReservation(reservationNumber) 7: queryCancelReservation(reservationNumber)
The sequence diagram shows that the travel agent successfully applies to an account. Operation Signature: requestAccount(userName : String, email : String, password : String, companyName : String, status : String, phone : String, address : String, city : String, state : String, zip : String) : Boolean queryInsertAccount (userName : String, email : String, password : String, companyName : String, status : String, phone : String, address : String, city : String, state : String, zip : String) : Boolean
1: provides requested information 2: totalSales(userName, startingDate, endingDate) 3: queryTotalSales(userName, startingDate, endingDate) 4: totalSales 5: salesCommussion(totalSales) 6: commussion
Component Design
Clients
IIS 5.0 Server
HRS Database
MsSQL Server
Hotel::HotelResult #dg : DataGrid #lblTest : Label #lblMessage : Label #Label3 : Label #Label1 : Label #Label2 : Label #holder : PlaceHolder #dsHotelResult1 : dsHotelResult -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -BindData() -dg_SelectedIndexChanged(in sender : object, in e : EventArgs)
Hotel::SignIn #txtUserName : TextBox #txtPassword : TextBox #btnSignIn : Button #lblMessage : Label #Label3 : Label #Label1 : Label #Label2 : Label #RequiredFieldValidator1 : RequiredFieldValidator #RequiredFieldValidator2 : RequiredFieldValidator #btnRegister : Button -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -btnSignIn_Click(in sender : object, in e : EventArgs) -btnRegister_Click(in sender : object, in e : EventArgs)
Secure::ConfirmReservation #lblRsrvNum1 : Label #lblConfNum1 : Label #lblConfNum2 : Label #lblConfNum3 : Label #lblRsrvNum2 : Label #lblTest : Label #Label3 : Label #Label1 : Label #Label2 : Label #lblRsrvNum3 : Label -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -confirmationNumber() -display(in i : int, in reservNumber : string)
Secure::Edit #RegularExpressionValidator3 : RegularExpressionValidator #lblTest : Label #RegularExpressionValidator4 : RegularExpressionValidator #RegularExpressionValidator1 : RegularExpressionValidator #btnSubmit : Button #txtFirstName : TextBox #txtLastName : TextBox #txtAddress : TextBox #txtCity : TextBox #txtPhone : TextBox #txtCCNumber : TextBox #lstState : DropDownList #lstCardType : DropDownList #RequiredFieldValidator3 : RequiredFieldValidator #RequiredFieldValidator4 : RequiredFieldValidator #RequiredFieldValidator5 : RequiredFieldValidator #RequiredFieldValidator6 : RequiredFieldValidator #RequiredFieldValidator7 : RequiredFieldValidator #RequiredFieldValidator9 : RequiredFieldValidator #txtZip : TextBox #RequiredFieldValidator10 : RequiredFieldValidator #lstExpMonth : DropDownList #lblUserName : Label #Label3 : Label #Label1 : Label #Label2 : Label #lstExpYear : DropDownList -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -userInfo() -SelectListItem(in list : DropDownList, in text : string) -btnSubmit_Click(in sender : object, in e : EventArgs)
Administrator::ApproveTravelAgent #Label1 : Label #Label2 : Label #lblTitle : Label #dataSetTravelAgent1 : DataSetTravelAgent #lblMessage : Label #dgAgent : DataGrid #Label3 : Label -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -display() -DataGrid1_SelectedIndexChanged(in sender : object, in e : EventArgs) -disApprove(in source : object, in e : DataGridCommandEventArgs)
Administrator::UpdateRoom #Label1 : Label #Label2 : Label #btnFind : Button #txtHID : TextBox #RequiredFieldValidator7 : RequiredFieldValidator #CompareValidator2 : CompareValidator #lblMessage1 : Label #lblMessage : Label #dataSetRoom1 : DataSetRoom #dgRoom : DataGrid #lblTitle : Label #Label3 : Label -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -btnFind_Click(in sender : object, in e : EventArgs) -display(in hotelID : string) -OnEdit(in source : object, in e : DataGridCommandEventArgs) -OnCancel(in source : object, in e : DataGridCommandEventArgs) -OnUpdate(in source : object, in e : DataGridCommandEventArgs) -validEntries(in price : string) : bool -ChangePage(in source : object, in e : DataGridPageChangedEventArgs) -sortDoorNumber(in source : object, in e : DataGridSortCommandEventArgs) -PreSelect(in sender : object, in e : DataGridItemEventArgs)
Administrator -m_userName : string -m_password : string +Administrator() +VerifyLogin(in userName : string, in password : string) : bool +getWaitingAgent() : DataSetTravelAgent +approveAccount(in userName : string) : bool +disApproveAccount(in userName : string) : bool +occupancyReport(in hotelID : string, in startingDate : string, in endingDate : string) : string +userName() : string +password() : string
Mail +Mail() +sendMail(in e_address : string) : bool +approveAccount(in e_address : string) : bool +disApproveAccount(in e_address : string) : bool
Guest -m_reservationNumber : long +Guest() +getGuest(in guest : Guest) +reservationNumber() : long +deleteGuest(in reservationNumber : int) : bool
+Database() -conString() +queryLogin() +queryIsValidUserName() +queryIsValidAgentUserName() +queryGetUserInfo() +queryGetGuestInfo() +querySaveNewCustomer() +queryUpdateCustomerAccount() +querySaveNewReservation() +querySaveAgentReservation() +querySaveGuestInfo() +queryLoginAdmin() +queryNumOfRsrv() +queryFindHotel() +queryGetHotel() +queryIsValidHID() +querySaveNewHotel() +queryUpdateHotel() +queryNumberOfRoom() +queryIsValidDoorNumber() +queryGetAllRoom() +getRoomAvl() +getRoomAvl() +getRoomAvl() +queryRoomAvlPrice() +queryRoomAvlPrice() +queryGetRoom() +queryGetRoom() +querySaveNewRoom() -queryCreateRoomID() +queryUpdateRoom() +queryGetReservation() +queryCancelReservation() +queryDeleteGuest() +queryGetWaitingAgent() +queryApproveAccount() +queryDisApproveAccount() +queryTotalSales() +queryRequestAccount()
Assessment Evaluation
Test Scenario
Search hotel List hotels for particular search Select an hotel List available rooms Reserve rooms Login Place the reservation Display confirmation numbers
1 user, 14 http request, 5 repeat Deviation = 17 ms Throughput = 1606.73 /min Average = 33 ms CPU usage = 30 %
10 user, 14 http request, 5 repeat Deviation = 113 ms Throughput = 1548.72 /min Average = 372 ms CPU usage = 100 %
30 user, 14 http request, 5 repeat Deviation = 123 ms Throughput = 2792.24 /min Average = 526 ms CPU usage = 100 %
Performance Analyze
VTune Performance Analyzers is used to profile of performance of the customer site Test Scenario
Search hotel List hotels for particular search Select an hotel List available rooms Reserve rooms Login Place the reservation Display confirmation numbers
User Manual
The installation and set up guide and a detailed walkthrough of the project is provided in the user manual.
Code Documentation
Project Evaluation
SLOC (Actual)
Line of C# code = 3039 Line of auto generated C# code = 741 Line of XML code = 281 Line of HTML code = 120 Line of SQL code = 90 Line of CSS code = 53 Total 4324
Phase I (similar examples) = 2400 Phase II (Prototype) = 3200
SLOC (Predicted)
Phase I = 108.4 hrs Phase II = 122.84 hrs Phase III = 257.83 hrs Total = 489.17 hrs
Phase I, 108.4, 22% Phase I Phase II Phase III, 257.83, 53% Phase II, 122.84, 25% Phase III
Testing, 0, 0%
Testing Documentation
Research, 19.08, 16% Documentation, 50.7, 40% Research Design, 21.5, 18% Design Coding Testing Documentation Testing, 0, 0% Coding, 31.56, 26%
Lesson Learnt
Learning new technologies Importance of design Working on project that had 4300 SLOC
Demo
Questions / Comments