Upload
alicia-jacobs
View
244
Download
4
Embed Size (px)
Citation preview
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.
Customer
firstName : StringlastName : StringcardType : StringcardNumber : longexperationDate : String
createAccount()updateAccount()
sendMail(e_address : String) : BooleanapproveAccount(e-address : String) : BooleandisApproveAccount(e_address : String) : Boolean
Database
conString()queryLogin()queryIsValidUserName()queryIsValidAgentUserName()queyGetUserInfo()queryGetGuestInfo()querySaveNewCustomer()queyUpdateCustomerAccount()querySaveNewReservation()querySaveAgentReservation()querySaveGuestInfo()queryLoginAdmin()queryNumOfReserv()queryFindHotel()queryGetHotel()queryIsValidHID()querySaveNewHotel()queryUpdateHotel()queryNumberOfRoom()queryIsValidDoorNumber()queryGetAllRoom()getRoomAvl()getRoomAvl()getRoomAvl()queryRoomAvlPrice()queryRoomAvlPrice()queryGetRoom()querySaveNewRoom()queryCreateRoomID()queryUpdateRooml()queryGetReservation()queryCancelReservation()queryDeleteGuest()queryGetWaitingAgent()queryApproveAccount()queryDisApproveAccount()queryTotalSales()queryRequestAccount()
User
userName : Stringemail : Stringpassword : Stringphone : Stringaddress : Stringcity : Stringstate : Stringzip : String
verifyLogin()isValidUserName()getUser()
Room
roomNumber : Integerprice : DoublebedType : Stringsmoking : Stringhandicab_access : StringroomLock : Date
getRoomAvl()getRoomAvl()getRoomAvl()getRoomAvlPrice()getRoomAvlPrice()getRoom()getRoom()getAllRoom()newRoom()updateRoom()isValidDoorNumber()
Reservation
reservationNumber : IntegercheckIn : DatecheckOut : DateresvDate : Dateprice : DoubletotalCost : Double
makeReservation()agentMakeReservation()getReservation()cancelReservation()calculateTotal()calculateTax()
10..*
+allocation
1
+theReservation
0..*0..*
1
+theReservation
0..*
+theUser1
TravelAgent
companyName : Stringstatus : String
requestAccount()totalSales()salesCommission()
1
0..*
Hotel
hotelID : Stringname : Stringaddress : Stringcity : Stringstate : Stringzip : Stringphone : Stringrating : Integer
findHotel()getHotel()newHotel()updateHotel()numberOfRoom()occupancyRate()isValidHotelID()
1..*
1
+theRoom 1..*
+theHotel1
0..*
1
+theReservation
0..*
+theHotel
1
Administrator
userName : Stringpassword : String
verifyLogin()getWaitingAgent()approveAccount()disApproveAccount()occupancyReport()
0..*
1
+requestAccount
0..*
+approveAccount
1
1
0..*
0..*
1+theHotel
0..*
+theAdmin
1
GuestreservationNumber : long
getGuest()reservationNumber()deleteGuest()
ErrorEVENT_LOG_SOURCE : String = "HRS"
Log()
Action Items (Cont)
: User : User : SignIn.aspx : SignIn.aspx : User : User : EditAccount.aspx : EditAccount.aspx : Database : Database
1: user provides requested information
2: verifyLogin()
4: [verifyLogin = true] directRequestedPage
3: queryLogin(User)
Action Items (cont)
: User : User : CancelReservation.aspx : CancelReservation.aspx : Reservation : Reservation : ConfirmCancelReservation.aspx : ConfirmCancelReservation.aspx : Database : Database
1: provides requested information
5: cancel
2: getReservation(reservationNumber)
6: cancelReservation(reservationNumber)
8: [cancelReservation = true] directConfirmCancelReservation.aspx
3: queryGetReservation(reservationNumber)
7: queryCancelReservation(reservationNumber)
4: [dataSet.Rows.Count >0 && dataSet.Tables["Reservation"].Rows[0]["UserName"] == Session["User"] ]display()
Action Items (cont)
: Agent : Agent : RequestAccount.aspx : RequestAccount.aspx : TravelAgent : TravelAgent : Database : Database : Mail : Mail : ConfirmRequestAccount.aspx : 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
1: provide requested information
4: [isValid = true] requestAccount()
6: [requestAccount = true] sendMail(e_address)
5: queryInsertAccount()
7: [requestAccount = true] directed ConfirmRequestAccount.aspx
2: isValidUserName(userName)
3: queryIsValidUserName(userName)
Action Items (cont)
: Agent : Agent : SalesReport.aspx : SalesReport.aspx : TravelAgent : TravelAgent : Database : Database
1: provides requested information2: totalSales(userName, startingDate, endingDate)
3: queryTotalSales(userName, startingDate, endingDate)
4: totalSales
5: salesCommussion(totalSales)
6: commussion
Component Design
IIS 5.0 Server
Business LogicComponents
(C# ClassLibrary)
Data Access viaADO.NET
Middle-Tier
CLR
HRSDatabase
MsSQLServer
ASP.NET
Clients
The diagram shows 3-tier type of architecture.
Component Design (cont) Presentation tier
-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)
#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
Hotel::FindHotel
-Page_Load(in sender : object, in e : EventArgs)#OnInit(in e : EventArgs)-InitializeComponent()-BindData()-dg_SelectedIndexChanged(in sender : object, in e : EventArgs)
#dg : DataGrid#lblTest : Label#lblMessage : Label#Label3 : Label#Label1 : Label#Label2 : Label#holder : PlaceHolder#dsHotelResult1 : dsHotelResult
Hotel::HotelResult
Component Design (cont)Presentation Tier
-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)
#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
Hotel::AvailableRoom
-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)
#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
Hotel::RoomPreferences
Component Design (cont)Presentation Tier
-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)
#txtUserName : TextBox#txtPassword : TextBox#btnSignIn : Button#lblMessage : Label#Label3 : Label#Label1 : Label#Label2 : Label#RequiredFieldValidator1 : RequiredFieldValidator#RequiredFieldValidator2 : RequiredFieldValidator#btnRegister : Button
Hotel::SignIn
-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
#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
Secure::Reservation
Component Design (cont)Presentation Tier
-Page_Load(in sender : object, in e : EventArgs)#OnInit(in e : EventArgs)-InitializeComponent()-confirmationNumber()-display(in i : int, in reservNumber : string)
#lblRsrvNum1 : Label#lblConfNum1 : Label#lblConfNum2 : Label#lblConfNum3 : Label#lblRsrvNum2 : Label#lblTest : Label#Label3 : Label#Label1 : Label#Label2 : Label#lblRsrvNum3 : Label
Secure::ConfirmReservation
-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)
#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
Secure::CancelReservation
Component Design (cont)Presentation Tier
-Page_Load(in sender : object, in e : EventArgs)#OnInit(in e : EventArgs)-InitializeComponent()-btnSubmit_Click(in sender : object, in e : EventArgs)
#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
Hotel::CreateNewAccount
-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)
#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
Secure::Edit
Component Design (cont)Presentation Tier
-Page_Load(in sender : object, in e : EventArgs)#OnInit(in e : EventArgs)-InitializeComponent()-btnSubmit_Click(in sender : object, in e : EventArgs)
#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
Hotel::RequestAccount
-Page_Load(in sender : object, in e : EventArgs)#OnInit(in e : EventArgs)-InitializeComponent()
Hotel::SignOut
Component Design (cont)Presentation Tier
-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)
#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
TravelAgent::SalesReport
-Page_Load(in sender : object, in e : EventArgs)#OnInit(in e : EventArgs)-InitializeComponent()-btnSubmit_Click(in sender : object, in e : EventArgs)
#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
TravelAgent::GuestInformation
Component Design (cont)Presentation Tier
-Page_Load(in sender : object, in e : EventArgs)#OnInit(in e : EventArgs)-InitializeComponent()-btnAdd_Click(in sender : object, in e : EventArgs)
#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
Administrator::AddHotel
-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)
#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
Administrator::AddRoom
Component Design (cont)Presentation Tier
-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)
#Label1 : Label#Label2 : Label#lblTitle : Label#dataSetTravelAgent1 : DataSetTravelAgent#lblMessage : Label#dgAgent : DataGrid#Label3 : Label
Administrator::ApproveTravelAgent
-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)
#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
Administrator::Report
Component Design (cont)Presentation Tier
-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)
#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
Administrator::UpdateHotel
-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)
#Label1 : Label#Label2 : Label#btnFind : Button#txtHID : TextBox#RequiredFieldValidator7 : RequiredFieldValidator#CompareValidator2 : CompareValidator#lblMessage1 : Label#lblMessage : Label#dataSetRoom1 : DataSetRoom#dgRoom : DataGrid#lblTitle : Label#Label3 : Label
Administrator::UpdateRoom
Component Design (cont)Middle Tier
+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
-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
Component Design (cont)Middle Tier
+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
-m_companyName : string-m_status : string
TravelAgent
Component Design (cont)Middle Tier
+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
-m_firstName : string-m_lastName : string-m_cardType : string-m_cardNumber : long-m_experationDate : string
Customer
Component Design (cont)Middle Tier
+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
-m_userName : string-m_password : string
Administrator
+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()+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
-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
Component Design (cont)Middle Tier
+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
-m_roomNumber : int-m_price : double-m_bedType : string-m_smoking : string-m_handicap_access : string-m_roomLock : string
Room
Component Design (cont)Middle Tier
+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
-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
Component Design (cont)Middle Tier
+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()
Database
+Guest()+getGuest(in guest : Guest)+reservationNumber() : long+deleteGuest(in reservationNumber : int) : bool
-m_reservationNumber : long
Guest
+Log(in message : string)
-EVENT_LOG_SOURCE : string = "HRS"
Error
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 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.
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 II, 122.84, 25%
Phase III, 257.83, 53%
Phase I
Phase II
Phase III
Project Evaluation (cont)Phase I Break Down
Documentation, 27.6, 25%
Research, 60.8, 56%Design, 2, 2%
Coding, 18, 17%
Testing, 0, 0%
Research
Design
Coding
Testing
Documentation
Project Evaluation (cont)Phase II Break Down
Research, 19.08, 16%
Design, 21.5, 18%
Coding, 31.56, 26%Testing, 0, 0%
Documentation, 50.7, 40%
Research
Design
Coding
Testing
Documentation
Project Evaluation (cont)Phase III Break Down
Research, 18.58, 7%
Coding, 161.25, 63%
Documentation, 38, 15%
Testing, 34, 13%
Design, 6, 2%
Research
Design
Coding
Testing
Documentation