Sie sind auf Seite 1von 52

Online Hotel Reservation System

MSE Presentation III Cem Oguzhan

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

Action Items (cont)

The class diagram above captures middle-tier, business specific layer, of the Hotel Reservation System.

Action Items (Cont)


: User : SignIn.aspx : User : Database : EditAccount.aspx 1: user provides requested information 2: verifyLogin() 3: queryLogin(User)

4: [verifyLogin = true] directRequestedPage

Action Items (cont)

Detail View

Action Items (cont)


: User : CancelReservation.aspx : Reservation : Database : ConfirmCancelReservation.aspx 1: provides requested information 2: getReservation(reservationNumber) 3: queryGetReservation(reservationNumber)

4: [dataSet.Rows.Count >0 && dataSet.Tables["Reservation"].Rows[0]["UserName"] == Session["User"] ]display()

5: cancel

6: cancelReservation(reservationNumber) 7: queryCancelReservation(reservationNumber)

8: [cancelReservation = true] directConfirmCancelReservation.aspx

Action Items (cont)


: Agent : RequestAccount.aspx : TravelAgent : Database : Mail : ConfirmRequestAccount.aspx 1: provide requested information 2: isValidUserName(userName) 3: queryIsValidUserName(userName) 4: [isValid = true] requestAccount() 5: queryInsertAccount()

6: [requestAccount = true] sendMail(e_address)

7: [requestAccount = true] directed ConfirmRequestAccount.aspx

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

Action Items (cont)


: Agent : SalesReport.aspx : TravelAgent : Database

1: provides requested information 2: totalSales(userName, startingDate, endingDate) 3: queryTotalSales(userName, startingDate, endingDate) 4: totalSales 5: salesCommussion(totalSales) 6: commussion

Action Items (cont)

Component Design

Clients
IIS 5.0 Server

ASP.NET Middle-Tier CLR


Business Logic Components (C# Class Library)

The diagram shows 3-tier type of architecture.

Data Access via ADO.NET

HRS Database

MsSQL Server

Component Design (cont) Presentation tier


Hotel::FindHotel #txtCity : TextBox #lstState : DropDownList #btnCalender1 : ImageButton #btnCalander2 : ImageButton #txtCheckIn : TextBox #txtCheckOut : TextBox #calDate1 : Calendar #calDate2 : Calendar #btnFind : Button #RequiredFieldValidator1 : RequiredFieldValidator #RequiredFieldValidator2 : RequiredFieldValidator #RegularExpressionValidator1 : RegularExpressionValidator #RegularExpressionValidator2 : RegularExpressionValidator #RequiredFieldValidator3 : RequiredFieldValidator #ValidationSummary1 : ValidationSummary #lstCountry : DropDownList #txtPrice : TextBox #RegularExpressionValidator3 : RegularExpressionValidator #CompareValidator1 : CompareValidator #lblMessage : Label #Label3 : Label #Label1 : Label #Label2 : Label #holder : PlaceHolder #lstSmoking : DropDownList #lstBed : DropDownList #lstHandicap : DropDownList #lstRoom : DropDownList -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -btnCalender1_Click(in sender : object, in e : ImageClickEventArgs) -calDate1_SelectionChanged(in sender : object, in e : EventArgs) -btnCalander2_Click(in sender : object, in e : ImageClickEventArgs) -calDate2_SelectionChanged(in sender : object, in e : EventArgs) -validateCheckIn(in checkIn : DateTime) : bool -btnFind_Click(in sender : object, in e : EventArgs) -calDate2_DayRender(in sender : object, in e : DayRenderEventArgs) -calDate1_DayRender(in sender : object, in e : DayRenderEventArgs)

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)

Component Design (cont) Presentation Tier


