Sunteți pe pagina 1din 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 reservation’s web
site. Administrator can add/update the hotel and
the room information approve/disapprove a new
travel agent’s 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)
: SignIn.aspx : User : Database : EditAccount.aspx
: User

1: user provides requested information


2: verifyLogin()
3: queryLogin(User)

4: [verifyLogin = true] directRequestedPage


Action Items (cont)

Detail View
Action Items (cont)
: CancelReservation.aspx : Reservation : Database : ConfirmCancelReservation.aspx
: User

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)
: RequestAccount.aspx : TravelAgent : Database : Mail : ConfirmRequestAccount.aspx
: Agent

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)

: SalesReport.aspx : TravelAgent : Database


: Agent

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
 The diagram shows
3-tier type of
Clients
IIS 5.0 Server

ASP.NET
architecture.
Middle-Tier

CLR
Business Logic
Components
(C# Class
Library)

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 Hotel::HotelResult
#RegularExpressionValidator1 : RegularExpressionValidator
#RegularExpressionValidator2 : RegularExpressionValidator #dg : DataGrid
#RequiredFieldValidator3 : RequiredFieldValidator #lblTest : Label
#ValidationSummary1 : ValidationSummary #lblMessage : Label
#lstCountry : DropDownList
#txtPrice : TextBox
#Label3 : Label
#RegularExpressionValidator3 : RegularExpressionValidator #Label1 : Label
#CompareValidator1 : CompareValidator #Label2 : Label
#lblMessage : Label #holder : PlaceHolder
#Label3 : Label #dsHotelResult1 : dsHotelResult
#Label1 : Label
#Label2 : Label -Page_Load(in sender : object, in e : EventArgs)
#holder : PlaceHolder #OnInit(in e : EventArgs)
#lstSmoking : DropDownList -InitializeComponent()
#lstBed : DropDownList
#lstHandicap : DropDownList
-BindData()
#lstRoom : DropDownList -dg_SelectedIndexChanged(in sender : object, in e : EventArgs)
-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)
Component Design (cont)
Presentation Tier
Hotel::RoomPreferences
Hotel::AvailableRoom #lblHotel : Label
#lblHotel : Label #lblCheckIn : Label
#lblNumRoom : Label
#lblCheckIn : Label #lstSmoking : DropDownList
#lblCheckOut : Label #lstBed : DropDownList
#lblSmoking : Label
#lblNumRoom : Label #lblBed : Label
#Label3 : Label #btnCheckAval1 : Button
#Label1 : Label #dataSetAvailableRoom1 : DataSetAvailableRoom
#dg : DataGrid
#dsRoom : DataSetAvlRoom #dataSetAvlRoom1 : DataSetAvlRoom
#btnReserve : Button #lblHandicap : Label
#lstHandicap : DropDownList
#dgRoom : DataGrid #lblMessage : Label
#lblMessage : Label #btnSkip : LinkButton
#lblBedType : Label #lblRoom : Label
#lblTest : Label
#lblSmoking : Label #Label3 : Label
#lblAccessible : Label #Label1 : Label
#holder : PlaceHolder
#btnPreferences : Button #lblContinue : Label
#holder : PlaceHolder #lnkCont : LinkButton
#lblCheckOut : Label
-Page_Load(in sender : object, in e : EventArgs) -Page_Load(in sender : object, in e : EventArgs)
#OnInit(in e : EventArgs) #OnInit(in e : EventArgs)
-InitializeComponent() -InitializeComponent()
-btnCheckAval1_Click(in sender : object, in e : EventArgs)
-display() -checkAvailability()
-btnReserve_Click(in sender : object, in e : EventArgs) -dg_SelectedIndexChanged(in sender : object, in e : EventArgs)
-btnSkip_Click(in sender : object, in e : EventArgs)
-btnPreferences_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
Hotel::SignIn #lblAddress : Label
#lblCityStateZip : Label
#txtUserName : TextBox #lblSubTotal : Label
#lblTax : Label
#txtPassword : TextBox #lblCheckOut : Label
#btnSignIn : Button #lblDay : Label
#btnReserve : Button
#lblMessage : Label #dsGetRoom : DataSetAvlRoom
#Label3 : Label #lblMessage : Label
#dgReservation : DataGrid
#Label1 : Label #lblTest : Label
#Label2 : Label #lblNumRoom : Label
#RequiredFieldValidator1 : RequiredFieldValidator #Label3 : Label
#Label1 : Label
#RequiredFieldValidator2 : RequiredFieldValidator #Label2 : Label
#btnRegister : Button #lblTotalAmount : Label
-Page_Load(in sender : object, in e : EventArgs)
-Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs)
#OnInit(in e : EventArgs) -InitializeComponent()
-userInfo()
-InitializeComponent() -reservInfo()
-btnSignIn_Click(in sender : object, in e : EventArgs) -FillTheReservation()
-removeRoom(in rid : string, in sessionVar : string) : string
-btnRegister_Click(in sender : object, in e : EventArgs) -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
Component Design (cont)
Presentation Tier
Secure::CancelReservation
#lblMessage : Label
#btnFind : Button
Secure::ConfirmReservation #txtRsrvNumber : TextBox
#RegularExpressionValidator1 : RegularExpressionValidator
#lblRsrvNum1 : Label #RequiredFieldValidator1 : RequiredFieldValidator
#lblErrorMessage : Label
#lblConfNum1 : Label #Label3 : Label
#Label1 : Label
#lblConfNum2 : Label #Label2 : Label
#lblHotelInfo : Label
#lblConfNum3 : Label #lblHotelPhone : Label
#lblRsrvNum2 : Label #lblPhone : Label
#lblHotelAddress : Label
#lblTest : Label #lblAddress : Label
#lblHotelName : Label
#Label3 : Label #lblHotel : Label
#lblRoom : Label
#Label1 : Label #panel : Panel
#Label2 : Label #lblAccessible : Label
#lblHandicap : Label
#lblRsrvNum3 : Label #lblSmokingType : Label
#lblSmoking : Label
-Page_Load(in sender : object, in e : EventArgs) #lblBedType : Label
#lblBed : Label
#OnInit(in e : EventArgs) #lblRsrv : Label
#dgReservation : DataGrid
-InitializeComponent() #dataSetReservation1 : DataSetReservation
-confirmationNumber() -Page_Load(in sender : object, in e : EventArgs)
#OnInit(in e : EventArgs)
-display(in i : int, in reservNumber : string) -InitializeComponent()
-btnFind_Click(in sender : object, in e : EventArgs)
-display()
-dgReservation_SelectedIndexChanged(in sender : object, in e : EventArgs)
Component Design (cont)
Presentation Tier
Hotel::CreateNewAccount Secure::Edit
#lblTest : Label #RegularExpressionValidator3 : RegularExpressionValidator
#RegularExpressionValidator4 : RegularExpressionValidator
#lblTest : Label
#RegularExpressionValidator2 : RegularExpressionValidator
#RegularExpressionValidator1 : RegularExpressionValidator #RegularExpressionValidator4 : RegularExpressionValidator
#RequiredFieldValidator1 : RequiredFieldValidator #RegularExpressionValidator1 : RegularExpressionValidator
#ValUserID : RequiredFieldValidator #btnSubmit : Button
#btnSubmit : Button #txtFirstName : TextBox
#txtUserID : TextBox #txtLastName : TextBox
#txtPassword : TextBox #txtAddress : TextBox
#txtEmail : TextBox
#txtCity : TextBox
#txtFirstName : TextBox
#txtLastName : TextBox #txtPhone : TextBox
#txtHAddress : TextBox #txtCCNumber : TextBox
#txtHCity : TextBox #lstState : DropDownList
#txtHPhone : TextBox #lstCardType : DropDownList
#lstHState : DropDownList #RequiredFieldValidator3 : RequiredFieldValidator
#RequiredFieldValidator3 : RequiredFieldValidator #RequiredFieldValidator4 : RequiredFieldValidator
#RequiredFieldValidator4 : RequiredFieldValidator
#RequiredFieldValidator5 : RequiredFieldValidator
#RequiredFieldValidator5 : RequiredFieldValidator
#RequiredFieldValidator6 : RequiredFieldValidator #RequiredFieldValidator6 : RequiredFieldValidator
#RequiredFieldValidator7 : RequiredFieldValidator #RequiredFieldValidator7 : RequiredFieldValidator
#RequiredFieldValidator2 : RequiredFieldValidator #RequiredFieldValidator9 : RequiredFieldValidator
#RequiredFieldValidator9 : RequiredFieldValidator #txtZip : TextBox
#txthzip : TextBox #RequiredFieldValidator10 : RequiredFieldValidator
#lstCardType : DropDownList #lstExpMonth : DropDownList
#lstExpMonth : DropDownList
#lblUserName : Label
#lstExpYear : DropDownList
#RegularExpressionValidator3 : RegularExpressionValidator #Label3 : Label
#txtCCNumber : TextBox #Label1 : Label
#Label3 : Label #Label2 : Label
#Label1 : Label #lstExpYear : DropDownList
#Label2 : Label -Page_Load(in sender : object, in e : EventArgs)
#holder : PlaceHolder
#RequiredFieldValidator10 : RequiredFieldValidator
#OnInit(in e : EventArgs)
-InitializeComponent()
-Page_Load(in sender : object, in e : EventArgs)
#OnInit(in e : EventArgs) -userInfo()
-InitializeComponent() -SelectListItem(in list : DropDownList, in text : string)
-btnSubmit_Click(in sender : object, in e : EventArgs) -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 Hotel::SignOut
#txtHCity : TextBox
#txtHPhone : TextBox
#lstHState : DropDownList
#RequiredFieldValidator3 : RequiredFieldValidator -Page_Load(in sender : object, in e : EventArgs)
#RequiredFieldValidator5 : RequiredFieldValidator
#RequiredFieldValidator6 : RequiredFieldValidator #OnInit(in e : EventArgs)
#RequiredFieldValidator2 : RequiredFieldValidator
#RequiredFieldValidator9 : RequiredFieldValidator
-InitializeComponent()
#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)
Component Design (cont)
Presentation Tier
TravelAgent::SalesReport TravelAgent::GuestInformation
#Label1 : Label
#calDate1 : Calendar
#RegularExpressionValidator3 : RegularExpressionValidator
#btnCalender1 : ImageButton #lblTest : Label
#btnCalander2 : ImageButton #RegularExpressionValidator4 : RegularExpressionValidator
#btnReport : Button #RegularExpressionValidator1 : RegularExpressionValidator
#pnlReport : Panel #btnSubmit : Button
#lblSales : Label #txtFirstName : TextBox
#txtLastName : TextBox
#lblComm : Label
#txtHAddress : TextBox
#lblEnding : Label #txtHCity : TextBox
#lblStarting : Label #txtHPhone : TextBox
#lbltitle : Label #txtCCNumber : TextBox
#Label3 : Label #lstHState : DropDownList
#Label2 : Label #lstCardType : DropDownList
#RequiredFieldValidator3 : RequiredFieldValidator
#txtStarting : TextBox
#RequiredFieldValidator4 : RequiredFieldValidator
#txtEnding : TextBox #RequiredFieldValidator5 : RequiredFieldValidator
#RequiredFieldValidator1 : RequiredFieldValidator #RequiredFieldValidator6 : RequiredFieldValidator
#RequiredFieldValidator2 : RequiredFieldValidator #RequiredFieldValidator7 : RequiredFieldValidator
#CompareValidator1 : CompareValidator #RequiredFieldValidator9 : RequiredFieldValidator
#ValidationSummary1 : ValidationSummary #txthzip : TextBox
#RequiredFieldValidator10 : RequiredFieldValidator
#calDate2 : Calendar
#lstExpMonth : DropDownList
-Page_Load(in sender : object, in e : EventArgs) #lstExpYear : DropDownList
#OnInit(in e : EventArgs) #RegularExpressionValidator2 : RegularExpressionValidator
-InitializeComponent() #txtEmail : TextBox
#RequiredFieldValidator2 : RequiredFieldValidator
-btnCalender1_Click(in sender : object, in e : ImageClickEventArgs)
#Label3 : Label
-btnCalander2_Click(in sender : object, in e : ImageClickEventArgs)
-Page_Load(in sender : object, in e : EventArgs)
-calDate1_SelectionChanged(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs)
-calDate2_SelectionChanged(in sender : object, in e : EventArgs) -InitializeComponent()
-btnReport_Click(in sender : object, in e : EventArgs) -btnSubmit_Click(in sender : object, in e : EventArgs)
Component Design (cont)
Presentation Tier
Administrator::AddHotel Administrator::AddRoom
#btnAdd : Button
#txtHotelName : TextBox
#lblHName : Label
#txtPhoneNumber : TextBox #RequiredFieldValidator7 : RequiredFieldValidator
#txtAddress : TextBox #CompareValidator2 : CompareValidator
#txtCity : TextBox #Label3 : Label
#txtZip : TextBox #Label1 : Label
#lstStar : DropDownList #Label2 : Label
#btnFind : Button
#btnAdd : Button
#txtHID : TextBox
#Label1 : Label #lblDoorNumber : Label
#txtHotelID : TextBox #lblBedType : Label
#CompareValidator1 : CompareValidator #lblSmoking : Label
#RequiredFieldValidator1 : RequiredFieldValidator #lblAccessible : Label
#RequiredFieldValidator2 : RequiredFieldValidator #lblPrice : Label
#txtDoorNumber : TextBox
#RegularExpressionValidator1 : RegularExpressionValidator
#txtPrice : TextBox
#RequiredFieldValidator3 : RequiredFieldValidator #RequiredFieldValidator1 : RequiredFieldValidator
#RequiredFieldValidator4 : RequiredFieldValidator #RequiredFieldValidator2 : RequiredFieldValidator
#RequiredFieldValidator5 : RequiredFieldValidator #CompareValidator1 : CompareValidator
#RequiredFieldValidator6 : RequiredFieldValidator #CompareValidator3 : CompareValidator
#RegularExpressionValidator2 : RegularExpressionValidator #ValidationSummary1 : ValidationSummary
#lblMessage : Label
#lblMessage : Label
#lstBed : DropDownList
#Label2 : Label #lstSmoking : DropDownList
#Label3 : Label #lstAccessible : DropDownList
#lblTitle : Label #lblMessage1 : Label
#lstState : DropDownList -Page_Load(in sender : object, in e : EventArgs)
-Page_Load(in sender : object, in e : EventArgs) #OnInit(in e : EventArgs)
-InitializeComponent()
#OnInit(in e : EventArgs) -btnFind_Click(in sender : object, in e : EventArgs)
-InitializeComponent() -display(in hotel : Hotel)
-btnAdd_Click(in sender : object, in e : EventArgs) -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
Administrator::ApproveTravelAgent #calDate2 : Calendar
#CompareValidator1 : CompareValidator
#Label1 : Label #RequiredFieldValidator1 : RequiredFieldValidator
#Label2 : Label #pnlReport : Panel
#lblTitle : Label #lbltitle : Label
#dataSetTravelAgent1 : DataSetTravelAgent #lblEnding : Label
#lblMessage : Label #lblStarting : Label
#lblName : Label
#dgAgent : DataGrid
#txtHotelID : TextBox
#Label3 : Label #RequiredFieldValidator3 : RequiredFieldValidator
-Page_Load(in sender : object, in e : EventArgs) #CompareValidator2 : CompareValidator
#OnInit(in e : EventArgs) #lblMessage : Label
-InitializeComponent() #lblAddress : Label
#lblOccupancy : Label
-display()
#Label3 : Label
-DataGrid1_SelectedIndexChanged(in sender : object, in e : EventArgs) #Label1 : Label
-disApprove(in source : object, in e : DataGridCommandEventArgs) #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)
Component Design (cont)
Presentation Tier
Administrator::UpdateHotel
#lblMessage : Label
#RegularExpressionValidator2 : RegularExpressionValidator
#RequiredFieldValidator5 : RequiredFieldValidator
#RegularExpressionValidator1 : RegularExpressionValidator
#RequiredFieldValidator1 : RequiredFieldValidator Administrator::UpdateRoom
#RequiredFieldValidator2 : RequiredFieldValidator
#RequiredFieldValidator3 : RequiredFieldValidator
#Label1 : Label
#RequiredFieldValidator4 : RequiredFieldValidator #Label2 : Label
#Label1 : Label #btnFind : Button
#Label3 : Label #txtHID : TextBox
#btnUpdate : Button
#Label2 : Label #RequiredFieldValidator7 : RequiredFieldValidator
#txtHID : TextBox #CompareValidator2 : CompareValidator
#RequiredFieldValidator7 : RequiredFieldValidator #lblMessage1 : Label
#CompareValidator2 : CompareValidator
#btnFind : Button
#lblMessage : Label
#txtHotelName : TextBox #dataSetRoom1 : DataSetRoom
#txtPhoneNumber : TextBox #dgRoom : DataGrid
#lstStar : DropDownList #lblTitle : Label
#txtAddress : TextBox
#txtCity : TextBox #Label3 : Label
#txtZip : TextBox -Page_Load(in sender : object, in e : EventArgs)
#lblHotelID : Label
#OnInit(in e : EventArgs)
#lblHotelName : Label
#lblPhone : Label -InitializeComponent()
#lblRating : Label -btnFind_Click(in sender : object, in e : EventArgs)
#lblAddress : Label -display(in hotelID : string)
#lblCity : Label
#lblZip : Label
-OnEdit(in source : object, in e : DataGridCommandEventArgs)
#lstState : DropDownList -OnCancel(in source : object, in e : DataGridCommandEventArgs)
#lblState : Label -OnUpdate(in source : object, in e : DataGridCommandEventArgs)
#lblHotelInfo : Label -validEntries(in price : string) : bool
#lblHID : Label
#lblMessage1 : Label -ChangePage(in source : object, in e : DataGridPageChangedEventArgs)
-Page_Load(in sender : object, in e : EventArgs) -sortDoorNumber(in source : object, in e : DataGridSortCommandEventArgs)
#OnInit(in e : EventArgs) -PreSelect(in sender : object, in e : DataGridItemEventArgs)
-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)
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 Mail
-m_userName : string
-m_password : string
+Administrator()
+VerifyLogin(in userName : string, in password : string) : bool
+getWaitingAgent() : DataSetTravelAgent +Mail()
+approveAccount(in userName : string) : bool
+disApproveAccount(in userName : string) : bool
+sendMail(in e_address : string) : bool
+occupancyReport(in hotelID : string, in startingDate : string, in endingDate : string) : string
+userName() : string
+approveAccount(in e_address : string) : bool
+password() : string +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
+Database()
-m_reservationNumber : long -conString()
+queryLogin()
+Guest() +queryIsValidUserName()
+getGuest(in guest : Guest) +queryIsValidAgentUserName()
+reservationNumber() : long +queryGetUserInfo()
+queryGetGuestInfo()
+deleteGuest(in reservationNumber : int) : bool
+querySaveNewCustomer()
+queryUpdateCustomerAccount()
+querySaveNewReservation()
+querySaveAgentReservation()
+querySaveGuestInfo()
+queryLoginAdmin()
+queryNumOfRsrv()
Error +queryFindHotel()
+queryGetHotel()
-EVENT_LOG_SOURCE : string = "HRS"
+queryIsValidHID()
+Log(in message : string) +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
 SLOC (Predicted)
 Phase I (similar examples) = 2400
 Phase II (Prototype) = 3200
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 III

Phase II, 122.84, 25%


Project Evaluation (cont)
Phase I Break Down

Documentation, 27.6, 25%

Testing, 0, 0%
Research
Design
Coding
Coding, 18, 17%
Research, 60.8, 56% Testing
Design, 2, 2% Documentation
Project Evaluation (cont)
Phase II Break Down

Research, 19.08, 16%


Documentation, 50.7, Research
40% Design, 21.5, 18% Design
Coding
Testing
Documentation
Testing, 0, 0% Coding, 31.56, 26%
Project Evaluation (cont)
Phase III Break Down

Research, 18.58, 7%
Documentation, 38, 15%
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

S-ar putea să vă placă și