Airline reservation system

AIRLINE RESERVATION SYSTEM  
SVTH: Nguyễn Thành Cô ng, Nguyễn Thành Cô ng,  
Nguyễn Văn Toản, Nguyễn Mạnh Tiến,  
Đào Thị Thu Thủy, Trịnh Thu Trang  
GVHD: ThS Nguyễn Đình Trần Long  
Tó m tắt- Năm 2021, với sự trỗi dậy mạnh mẽ của cá c ngô n ngữ lập trình web như Python,  
javascript, và Typescript, java vẫn giữ một vị trí rất ổn định và được sử dụng trong nhiều dự á n lớn  
trên thế giới. Ứng dụng web Java là một tập hợp các tài nguyên động (chẳng hạn như Servlet, Trang  
JavaServer, cá c lớp và lọ Java) và các tài nguyên tĩnh (các trang và hình ảnh HTML). Trong bài viết  
này, nhó m phá t triển sẽ thảo luận về Java như là khung phát triển cho Hệ thống đặt chỗ hàng khô ng  
và giải thích cách nó được á p dụng trong quá trì nh triển khai lập trì nh.  
Abstract- In 2021, With the strong rise of web programming languages such as Python,  
javascript, and Typescript, java still holds a very stable position and is used in many major projects  
around the world. A Java web application is a collection of dynamic resources (such as Servlets,  
JavaServer Pages, Java classes and jars) and static resources (HTML pages and pictures). In this  
article, the development team will discuss Java as the development framework for the Airline  
Reservation System and explain how it is applied during the programming implementation.  
Keyword: Python, Javascript, TypeScript, Java, Servlet, JavaServer Pages, Java classes, jars,  
HTML pages, Airline Reservation System  
1. Introduction  
Traveling around the world is no longer as daunting as it once was, thanks to advances  
in science and technology, and flying is now one of the most common forms of transportation.  
In the late 1950s, the airline reservation system was adopted as a comparatively  
straightforward standalone system for managing aircraft inventory and preserving flight  
schedules. The modern airline booking system is a collection of products aimed at providing a  
system that facilitates multiple airline management activities while also serving the needs of  
passengers from the time of initial booking to the end of the flight. Online flight booking has  
many benefits: less time and effort to get to the check-in place, quick check-in without  
waiting, bookings and cancellations also just got much easier, but not all flight booking  
systems have a modern, clear and concise user-friendly interface.  
Intending to solve this problem, the aim of this project is to develop an airline booking  
system that allows travelers to request all flight details based on their destination using the  
Java language. The interface is reasonably designed, with high visual efficiency, user-friendly  
and quickly and accurately synthesizes flight and fare information. Users can get information  
about time, cost and other factors at the same time and at the same place. All available  
72  
airlines, timetables and prices are displayed. The website will use the MySQL Database to  
store the latest flight information, customer information as well as information on the latest  
airline fares and ticket status. The following parts of this paper will (1) give an overview of  
using Java in developing web applications, (2) analyze the requirements for the Airline  
Reservation System, (3) demonstrate the implementation of the application, and (4) evaluate  
the outcome of the development process as well as suggest potential improvements.  
2. Main Content  
2.1. Airline reservation system  
2.1.1. What is Airline reservation system ?  
Airline reservation systems (ARS) are part of the so-called passenger services system  
(PSS), which are applications supporting the direct contact with the passenger.  
ARS eventually evolved into the computer reservation system (CRS). A computer  
reservation system is used for the reservations of a particular airline and interfaces with a  
global distribution system (GDS) which supports travel agencies and other distribution  
channels in making reservations for most major airlines in a single system.  
2.1.2 Overview of using Java in developing web applications  
Since there are so many Java technologies to cover in one post, this one will focus on  
the most commonly used. The number of technologies mentioned here can be intimidating.  
Keep in mind that you won't have to use all of them. In reality, a web application is often  
made up of just one page built using the JavaServer Pages (JSP) technology. You'll  
occasionally mix three or four of these technologies. It's important to know what's available  
and how to use each one in a web application, no matter how many you end up using.  
Java Servlet API  
You can build HTTP-specific classes using the Java Servlet API. A servlet class extends  
the capabilities of servers that host applications that use the request-response programming  
model to access them. Servlets can respond to any form of request, but they are most widely  
used to extend web service applications. For example, you could use a servlet to retrieve text  
from an online form and return it to the screen in an HTML page and format, or you could use  
a different servlet to write the data to a file or database instead. A servlet is a server-side  
program that doesn't have its own graphical user interface (GUI) or HTML user interface  
73  
(UI). Many web applications are possible thanks to Java Servlet extensions.  
JavaServer Pages Technology  
The JavaServer Pages (JSP) technology makes creating dynamic web content simple  
and fast. JSP technology allows the accelerated development of server- and platform-  
independent web-based applications. Using JSP technology, you can insert snippets of servlet  
code into a text-based document. A JSP page is usually a text-based document with two types  
of text:  
Static data, which can be expressed in any text-based format, such as HTML, Wireless  
Markup Language (WML), or XML.  
JSP technology elements, which determine how the page constructs dynamic content.  
The packages involved in creating JSP pages are javax.el, javax.servlet.jsp,  
javax.servlet.jsp.el, and javax.servlet.jsp.tagext, though you will rarely have to import these  
directly. A JSP page can be as simple as a bit of HTML with one snippet of JSP code and  
the .jsp extension of the page name.  
JavaServer Pages Standard Tag Library  
The JavaServer Pages Standard Tag Library (JSTL) is a library that encapsulates core  
features used by many JSP-based applications. You use a common uniform set of tags instead  
of combining tags from various vendors in your applications. This standardization allows you  
to run your applications on any JSP container that supports JSTL, and it increases the  
likelihood that the tags will be implemented correctly.  
JSTL has iterator and conditional tags for handling flow control, tags for manipulating  
XML documents, internationalization tags, tags for accessing databases using SQL, and tags  
for commonly used functions.  
2.2. Requirements Analysis  
The objective of this phase is to transform the needs and high-level requirements  
specified in earlier phases into unambiguous (measurable and testable), traceable, complete,  
consistent, and stakeholder-approved requirements. During the Requirements Analysis Phase,  
the agency will conduct any procurement needed for the project. This phase also includes the  
74  
use-case diagram which will describe the functionalities of the whole system.  
Figure 1. Use case Diagram  
The purpose of this project is to design and develop a flight reservation system where  
users can browse, view and book a flight. Integrated with logistical and payment support, the  
asset-light platform claims to make ticket booking easy and secure for both sellers and buyers.  
Therefore, this includes three main of actors, which are User, Passenger and Administrator.  
❖ User : browse the website then view schedule, price, check flight, book flight and  
search flights.  
❖ Passenger : reschedule flight or cancel flight  
❖ Administrator : Sign into system with special role, manage tickets. seats, passengers,  
flights and all account of the system.  
75  
The detail use-case specification can be seen in the “Use-case specification” document.  
Other non-functional requirements are documented in the Non functional requirements  
definition  
2.3. Implementation  
2.3.1 Version Control  
Git and Github are now popular standards, therefore our team has chosen to use these  
tools in the software development process. Git allows the user to track changes to files over  
time so that the user can go back and look at specific versions later. Github is an online  
software development assistance and version control service that allows users to share with  
others on user’s Git repositories by hosting them online. People that have been shared Git  
repositories can easily view code, push their changes to Github, and also pull changes to their  
computer.  
Figure 2 : Github Management  
2.3.2 Implementation  
The implementation of this project is divided into different phases corresponding to  
different packages of the project code. Implementation accomplished in two main phases:  
Frontend implementation comes first, then comes backend implementation. The team  
considers at the beginning of each stage in which members are assigned or tasked themselves,  
completing the implementation and then pushing the code to the Github repository. The first  
is frontend , the team uses serve Dynamic HTML Content to FrontEnd Java Servlet (Figure  
3) . Views are divided into two main parts: client view and admin view. Each section is  
76  
divided into different JSP files for each display screen (Figure 4, 5). In addition, Bootstrap is  
used in this project to responsive the design, it maintains wide browser compatibility.  
Figure 3 : Front-end Implementation  
77  
Figure 4 : Client View  
Figure 5 : Admin View  
Backend is the next implementation of this project. This implementation phase starts with  
creating models, DAO and Service Layers followed by the creation of Controller and View.  
Nguyễn  
Nguyễn  
Nguyễn Văn Đào Thị Thu Nguyễn Thành Trịnh Thu  
Thành Công Mạnh Tiến  
Toản  
Thủy  
Công  
Trang  
Model  
Ticket  
Flight  
Flight  
Passenger  
User  
Reservation  
DAO  
layer  
TicketDAO  
FlightReser  
vationDAO.  
java  
FlightDAO  
PassengerDAO  
UserDAO  
Service  
layer  
TicketServic FlightReser  
FlightService  
Flight, Ticket  
PassengerServic UserService  
e,  
PaymentService  
e
vationServi  
ce  
Controll Admin  
er  
Ticket  
Login,  
Logout,  
Register  
User  
Customer  
Ticket  
Flight  
Reservation Logout,  
Register  
Login,  
Passenger  
Payment  
+
Views  
The views are created corresponding to the controllers that each member is in charge of.  
78  
2.4 Design  
The group paid attention to design four main parts : Database Design, Class Diagram,  
Activity Diagram and Sequence Diagram.  
Within the scope of this project and according to the requirement, there are 6 objects  
that are arranged in the table of database design (Figure 6 ): passenger, users, ticket, payment,  
flight and flightReservation as well as the properties that go with them showed in Entity-  
Relationship Diagram to identify the data model of the system.  
Figure 6 : Database Design  
The second part is Class diagram (Figure 7) which describes the structure of a system  
by showing the system's classes, their attributes, operations (or methods), and the  
relationships among objects. it shows static structure of classifiers in a system ,helpful for  
developers and other team members too.Business Analysts can use class diagrams to model  
systems from a business perspective.  
79  
Figure 7 : Class Diagram  
Activity diagram (Figure 8) is the third part. This is another important behavioral diagram  
in UML diagram to describe dynamic aspects of the system. Activity diagram is essentially an  
advanced version of flow chart that modeling the flow from one activity to another activity.  
Figure 8 : Activity Diagram  
The last is Sequence Diagrams which capture the interaction between objects in the  
context of a collaboration. Sequence Diagrams are time focused and they show the order of  
the interaction visually by using the vertical axis of the diagram to represent time what  
messages are sent and when.  
80  
Figure 9 : Sequence Diagram  
2.5 Evaluation  
2.5.1 Advantages  
The first advantage is the high performance. A Java application's performance can be  
greatly improved by using Just-In-Time compilation, adaptive optimization, garbage  
collection, and multi-threading. The Java architecture is also intended to reduce runtime  
overheads.  
The second upside of using Java is a true object-oriented programming language.  
Almost everything in Java is an object. Objects and classes contain both program code and  
data. Java has a large number of classes grouped into packages that can be inherited and used  
in applications. Java's object model is trouble-free and simple to extend.  
2.5.2 Limitations  
Although Java is high performance, it seems to be less productive than other  
programming languages. It is better suited for large projects like banking rather than small  
languages. Startups today need to hit the market as soon as possible. Java does not do it well  
in this area, which makes it a minus point of using Java.  
Using IDE for Java is extremely important and essential for those who do not have  
much experience using java and that makes web application development in java become IDE  
dependent.  
81  
2.5.3 Further improvements  
Currently, the system has not provided features to evaluate the quality of the service as  
well as the feedback of customers. In the future, the system will implement the chatbot to  
automatically answer frequently asked questions to help better interact with customers.  
Authentication is another enhancement. Rather than checking the login feature with  
dump info, the development team would use cloud-based authentication, which is more  
reliable and professional. Users will be able to sign up using their social network account, and  
their information will be synced to the cloud.  
One more thing, In the more distant future, the system will develop to help users find  
and book hotels, or book a taxi to make the experience of using the system more diverse.  
Besides, the system will develop an application on mobile devices in order to diversify forms  
of access and make it more convenient for users.  
3. Conclusion  
Technology is advancing at a rapid pace nowadays, humans can easily move to remote  
places quickly and conveniently by plane. That's why flight booking systems appeared and  
became extremely relevant and useful. Due to the increased use of large-scale systems,  
software engineering is now more focused on various metrics such as usability, ease of use,  
and, most importantly, scalability. In this report, we have developed a flight booking system  
using Java language and applied the MVC model in application development to give our  
customers the best and most special experience using the service.  
REFERENCES  
[1] Addison Wesley (2003, February 26). Software Architecture in Practice [Online  
Book].  
Retrieved  
from  
%20Software%20Architecture%20In%20Practice%202Nd%20Edition%20Ebook-Lib.pdf  
82  
pdf 11 trang baolam 51960 Free
Bạn đang xem tài liệu "Airline reservation system", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfairline_reservation_system.pdf