Hotel::AvailableRoom #lblHotel : Label #lblCheckIn : Label #lblCheckOut : Label #lblNumRoom : Label #Label3 : Label #Label1 : Label #dsRoom : DataSetAvlRoom #btnReserve : Button #dgRoom : DataGrid #lblMessage : Label #lblBedType : Label #lblSmoking : Label #lblAccessible : Label #btnPreferences : Button #holder : PlaceHolder -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -display() -btnReserve_Click(in sender : object, in e : EventArgs) -btnPreferences_Click(in sender : object, in e : EventArgs)
Hotel::RoomPreferences #lblHotel : Label #lblCheckIn : Label #lblNumRoom : Label #lstSmoking : DropDownList #lstBed : DropDownList #lblSmoking : Label #lblBed : Label #btnCheckAval1 : Button #dataSetAvailableRoom1 : DataSetAvailableRoom #dg : DataGrid #dataSetAvlRoom1 : DataSetAvlRoom #lblHandicap : Label #lstHandicap : DropDownList #lblMessage : Label #btnSkip : LinkButton #lblRoom : Label #lblTest : Label #Label3 : Label #Label1 : Label #holder : PlaceHolder #lblContinue : Label #lnkCont : LinkButton #lblCheckOut : Label -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -btnCheckAval1_Click(in sender : object, in e : EventArgs) -checkAvailability() -dg_SelectedIndexChanged(in sender : object, in e : EventArgs) -btnSkip_Click(in sender : object, in e : EventArgs) -lnkCont_Click(in sender : object, in e : EventArgs)

Component Design (cont) Presentation Tier


Secure::Reservation #lblHotel : Label #lblName : Label #lblCheckIn : Label #lblAddress : Label #lblCityStateZip : Label #lblSubTotal : Label #lblTax : Label #lblCheckOut : Label #lblDay : Label #btnReserve : Button #dsGetRoom : DataSetAvlRoom #lblMessage : Label #dgReservation : DataGrid #lblTest : Label #lblNumRoom : Label #Label3 : Label #Label1 : Label #Label2 : Label #lblTotalAmount : Label -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -userInfo() -reservInfo() -FillTheReservation() -removeRoom(in rid : string, in sessionVar : string) : string -dgReservation_SelectedIndexChanged(in sender : object, in e : EventArgs) +GetRandom(in seed : int) : Random -btnReserve_Click(in sender : object, in e : EventArgs) -createRsrvNum() : string +GetRandom() : Random

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)

Component Design (cont) Presentation Tier


Secure::CancelReservation #lblMessage : Label #btnFind : Button #txtRsrvNumber : TextBox #RegularExpressionValidator1 : RegularExpressionValidator #RequiredFieldValidator1 : RequiredFieldValidator #lblErrorMessage : Label #Label3 : Label #Label1 : Label #Label2 : Label #lblHotelInfo : Label #lblHotelPhone : Label #lblPhone : Label #lblHotelAddress : Label #lblAddress : Label #lblHotelName : Label #lblHotel : Label #lblRoom : Label #panel : Panel #lblAccessible : Label #lblHandicap : Label #lblSmokingType : Label #lblSmoking : Label #lblBedType : Label #lblBed : Label #lblRsrv : Label #dgReservation : DataGrid #dataSetReservation1 : DataSetReservation -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -btnFind_Click(in sender : object, in e : EventArgs) -display() -dgReservation_SelectedIndexChanged(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)

Component Design (cont) Presentation Tier


Hotel::CreateNewAccount #lblTest : Label #RegularExpressionValidator4 : RegularExpressionValidator #RegularExpressionValidator2 : RegularExpressionValidator #RegularExpressionValidator1 : RegularExpressionValidator #RequiredFieldValidator1 : RequiredFieldValidator #ValUserID : RequiredFieldValidator #btnSubmit : Button #txtUserID : TextBox #txtPassword : TextBox #txtEmail : TextBox #txtFirstName : TextBox #txtLastName : TextBox #txtHAddress : TextBox #txtHCity : TextBox #txtHPhone : TextBox #lstHState : DropDownList #RequiredFieldValidator3 : RequiredFieldValidator #RequiredFieldValidator4 : RequiredFieldValidator #RequiredFieldValidator5 : RequiredFieldValidator #RequiredFieldValidator6 : RequiredFieldValidator #RequiredFieldValidator7 : RequiredFieldValidator #RequiredFieldValidator2 : RequiredFieldValidator #RequiredFieldValidator9 : RequiredFieldValidator #txthzip : TextBox #lstCardType : DropDownList #lstExpMonth : DropDownList #lstExpYear : DropDownList #RegularExpressionValidator3 : RegularExpressionValidator #txtCCNumber : TextBox #Label3 : Label #Label1 : Label #Label2 : Label #holder : PlaceHolder #RequiredFieldValidator10 : RequiredFieldValidator -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -btnSubmit_Click(in sender : object, in e : EventArgs)

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)

