Here is a sample proposed system for a hotel reservation system including Datafollow diagrams, ERD and requirements.
Customers can register through the website and provide their information, this makes it possible for their next logon to book the rooms faster without requiring re-entering the requirements, during the registration users choose a unique username and also choose a password as well as their name, information and contact details. If the username is not already taken customers get a confirmation message and also get their login details in their email address.
Customers can book the rooms online by visiting the hotel’s website, viewing the plans and selecting the room and length of stay, after confirmation if the room is available for that period, customers will be asked to pay for the room online by their credit card and get a printable receipt. If customers are already registered, they can login with their username and password, and proceed to the payment page directly, otherwise they will need to enter their name, information and contact details separately.
Finance will produce sales report for each month according to the sales database and provide it to the manager. To get this report they need access to the hotels database and an advanced search facility to be able to get customers list for a period of time.
Non functional requirements
User friendly website
Hotel’s website should be user friendly to make it easier for customers to book rooms and get the information they need. Colours and themes used should fit the hotel environment and also make it easy to read. Using a sitemap make it easier for customers to find different locations in the website, also it should contain a good navigation structure to make it easy for users to access all of the pages with few clicks.
Customers can book rooms online and also pay online by credit card, so website should be secure and also trustable for the customers to trust and be able to pay online. Getting a SSL certificate to be able to put payment page on https protocol is necessary to ensure the security.
Website should be stable and always available, getting a stable web server is a must to make sure hotel does not lose online customers during the website down time. In the mean time this will increase trust of the customers if the website is always running smooth. For example at the order page if the website stop working, it will lose customers trust to the website.
ERD and requirements
In this case we have 3 entities including customers, orders and rooms. Customers entity primary key is id, and also rooms primary key is id as well. In the orders entity which it has a unique id also, room and customer is referred using customer_id and room_id foreign keys. Following ER diagram represents attributes for each entity as well as their primary key (PK) and foreign keys (FK).
This form appears after user select the room and they logon, so we have their username and details plus room details so we know the room price as well, so the payment form appears like the following screen:
- Card type is required and should be either Visa or Master card
- Card number is required and should be a 20 digit number
- Expiry date is required and should be a valid date and not before current date (not already expired)
- 3 digit security code is required and should be 3 digit number
- Name on the card is required and should be characters and space only
- Card holder’s address is required
Initiation and planning
A feasibility study is required to find out if the new system (Hotel’s website) is achievable or not, and also discussion about if the technology we need to develop a website is currently exists or not, output of this phase will be feasibility report.
Here as we planning to develop a website to provide online payment and booking facilities to the users, we need to research on the technology we need and find out if the hotel staffs have enough experience to work with the new system, also the inputs we need for this website to be done.
Requirements gathering and analysis
In this phase, we determine if there is a problem which needed to be resolved in the current system. Also all the requirements will be gathered by breaking down the sub system into different sub systems and functions. Output of this phase will be a requirements and analysis report.
For example, in the hotel, problem is hotel is losing business and we need a way to make the booking easier to get more guests in the hotel.
In this phase we will break down all of the processes and produce layouts, screen designs, DFD and ER diagrams and also define the rules we needed in this system.
For example hotel’s website design phase provides DFD and ER plus screen design provided in the question 2, 3, and 4 of this document.
Output of this phase will provide a new system which is a collection of different sub systems.
Build or coding
In this stage, coding and programming procedures will be done. Also testing is required to make sure system contains no bugs. For example in the hotel, in the build phase, programmers work on the website design, programming the functions required and also create and design the website according to the design phase documentations. Output of this phase will be the website with all facilities described in the design phase.
In this phase, all of the codes will be tested to make sure it contains no bug using various software test methods. For example we will test different parts of the website to make sure the booking system, registration and other parts works without any problems. Output of this phase will be a test report with detailed test dates, details and result.
Operations and maintenance
In this phase deployment will be done and also maintenance of the system will take place. For example in the hotel’s maintenance and deployment phase, we will upload the website to the actual web server and also perform maintenance to make sure the problems after website deployment will be fixed. Output of this phase will be software delivery and maintenance report
Comparing with the waterfall methodology
Waterfall model is a document driven methodology which strongly relies on the quality and quantity of each phase.
Prototyping is process of creating a system quickly and low cost for demonstration and evaluation.
In waterfall model, customer does not see what product will look like until the delivery, however in the prototyping user sees a tangible system early on the development process, which make it easier for the changes to be amended at the beginning. So in the waterfall, after delivery if customer does not like the system, it will make a lot of confusion for the development team. So waterfall model is not suitable when project needs maintenance and additions.
Waterfall model is straight flow of processes which is very easy to understand, however in the prototyping users do not know the stop point.
As users are involved in the prototyping at the beginning, we can make sure that the system is what they expect at the delivery, so prototyping method is the appropriate methodology to design this website.
Wikipedia – Systems Development Life Cycle – 20 may 2009 http://en.wikipedia.org/wiki/Systems_Development_Life_Cycle
Wikipedia – Waterfall model – 20 may 2009