The proposed system is a hotel management system which will allow for staff to view rooms that are available and highlight rooms that have already been booked. The scope of the project is to create a booking management system, which will have features such as highlighting booked rooms, searching certain rooms and filters allowing for staff to book available rooms in a simplified manner while providing a foundation for expandability with easy to read code where another programmer can implement additional features. We will be using major or minor revision numbers starting from 1.0 and incrementing upwards in 0.1 every time bugs are fixed. Any major additions will increment the revision number by 1.
The Document font convention is Arial and our typographical convention will be using bolding of words to emphasize words which are of special significance. The requirements will be inherited by higher-level requirements as the requirements can be generalized at the highest level and into the lower levels, we can go into further detail on the requirements of each area within the system.
Considering the scope and time scale of the project we decided to priorities the most important requirements first and work towards achieving complete functionality of the programs before implementing any additional requirements highlighted in the planning phase of the project
The document is intended mainly for developers and documentation writers but can be tailored for project managers, users, testers, and marketing staff. With elimination of jargon, the aim of this report is to document the requirements in detail in combination with adopting an easy-to-read and simplistic approach to writing the documentation. The report will be split into five sections introduction, overall description, external Interface requirements, system features and other non-functional requirements. It will have sub-sections corresponding to the sections within the document.
A sequence that is suggested for developers is to look through the contents page and read through sections 2-5. A developer will need to know the description, requirements and the features of the system however the sub-sections can be looked through if the developer needs additional information.
For project managers, it is suggested they read and fully understand the full report by reading each section as it is ideal for them to know and understand all aspects of the document.
Marketing staff will need to know the system features and the description/purpose of the product so they will need to look through the contents page and are suggested to read through any sub-section that relates to the description of the product (e.g. 2.3 they will need to know who to market the app to) and the overall description (See Section 2) and the features of the software (See Section 5).
For Testing, they will need to know the non-functional requirements such as performance requirements, security, and safety requirements (See Sections 5.1,5.2 and 5.3).
Users will need to know the overall description and the features within the system (See Sections 2 and 4)
The software is a hotel management system, the purpose of the system is to create a program which can be used for a hotel business which will have all the features that a hotel business would need but also will be a platform for expandability which will allow a developer to add additional features to the feature set.
The benefit to a business would be that this program can be revised to add more efficient methods to improve the backend to the business. The objective of the whole project is to achieve all the must-haves in our Moscow analysis and have at least two of the should-have implemented into the system. The whole project goal is to create an expandable system with easy to read code and clearly defined classes that can be used as a platform to extend the feature set.
Bibliography: Microsoft (2017) Error message guidelines
Available at: https://msdn.microsoft.com/en-us/library/windows/desktop/ms679325(v=vs.85).aspx (Accessed: 27 February 2017).
Citation: (Microsoft, 2017)
Turn, R. (1975) ‘Security problems in computer communication systems’, ACM SIGCOMM Computer Communication Review, 5(1), pp. 35–44. doi: 10.1145/1024847.1024851.
The product is a replacement for the old management system as the system will be designed for future longevity and extensibility. It is vital for a corporation to keep an up to date system as an outdated management system can be detrimental to the system which will connect to the larger aspects of a system. It will be integrated into the companies online booking system which will allow for the staff to manage the bookings.
The management system will have access to the company’s database as it can manage the bookings of the customers booking within that database.
The system will allow for staff to be able to receive calls from customers who inquire about bookings and want to book over the phone or cancel a booking and the staff will be able to do that in the management system which improves efficiency of the whole system as customers don’t have to inquire just through email about availability which takes several days to get a reply whereas a customer can ring up and get an instant inquiry which can lead to a sale and that is important to an organization that relies on the efficiency of systems to generate sales.
- Staff must be able to check availability of a room.
- Staff must be able to book or cancel a room.
- Staff must be able to search through room numbers.
- Staff must be able to use the system to sort by room number and price.
- Staff must be able to take customer details and complete a booking
The user classes are listed below (high-low importance)
- Reception staff- Taking and receiving calls, managing the bookings.
- IT staff – Maintenance and safekeeping of the system.
- Human Resources- Training staff to use the system.
- Managing staff- using data from the system to produce reports on revenue.
The reason that the reception staff is the most important user class is that they are at the forefront of the business so it is vital that there needs are met, they will be the frequent users of the system to check, manage and take bookings from customers by telephone or at the help desk,they will have full access to this system as they will be frequent users.
Human resources will have to train staff to use the system so they are the second most important, they won’t be direct users of the system and will rarely use the system however it is vital they understand how the system works so then staff can be taught and trained to use the system and with clarity in documentation and an understanding of the system can lead to effective training.
IT staff are another important user class as they will be maintaining the system and making sure that the system is fully functional and dealing with any issues that occur with the system, they will be frequently maintaining aspects of the systems so there engagement with the system will be frequent but usage will be lower.
Managing staff will be using the data produced by the system to analyse and produce reports so that progress is tracked within the business, storing customer details is a vital component to the system as it allows for managing staff to evaluate and collect data. promotional and special offers can be tailored to individuals as there room type is stored which means emails with special offers on a specific room type can allow for customer retention. They will have the least use of the system on a day-to day basises.
The operating system will be windows 10, it will be used primarily on the computer platform and can be accessed through the organization through the companies’ network. The software that creates the database is MySQL and will be connected to the companies database so data can be accessed.
A Constraint of the system is security, with the xml files they will need to be encrypted and is recommended that the company invests in security to ensure that the security of the system is constantly developed as security is vital to protect personal and corporate data. The organisation will be responsible for maintaining the software and will receive support from developers with consistent updates to improve and refine the previous version of the code.
To ensure constant improvements to the system analytical techniques such as S.W.O.T analysis will be used to find the strengths and weaknesses of the system and also the threats to its security and the opportunities that it can use to extend and expand the system to improve efficiency.
Alongside with the system, there will be a video that explains how the system works and this can be used to train other staff on how the system will work.
Online help will be available to assist with any bugs that occur within the system as the staff can log tickets where a developer can look at the issue and fix the bug within the system.
The plan for the proposed system is to be integrated into the companies’ database. The system is dependent on the company’s data to access the booking information and to ensure that the implementation of the system is smooth without disrupting the booking system, a direct changeover method will be adopted.
During the quietest period (i.e. overnight) the booking system website will be down for maintenance while the new system is integrated into the larger system of the business, this will have minimal impact on the business in terms of bookings and sales as traffic will be at its minimum.Direct changeover is a quick yet risky approach as if the system is integrated directly and something goes wrong then there is nothing to fall back on and it must get fixed which may lead to lost sales and bookings however if the system is being installed during the night then it minimizes this as website traffic is at its minimum .
A phased method which consists of taking modules and implementing them into the older system in pieces would have less risk of the system going wrong as if something goes wrong then that part will be the only one affected and not the specific part, however, this takes a lot of time and leads to difficulty in integrating the old and new systems as there may be compatibility issues.
A pilot method which consists of introducing the system to certain departments, this has a advantage of allowing for feedback of the system and changes to be made during installation howver the issue with this is within the context of a hotel, it is key that the whole hotel has the same system as it means more maintenance for the it staff and sharing data between two systems which offer the same purpose would not be feasible as it can affect the speed and effecincy of the system.
The GUI will contain a search bar at the top of the program with a box which has a specific result (e.g. search room number) underneath there will be a detailed search with filters such as size, the price range with a slider and tick boxes that has extras and a sort by button which sorts by room and price. The error messages will display simplistic messages the user can understand and will include no jargon that the user would not be able to understand and without any abbreviations further, we will use the appropriate command buttons which include ok, cancel, yes and no and retry. We will also provide a display a solution to help the user resolve the error (Microsoft,2017).
For hardware an ideal network would consist of an WAN (wide-area network) with use of Ethernet cables as a wired connection with high rates of megabits per second will allow for data passed from the servers to be faster which allows for the system to improve efficiency which in turn improves the backend of the business so it is vital for the business who will implement this program to have an infrastructure which allows for high rate of megabits per second as the higher the rate of megabits in the connection the quicker the program will perform. It is advised to have a wired connection as the signals can be lost using a wireless network which can affect the performance of the system.
The system will be created on windows and will utilize xml libraries to read and store data within files, the data that will be coming into the system would be the room numbers the purpose of this is to assign a unique number to the rooms which will be searched using a search algorithm, the prices are added up depending on the size of the room and the extras the customer wants such as T.V etc. and will be linked and compared to a room within the xml file that contains all the extras that the customer has outlined.
The xml files will hold separate information in different files e.g. customer information will be stored in the customer file and the room information will be stored in the room file.
The nature of communications within in the business will be the customer ringing to either enquire/book a room and the member of staff will use the system to find a book suited to what the customer is looking for using the search algorithm and then it will display a price of the room, when the customer wants to book that room there will be a booking button that allows for the staff to enter the customer’s name and store the customer information.
The product will require email communication as the receipts produced will be emailed to customers after comfirming a booking, the higher the data transfer rates the better the system will perform.
The biggest issue with the use of xml files is the security as the files can be accessed if a hacker attempted to hack into the system. This can be combatted using encryption, however, the issue with this is the level of encryption will need to be revised constantly by developments to add and implement more complex encryption so then the data can be protected against any hacks within the organization.
The threats to communications are (1) identification, and authentication of the identity, (2) controlled access to computers and their data bases, and (3) protection of the data in transit in the telecommunication system. (Turn, 1975) so it is advised to revise encryption protection as it is the solution for dealing with security threats and this helps improve protect data which is passed using telecommunications.
Store customer booking details (High)
As standard, the system has to be capable of storing basic customer contact information such as name, phone number, address etc. Most importantly the system needs to be able to details in regards to the customers room preferences/extras, pricing, room status etc. All of which are necessary for most of the functions within the system, hence why this is a high priority feature that needs to be implemented.
- Check for payments (High)
- User Login
For security purposes, it’s necessary for the system to have a user login procedure. This feature will be implemented in
- Search for Room availability, room price, registered rooms (High)
- Additional room extras, services (medium)
- Sorting (Room Size, Price, Room Location i.e. Top Floor/Corner room) (High)
- Price calculations (High)
- Produce receipts (Low)
- Room Status
Room status is an essential part of this system, everything from the booking and room registrations will be based on the current status of the room. There are 4 main statuses for each room within the hotel, Reserved, Under Maintenance, available and unavailable.
- Maintenance section (medium)
The system will have a section where staff members can check whether rooms are in a condition to be booked, for example, if there’s any broken furniture or equipment i.e. windows/doors or light bulbs need changing then the staff members can check for these things and mark it down on the system.
4 System Features
4.1 Description and Priority
4.1.1 – Data Storage
As standard the Hotel Booking System has to be capable of storing basic customer contact information such as name, phone number, address etc. Most importantly the system needs to be able to details in regards to the customers room preferences/extras, pricing, room status etc. All of which are necessary for most of the functions within the system, hence why this is a high priority feature that needs to be implemented.
4.1.2 – Payments
The Hotel Booking System needs to be able to check if customers have made payments or not. The implementation of this feature is crucial to the functionality of the entire system, reason being that a lot of the other features and operations within the system (i.e. placing room reservations), thus making this a high priority that is mandatory to the systems design.
- – User Login
For security purposes it’s necessary for the system to have some form of login procedure. This is a feature that might not be in the system when it’s first implemented however later on in future its one that may need to be added hence why it is a medium priority feature. There is no real detrimental to the functionality or nature of the system if the login feature is not implemented, but it’s a function that is highly recommended to ensure that the system remains secure in the long run.
- – Search and Sorting
Room searching and sorting are both high level priority features that needs to be implemented within this system in order to for it function as intended. Users should be able to search for specific details on rooms based on availability, price, room size etc. In addition to the room search, the system should be able to sort out the rooms based on several criteria’s such as room numbers, size, condition, pricing and many more.
- – Room Status
Room status is an essential part of this system, everything from the booking and room registrations will be based on the current status of the room. There are 4 main statuses for each room within the system, Reserved, Under Maintenance, available and unavailable.
- – Maintenance section
The system will have a section where staff members can check whether rooms are in a condition to be booked, for example if there’s any broken furniture or equipment i.e. windows/doors or light bulbs need changing then the staff members can check for these things and mark it down on the system.
4.1 Stimulate Response Sequence
Please refer to Section 2,3 for the use case diagrams, which better depict how the functions are expected to operate within the system once it has been implemented.
- Functional Requirements
FR1 – Creating a booking
In order for the user to create a booking for a room on the system, they first to take the customers personal details, these details consist of things such as First and Last Name, Phone, address, email etc. Next the customer has to specify their room preferences in terms of room size, room location and additional services, based on these criteria and on the availability of the rooms the system will allocate the appropriate room for the customer and then present them with the price. Once the customer confirms the details of the booking the member of staff in use of the system can then proceed to place the booking. All these details will be filled out in a form present within the system.
FR 2 – Amending an Existing Booking
It can be assumed that there will be certain situations whereby changes might need to be made to an existing booking made by a customer. In such circumstances the user will be able bookings that have been previously made via the system if they are not already active for example suppose an error was made by a customer whilst making the booking then it’s still possible for the customer to amend the error by simply notifying the members of staff before they come to stay in the room.
FR3 – Cancelling a Booking
Just as with the booking amendments, the any reservations or bookings can be easily deleted via the system, when the user wishes to delete a booking they can simply retrieve the booking so long it’s not currently active, as in the customer is not already staying in the hotel.
FR4 – Administrative functions
Regular administrative functions will have to be carried out to ensure that the system is always running as intended. These administrative functions range from regular supervision of the system i.e. keep an eye on the bookings that are placed on the system, another administrative function that is expected is to continuously monitor how the system is performing over its life time, this means taking note of any bugs or faults within the system and ensuring that those bugs are continuously reported to the development team.
FR5 – Search and Sort
Probably one of the most crucial functional requirements necessary to the functionality of this system. The user has to be able to search and sort rooms based on multiple criteria such as room size, price, location etc. The implementation of this feature is by far one of the most important as all other features within the system depend on this feature.
5. Non-Functional Requirements
In addition to all the main behavioural processes highlighted in the system features section, there are several other properties that the Hotel Booking System (HBS) is expected to contain. Having discussed what is required of the HBS, its considered that the functional requirements mentioned in the system features part of the report are necessary to the systems functionality hence implementation of those features is compulsory. On the other hand only a few of the non-functional requirements outlined within this section are imperative to the functionality of the system due to this fact the implementation of such requirements may be deemed as inessential. It’s possible for the system to work as intended without them, as these requirements are only minor characteristics of how the system is expected to operate.
5.1 Performance Requirements
PR – 1: System Response Time
One of the major performance requirements to take into consideration when designing the Hotel Booking System is response time. The system has to be able to quickly respond to inputs and requests from the user, any delays between the users inputs and the systems response (where necessary) should be kept to a minimum i.e. retrieving customer information in regards to a booking.
PR – 2: System Efficiency
Efficiency is key for a system like this, during high demand periods it’s expected that the system should be able to perform at the best possible standard at all times. Contextually speaking, efficiency is referring to how the system uses the inputs from the users in order to produce the output. In a sense, though the system may produce an output if the input to output ratio is adverse then the system can still be deemed inefficient.
PR – 3: Fast Loading
Along with the response times, loading speeds on the system have to be fast. Users should not have not have to wait for long periods of time in order to access information within the system.
5.2 Safety Requirements
There are very few safety measures which can be taken into account with the system, other than the loss of data, or damage of equipment which in fact is not a direct detriment to the system itself, there aren’t too many safety requirements which can be noted. However with that said there are still things which can be done to help prevent some of the risks outlined above, for example retaining multiple backups of the system to help reduce the risk of loss or damage of the data on the system.
Another measure which can be taken is to ensure the system is only accessible to authorised members of staff, reason being that it’s possible for anyone to steal, tamper or delete any of the contents within the system, therefore setting a limitation in access will ensure that the system remains safe from these risks at all times.
5.3 Security Requirement
SCR – 1: User Login
Some form of user login procedure will be implemented within the system to prevent unauthorised personnel from accessing the system. Any member with access to the system will be expected to have a user name and pass word that enables them access to the systems facilities.
SCR – 2: Access Levels
Depending on which staff member is accessing the system, i.e. hotel staff or managers, the system is expected to have multiple access levels to help prevent unauthorised parties from accessing, viewing or changing certain elements and information within the system. This means that some aspects of the system will be limited to only specific users contingent on their authority within the company.
SCR – 3: Data Confidentiality
It’s integral for the company to maintain privacy of information in regards to their customers, this requirement goes in line with the regulations of the Data Protection Act 1998, and therefore it’s extremely important for the system to be implemented with the goal of maintaining data confidentiality of the customers they hold information on. It’s expected that the system should be able to securely store data and retrieve it upon request.
Referring back to the security requirements highlighted above certain information within the system might need to be limited to specific members of staff within the company. For example at the highest access level information will only be accessible to authorised personnel such as the hotel managers and/or supervisors, a password might be required to access such a level if implemented.
SCR – 4: Authentication (finger prints, ID cards)
On top of all the security measures listed above, system authentication is by far one of the most critical forms of security that should be implemented into this system. Referring back to the access levels a method of authentication such as ID scanning could be used at different access levels to verify certain staff members to enable them access to specific elements within the system.
5.4 Software Quality Attributes
SQA – 1: Availability
The system has to be available for all authorised members of staff to access when needed. Considering the nature of the business, it’s only expected that the system will have to be available for access during all periods of operation. The system has to be able to handle periods of high demand meaning that performance should not deteriorate with the increase in demand, if there is a decline in performance it should render the system unusable however a small drop in performance is to be expected if the system is put under a lot of stress.
SQA – 2: System Maintenance
To ensure that the system is always in optimal condition its’ important that maintenance remains a major priority for the company. After the system has been implemented all users/staff members with access to the system will be trained on how to use and maintain the system. While in operation if any discrepancies and faults are found within the system it should be noted by the staff members and forwarded to the development team in order for them to amend when updates or patches are carried out on the system.
SQA – 3: Reliability
Dependency on the system is to be expected considering that majority of the business proceedings within the company mainly stem from the actions carried out on the system. Just as with availability there’s great expectancy on the system to operate effectively at all periods of operation, this means that the system should be able to perform at the highest possible standard at all times and produce the expected results without fail.
Going further the condition of the system will also determine how much the users will be able to rely on the system. For example if the system is always freezing or crashing or if it contains a lot of bugs and glitches within it then the staff members won’t be able to rely on it to complete the tasks it’s been designed to do. However prevention of these of discrepancies is simple given that the development team continues to monitor how the system is performing and continue to make improvements to the system through patches and updates over its life span.
5.5 Business Rules
For the business rules these will be entirely down to the company to decide on how the system will be used. The system will be designed to function in the way that it’s intended to do so, however in regards to who will be able to operate what in the system will have to be discussed by the business owners themselves.
Considering that the system will consist of multiple access levels, assumptions can be made about which members users will be able to access what elements in the system. For example certain operations such as changing customer details or authorising someone else to change a customer’s details might be entirely limited to the Hotel managers, however as already stated this is only assumption, the company may decide to allow all members of staff to have access to all the elements within the system without any restrictions.
Once the system has been implemented all staff members eligible to use the system will be trained, again, this will be up to the company to decide on which members of staff are eligible to receive the training. Additionally if they do decide that they want to limit certain operations to be carried out by specific members within the business, then different types of training will have to be provided depending on what roles have been delegated to the specified users carry out the system operations.
This project followed Agile Scrum development life cycle. Scrum is an incremental and iterative software development cycle that works in multiple sprints. Each sprint begins with sprint planning with the team pulling out a piece of work from the main project backlog and works on it for a certain amount of time. Daily communication between members is an essential part of the sprint to assess the amount of work completed on the day.
It has been proven very effective when working in groups and working to a deadline. It is a flexible development strategy where the development team works to achieve one common goal. Team members have their individual set of roles and responsibilities that never change until the next sprint. Each sprint ends with a sprint review and retrospective. As the team begins with the next sprint, they choose another piece of work from the project backlog and begin working again.
|Store customer details in a doubly-linked list||Display available and booked rooms||Show number of available rooms for each type of room||Have an interface for customers to make their own bookings|
|Use sorting algorithm to arrange rooms according to room number||Display add-ons to the complimentary services||Search for customers using name||Login for staff members|
|Make bookings||Edit bookings i.e. remove already made reservations||Display the bill amount so far before check-out|
|Print receipts at check-out|
|Remove a booking after check-out and make the room available|
The list class encapsulates private and public declarations to ensure that data held in the node pointers cannot be called from outside the list class. But using the functions inside the list class the other classes can still access the data without amending it.
The list objects are used to read data from the room and the customer lists loaded into the system using data stored in the XML database and display them on the GUI as and when required. The book and the unbook functions in the room class change the data inside the list by setting the room availability status to “Booked” and “Available” respectively.
The room class implements attributes such as room number, type, availability while the customer class implements attributes containing customer details like name, phone, email and address.
The system uses a doubly linked list to keep a record of all the bookings, we can go check the previous booking and the next booking easily using doubly linked list. Once implemented with full functionality, records can be edited and removed or added at specific positions of the list.
The system implements an insertion sort algorithm to sort through the rooms and display them by room number displaying the details of the customer staying in that room as well as showing the rooms that are available for booking. The reason for using insertion sort was that it works efficiently when sorting small lists. The way we implemented the insertion sort was sorting through the list based on the attribute for the sort. This way we can easily implement a bunch of sorts using the same algorithm sorting through different attributes.
-Business Justification and vendor selection
Choosing a business field with a whole lot of room for improvement and rapidly growing market to get return on the investment is higher than the cost of the investment. The team evaluated the rapidly growing hospitality market to find opportunities for new solutions to their software needs while they make the life of their customers easier. While existing solutions have already been in the market for years, there is a huge scope for improvement now that hotel expansions are so common.
-Project Kick-off and process refinement
Each process is refined by the importance of its outcome and workload and time is allotted for that sprint depending on this. Existing solutions are tested and checked for room to refine them. These solutions are then simplified and corrected to use them on an updated and upgraded system. The project begins with the planning phase and goes onto the software development lifecycle as explained earlier in this report.
-Testing and first build
The software or one of its completed process is tested after each sprint. The software is built on the results of these sprints. Once the software has enough functionality to produce a beta version of the software was released to undergo different tests from different members of the team.
Since the team was working in sprints, testing was an important part of the process after each sprint.
In the early phases of the development process, the team decided it was essential to have a graphic user interface (GUI) for the software. After the sprint involving creating a GUI for the system, it was tested to check if all the tabs were working using a cout test in C++. Display tabs were set to non-editable tabs just to display the information.
Checking for the functionality of XML to get room data and check if the form filters it:
After inputting constant data for the rooms like cost and availability were called in the system using XML, they were tested in the GUI to display rooms by their type displaying all the room numbers for that type and their availability status. By selecting the type of room on the combo box in the GUI and clicking filter, the system displayed all the available rooms of that type.
Creating a new customer record and storing it using XML:
After adding parts in the GUI for adding a new customer record by inputting customer details and generating an ID for the customer. The customer record was then stored in the system data using XML and checked if a new current customer was created in the customers sections of the GUI for that customer which is then used to pick the customer and make the booking for the previously selected room.
Storing rooms and then using insertion sort to sort them by price:
The rooms can be stored in an array because their room number and details never change because they are already built in the hotel, which makes it easier to sort the rooms by their price from low to high or vice-versa.
Calculating final bill and customer check-out
The final bill is calculated by multiplying the room’s price per day of stay by the amount of days the guest stayed. After the member of staff receives the payment from the customer, they click on the check-out button which should set the room status back to available and set the guest Id and number of guests back to zero.