Component Design (cont) Presentation Tier


Hotel::RequestAccount #lblTest : Label #RegularExpressionValidator4 : RegularExpressionValidator #RegularExpressionValidator2 : RegularExpressionValidator #RegularExpressionValidator1 : RegularExpressionValidator #RequiredFieldValidator1 : RequiredFieldValidator #ValUserID : RequiredFieldValidator #btnSubmit : Button #txtUserID : TextBox #txtPassword : TextBox #txtEmail : TextBox #txtHAddress : TextBox #txtHCity : TextBox #txtHPhone : TextBox #lstHState : DropDownList #RequiredFieldValidator3 : RequiredFieldValidator #RequiredFieldValidator5 : RequiredFieldValidator #RequiredFieldValidator6 : RequiredFieldValidator #RequiredFieldValidator2 : RequiredFieldValidator #RequiredFieldValidator9 : RequiredFieldValidator #txthzip : TextBox #txtCompanyName : TextBox #Label3 : Label #Label1 : Label #holder : PlaceHolder #RequiredFieldValidator10 : RequiredFieldValidator -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -btnSubmit_Click(in sender : object, in e : EventArgs)

Hotel::SignOut -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent()

Component Design (cont) Presentation Tier


TravelAgent::SalesReport #calDate1 : Calendar #btnCalender1 : ImageButton #btnCalander2 : ImageButton #btnReport : Button #pnlReport : Panel #lblSales : Label #lblComm : Label #lblEnding : Label #lblStarting : Label #lbltitle : Label #Label3 : Label #Label2 : Label #txtStarting : TextBox #txtEnding : TextBox #RequiredFieldValidator1 : RequiredFieldValidator #RequiredFieldValidator2 : RequiredFieldValidator #CompareValidator1 : CompareValidator #ValidationSummary1 : ValidationSummary #calDate2 : Calendar -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -btnCalender1_Click(in sender : object, in e : ImageClickEventArgs) -btnCalander2_Click(in sender : object, in e : ImageClickEventArgs) -calDate1_SelectionChanged(in sender : object, in e : EventArgs) -calDate2_SelectionChanged(in sender : object, in e : EventArgs) -btnReport_Click(in sender : object, in e : EventArgs)
TravelAgent::GuestInformation #Label1 : Label #RegularExpressionValidator3 : RegularExpressionValidator #lblTest : Label #RegularExpressionValidator4 : RegularExpressionValidator #RegularExpressionValidator1 : RegularExpressionValidator #btnSubmit : Button #txtFirstName : TextBox #txtLastName : TextBox #txtHAddress : TextBox #txtHCity : TextBox #txtHPhone : TextBox #txtCCNumber : TextBox #lstHState : DropDownList #lstCardType : DropDownList #RequiredFieldValidator3 : RequiredFieldValidator #RequiredFieldValidator4 : RequiredFieldValidator #RequiredFieldValidator5 : RequiredFieldValidator #RequiredFieldValidator6 : RequiredFieldValidator #RequiredFieldValidator7 : RequiredFieldValidator #RequiredFieldValidator9 : RequiredFieldValidator #txthzip : TextBox #RequiredFieldValidator10 : RequiredFieldValidator #lstExpMonth : DropDownList #lstExpYear : DropDownList #RegularExpressionValidator2 : RegularExpressionValidator #txtEmail : TextBox #RequiredFieldValidator2 : RequiredFieldValidator #Label3 : Label -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -btnSubmit_Click(in sender : object, in e : EventArgs)

Component Design (cont) Presentation Tier


