AJAC Systems Hotel Reservation System Team Members: Anqi Chen – achen@eagle.fgcu.edu JinLong Fan – jfan@eagle.fgcu.edu Andon Coleman – amcolema@eagle.fgcu.edu Christopher Steiner – csteine@eagle.fgcu.edu High Level Architecture High Level Architecture • Front End – Provides User Interfaces for Guests, Staff and Administrators, and forwards all Database transactions to the Back End • Back End – Houses the Database, its only connection to the outside world is to the Front End component(s) • Front Desk PCs – Client PCs that connect to the Front End through the network • Guest – Basic User account that is allowed to review, add, or cancel his or her own reservations • Browser – Guests connect to the Front End using a web browser via the Internet • ASP – Active Server Page, allows the server to execute code to modify the HTML output of a page. • Microsoft IIS – A suite of server software for Microsoft Windows that provides Mail, FTP and HTTP. • Microsoft Access – Relational Database Management System compliant with ODBC. • ODBC – Open DataBase Connectivity, a standard API to develop software that interfaces with databases. Design Issues Reusability • Underlying design language is tied to abstract components, rather than specific implementation. – The Staff “interface with a Staff Frontend, which connects to the Database (backend).” – The staff do not “view a webpage hosted by Microsoft IIS that interfaces with Microsoft Access using ASP and ODBC.” • OOP-influenced design encourages a high degree of reusability. – The database itself is not an application of OOP, but the collaboration between the front and back-ends, data composition and sequencing are all modeled using OOP methods before implementation. – This is very important in implementing multiple user-interfaces (frontends) to the database for different user types, and supporting architectural changes. Maintainability • The software is built around widely-used COTS solutions for all nonapplication domain components (i.e. Database servers and web browsers). – These components are maintained by separate companies, who have a commercial obligation to ensure migration support between future releases of their products. • Full source-code and design documents will be delivered to the client upon completion, so that the client can make changes to and understand the design of the software even if the system outlives its designers (as buildings often do). • The addition or removal of rooms and other tasks like it must be manageable by someone within the Hotel’s organization using an administrative interface. The software design team is not a part of the Hotel’s organization, and the Hotel must not be dependant on the original contracted design team for normal operation Testability: • Well-defined forms mean that input validation is simple to test • Multiple frontend connections require testcases for concurrency • Specialized test-cases are needed to ensure valid transaction sequencing • To ensure safety, testing must include user privilege level checks (i.e. Guests cannot view, add or remove another Guest’s information). Performance: • The system does not collect much customer information, so reservation efficiency is a function of staff efficiency and the connection between User, Frontend and Backend. – Frontend and backend should be hosted in the same location to minimize latency and reliability issues. • Staff efficiency is measurable by the number of button presses, forms and reports necessary to complete common use cases; the goal is to minimize this statistic. • Size and structure of the customer database is a performance factor, particularly when locking records to prevent data loss while there are simultaneous Frontend connections. • Reliability is achieved by extensive testing of component interaction. Portability Not a major concern for this software. Aspects of Reusability and Maintainability may contribute to, but are not implemented with the portability of the software in mind Safety: • The database can only be accessed by users with proper credentials (password login and user types). • There is only one point of connection between users and the database (the frontend). • Customer information is only stored in the Database backend, the frontend does not keep copies of data after a form is filled out. • An Uninterruptible Power Supply (UPS) is mandatory for the Frontend and Backend, and suggested for front desk nodes; data loss due to power failure is an easily avoidable catastrophe. • Extensive testing ensures that statements 1 and 3 are met. Detailed Design Information Relationship Diagram Diagram 1.1 Sequence Diagrams Diagram 2.1 Sequence Diagrams cont. Diagram 2.2 Data Flow Diagram Diagram 3.1 Use Case Diagram Diagram 4.1 Class Diagram Diagram 5.1 Website Layout Diagram 6.1 Website Layout Diagram 6.2 Website Layout Diagram 6.3