Administrator::AddHotel #txtHotelName : TextBox #txtPhoneNumber : TextBox #txtAddress : TextBox #txtCity : TextBox #txtZip : TextBox #lstStar : DropDownList #btnAdd : Button #Label1 : Label #txtHotelID : TextBox #CompareValidator1 : CompareValidator #RequiredFieldValidator1 : RequiredFieldValidator #RequiredFieldValidator2 : RequiredFieldValidator #RegularExpressionValidator1 : RegularExpressionValidator #RequiredFieldValidator3 : RequiredFieldValidator #RequiredFieldValidator4 : RequiredFieldValidator #RequiredFieldValidator5 : RequiredFieldValidator #RequiredFieldValidator6 : RequiredFieldValidator #RegularExpressionValidator2 : RegularExpressionValidator #lblMessage : Label #Label2 : Label #Label3 : Label #lblTitle : Label #lstState : DropDownList -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -btnAdd_Click(in sender : object, in e : EventArgs)
Administrator::AddRoom #btnAdd : Button #lblHName : Label #RequiredFieldValidator7 : RequiredFieldValidator #CompareValidator2 : CompareValidator #Label3 : Label #Label1 : Label #Label2 : Label #btnFind : Button #txtHID : TextBox #lblDoorNumber : Label #lblBedType : Label #lblSmoking : Label #lblAccessible : Label #lblPrice : Label #txtDoorNumber : TextBox #txtPrice : TextBox #RequiredFieldValidator1 : RequiredFieldValidator #RequiredFieldValidator2 : RequiredFieldValidator #CompareValidator1 : CompareValidator #CompareValidator3 : CompareValidator #ValidationSummary1 : ValidationSummary #lblMessage : Label #lstBed : DropDownList #lstSmoking : DropDownList #lstAccessible : DropDownList #lblMessage1 : Label -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -btnFind_Click(in sender : object, in e : EventArgs) -display(in hotel : Hotel) -btnAdd_Click(in sender : object, in e : EventArgs)

Component Design (cont) Presentation Tier


Administrator::Report #ValidationSummary1 : ValidationSummary #btnReport : Button #txtEnding : TextBox #calDate1 : Calendar #btnCalender1 : ImageButton #btnCalander2 : ImageButton #txtStarting : TextBox #calDate2 : Calendar #CompareValidator1 : CompareValidator #RequiredFieldValidator1 : RequiredFieldValidator #pnlReport : Panel #lbltitle : Label #lblEnding : Label #lblStarting : Label #lblName : Label #txtHotelID : TextBox #RequiredFieldValidator3 : RequiredFieldValidator #CompareValidator2 : CompareValidator #lblMessage : Label #lblAddress : Label #lblOccupancy : Label #Label3 : Label #Label1 : Label #RequiredFieldValidator2 : RequiredFieldValidator -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -calDate1_SelectionChanged(in sender : object, in e : EventArgs) -calDate2_SelectionChanged(in sender : object, in e : EventArgs) -btnCalender1_Click(in sender : object, in e : ImageClickEventArgs) -btnCalander2_Click(in sender : object, in e : ImageClickEventArgs) -btnReport_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)

Component Design (cont) Presentation Tier


Administrator::UpdateHotel #lblMessage : Label #RegularExpressionValidator2 : RegularExpressionValidator #RequiredFieldValidator5 : RequiredFieldValidator #RegularExpressionValidator1 : RegularExpressionValidator #RequiredFieldValidator1 : RequiredFieldValidator #RequiredFieldValidator2 : RequiredFieldValidator #RequiredFieldValidator3 : RequiredFieldValidator #RequiredFieldValidator4 : RequiredFieldValidator #Label1 : Label #Label3 : Label #btnUpdate : Button #Label2 : Label #txtHID : TextBox #RequiredFieldValidator7 : RequiredFieldValidator #CompareValidator2 : CompareValidator #btnFind : Button #txtHotelName : TextBox #txtPhoneNumber : TextBox #lstStar : DropDownList #txtAddress : TextBox #txtCity : TextBox #txtZip : TextBox #lblHotelID : Label #lblHotelName : Label #lblPhone : Label #lblRating : Label #lblAddress : Label #lblCity : Label #lblZip : Label #lstState : DropDownList #lblState : Label #lblHotelInfo : Label #lblHID : Label #lblMessage1 : Label -Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs) -InitializeComponent() -btnFind_Click(in sender : object, in e : EventArgs) -display(in hotel : Hotel) -SelectListItem(in list : DropDownList, in text : string) -btnUpdate_Click(in sender : object, in e : EventArgs)

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)

Component Design (cont) Middle Tier


User -m_userName : string -m_email : string -m_password : string -m_phone : string -m_address : string -m_city : string -m_state : string -m_zip : string +User() +VerifyLogin(in user : User) : bool +isValidUserName(in userName : string) : bool +getUser(in user : User) +userName() : string +email() : string +password() : string +address() : string +city() : string +state() : string +zip() : string +phone() : string

Component Design (cont) Middle Tier


TravelAgent -m_companyName : string -m_status : string +TravelAgent() +requestAccount(in userName : string, in email : string, in password : string, in companyName : string, in phone : string, in address : string, in city : string, in state : string, in zip : string) : bool +totalSales(in userName : string, in startingDate : string, in endingDate : string) : string +salesCommussion(in totalSales : double) : double +companyName() : string +status() : string

Component Design (cont) Middle Tier


Customer -m_firstName : string -m_lastName : string -m_cardType : string -m_cardNumber : long -m_experationDate : string +Customer() +createAccount(in userName : string, in email : string, in password : string, in firstName : string, in lastName : string, in cardType : string, in cardNumber : long, in experation : string, in phone : string, in address : string, in city : string, in state : string, in zip : int) : bool +updateAccount(in userName : string, in firstName : string, in lastName : string, in cardType : string, in cardNumber : long, in experationDate : string, in phone : string, in address : string, in city : string, in state : string, in zip : string) : bool +firstName() : string +lastName() : string +cardType() : string +cardNumber() : long +experationDate() : string

Component Design (cont) Middle Tier

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

Component Design (cont) Middle Tier


Hotel -m_hotelID : string -m_name : string -m_street : string -m_city : string -m_state : string -m_zip : string -m_phone : string -m_rating : int +Hotel() +isValidHID(in hotelID : string) : bool +findHotel(in city : string, in state : string) : dsHotelResult +getHotel(in hotelID : string) : bool +newHotel(in hotelID : string, in name : string, in address : string, in city : string, in state : string, in zip : string, in phone : string, in rating : int) : bool +updateHotel(in hotelID : string, in name : string, in address : string, in city : string, in state : string, in zip : string, in phone : string, in rating : int) : bool +numberOfRoom(in hotelID : string) : int +occupancyRate(in hotelID : string, in startingDate : string, in endingDate : string) : double +hotelID() : string +name() : string +street() : string +city() : string +state() : string +zip() : string +phone() : string +rating() : int

Component Design (cont) Middle Tier


Room -m_roomNumber : int -m_price : double -m_bedType : string -m_smoking : string -m_handicap_access : string -m_roomLock : string +Room() +isValidDoorNumber(in doorNumber : string, in hotelID : string) : bool +getRoomAvl(in hotelID : string, in bed : string, in smoking : string, in handicap_access : string, in checkIn : string, in checkOut : string) : DataSetAvlRoom +getRoomAvl(in hotelID : string, in bed : string, in smoking : string, in handicap_access : string, in checkIn : string, in checkOut : string, in price : double) : DataSetAvlRoom +getRoomAvl(in hotelID : string, in bed : string, in smoking : string, in handicap_access : string, in checkIn : string, in checkOut : string, in price : double, in ds : DataSetAvlRoom) : DataSetAvlRoom +getRoomAvlPrice(in hotelID : string, in price : string, in checkIn : string, in checkOut : string) : DataSetAvlRoom +getRoomAvlPrice(in hotelID : string, in bed : string, in smoking : string, in handicap_access : string, in checkIn : string, in checkOut : string, in price : double) : DataSetAvlRoom +getRoom(in roomNumber : string) : DataSetAvlRoom +getRoom(in roomNumber : string, in ds : DataSetAvlRoom) : DataSetAvlRoom +getAllRoom(in hotelID : string) : DataSetRoom +newRoom(in hotelID : string, in doorNumber : string, in price : double, in bedType : string, in smoking : string, in handicap_access : string) : bool +updateRoom(in roomNumber : int, in price : double, in bedType : string, in smoking : string, in handicap_access : string) : bool +roomNumber() : int +price() : double +bedType() : string +smoking() : string +handicap_access() : string +roomLock() : string

Component Design (cont) Middle Tier


Reservation -m_reservationNumber : int -m_checkIn : string -m_checkOut : string -m_resvDate : string -m_price : double -m_totalCost : double -m_roomNumber : int -m_userName : string -m_hotelID : string +Reservation() +makeReservation(in r : Reservation) : bool +agentMakeReservation(in r : Reservation, in guest : Customer) : bool +getReservation(in reservationNumber : int) : DataSetReservation +cancelReservation(in reservationNumber : int) : bool +calculateTotal(in r : Reservation) : double +calculateTax(in r : Reservation) : double +reservationNumber() : int +checkIn() : string +checkOut() : string +resvDate() : string +price() : double +totalCost() : double +roomNumber() : int +userName() : string +hotelID() : string

Component Design (cont) Middle Tier


Database

Guest -m_reservationNumber : long +Guest() +getGuest(in guest : Guest) +reservationNumber() : long +deleteGuest(in reservationNumber : int) : bool

Error -EVENT_LOG_SOURCE : string = "HRS" +Log(in message : string)

+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()

Component Design (cont) Data Tier

Assessment Evaluation

Test Case Results

Assessment Evaluation (cont)

Performance Testing with JMeter

Test Scenario

Search hotel List hotels for particular search Select an hotel List available rooms Reserve rooms Login Place the reservation Display confirmation numbers

Assessment Evaluation (cont)

1 user, 14 http request, 5 repeat Deviation = 17 ms Throughput = 1606.73 /min Average = 33 ms CPU usage = 30 %

Assessment Evaluation (cont)

10 user, 14 http request, 5 repeat Deviation = 113 ms Throughput = 1548.72 /min Average = 372 ms CPU usage = 100 %

Assessment Evaluation (cont)

30 user, 14 http request, 5 repeat Deviation = 123 ms Throughput = 2792.24 /min Average = 526 ms CPU usage = 100 %

Assessment Evaluation (cont)

Performance Testing Result Summary

Assessment Evaluation (cont)

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

Assessment Evaluation (cont)

1 user , 14 http request and 5 repeat CPU usage 100 %

Assessment Evaluation (cont)

Assessment Evaluation (cont)

10 user , 14 http request and 5 repeat CPU usage 100 %

User Manual

The installation and set up guide and a detailed walkthrough of the project is provided in the user manual.

Code Documentation

MSDN-online style web pages

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)

Project Evaluation (cont)

Project duration (actual)


Phase I = 108.4 hrs Phase II = 122.84 hrs Phase III = 257.83 hrs Total = 489.17 hrs

Project duration (estimate) = 382 hrs

Project Evaluation (cont)


Break Down for Each Phase

Phase I, 108.4, 22% Phase I Phase II Phase III, 257.83, 53% Phase II, 122.84, 25% Phase III

Project Evaluation (cont)


Phase I Break Down

Documentation, 27.6, 25%

Testing, 0, 0%

Research Design Coding


Coding, 18, 17% Research, 60.8, 56% Design, 2, 2%

Testing Documentation

Project Evaluation (cont)


Phase II Break Down

Research, 19.08, 16% Documentation, 50.7, 40% Research Design, 21.5, 18% Design Coding Testing Documentation Testing, 0, 0% Coding, 31.56, 26%

Project Evaluation (cont)


Phase III Break Down

Documentation, 38, 15%

Research, 18.58, 7% Design, 6, 2%

Testing, 34, 13%

Research Design Coding Testing Documentation

Coding, 161.25, 63%

Lesson Learnt

Learning new technologies Importance of design Working on project that had 4300 SLOC

Demo

Questions / Comments

Das könnte Ihnen auch gefallen