Do you think IIT Guwahati certified course can help you in your career?
No
Introduction
The Airline Management System is a software that makes the daily operations of airlines more efficient and convenient for customers. Examples of these systems include Sabre Airline Solutions, Amadeus IT Group, and Travelport.
The Airline Management system covers everything from booking flights and managing customer data to tracking flight schedules and updates. By providing a comprehensive solution for the airline industry, these systems aim to streamline processes, improve efficiency, and enhance the customer experience.
The low-level design of the Airline Management System includes functional and non-functional requirements, data structures, algorithms, and interfaces. This blueprint serves as a guide for the development and implementation of the system.
System Requirements
Collecting the functional and non-functional requirements of an Airline Management System lays the foundation for designing the system.
Functional Requirements
What are functional requirements?
Functional requirements are the specific tasks or functions that a system must be able to perform. They describe what a system should do and what it should be able to accomplish.
Functional Requirements for an Airline Management System
The following requirements are considered as functional requirements for an Airline Management System:
Class Flight: This class stores flight information such as flight number, departure city, arrival city, departure time, arrival time, flight status, and available seats. The class provides accessor functions to retrieve each piece of information.
Class Passenger: This class stores information about a passenger, such as name, booking status, and seat number. The class provides accessor functions to retrieve each piece of information.
Class Booking: This class stores information about a booking, such as booking number, passenger information, flight information, and payment details. The class provides accessor functions to retrieve each piece of information.
Class Staff: This class stores information about a staff member, such as name and staff ID. The class provides accessor functions to retrieve each piece of information.
Main Function: The main function creates objects of the classes and retrieves information about flight, passenger, booking, and staff using accessor functions. The retrieved information is displayed on the console.
Non-Functional Requirements
What are nonfunctional requirements?
Non-functional requirements are the requirements that specify the quality and performance characteristics of a system. They describe how the system should behave and how well it should perform.
Non-Functional Requirements for an Airline Management System
The following requirements are considered nonfunctional requirements for an Airline Management System:
Scalability: The system should handle an increase in the number of flights, customers, and transactions.
Reliability: The system should be highly reliable and available to customers 24/7.
Performance: The system should be able to provide real-time information and respond to customer requests.
Security: The system should ensure customer information and transactions' confidentiality, integrity, and availability.
User-Friendliness: The system should have a user-friendly interface that is easy to use and navigate.
Interoperability: The system should be able to integrate with other systems and technologies the airline uses.
Class Diagram
What are class diagrams?
A class diagram is a type of diagram used in object-oriented programming to represent the structure of a system by showing the relationships between classes, interfaces, and objects.
For a complete overview of class diagrams, including their definition and creation process, please refer to this article for more information.
Use Case Diagram
A use case diagram is a type of UML diagram that describes the interaction between a system and its users or external systems. It provides a high-level view of a system's functionalities and the different types of users or external systems that interact with it. Use case diagrams are typically used to identify, analyze, and document the requirements of a system from the perspective of its users or stakeholders.
In this diagram, there are two actors: User and Booking Staff. The User interacts with the Flight Booking System to Search for flights, Reserve seats, Cancel Reservations and View Reservations. The Booking Staff interacts with the Flight Booking System to View Flight Information, Modify Flight Status, Add/Update Flight Details, and Create/View Staff Account.
This Airline Management System code defines several classes in C++ to model a flight reservation system:
Flight Class: stores information about a flight such as flight number, departure city, arrival city, departure time, arrival time, flight status, and seats available.
Passenger Class: stores information about a passenger, such as name, booking status, and seat number.
Booking Class: stores information about a booking, such as booking number, passenger information, flight information, and payment details.
Staff Class: stores information about a staff member, such as name and staff ID.
The main() function creates objects of each class and accesses their data using class methods to print it to the console.
Frequently Asked Questions
What are the challenges of having the entire application code (Front end, back end and data storage layer) as a single codebase?
Having a single codebase for the entire application (monolithic architecture) can lead to:
Complexity and difficulty maintaining and understanding the code,
Deployment difficulties.
Scalability issues and bottlenecking.
Lack of modularity and difficulty with testing and implementing new technologies.
Lack of flexibility and difficulty with DevOps practices.
A microservices architecture can help overcome these challenges by separating components into independent units that can be developed, deployed, and scaled independently.
Why are monolithic systems known as centralised systems?
Monolithic systems are considered centralized because all application components are integrated into a single codebase, and all requests are processed through a single entry point. This centralization can simplify management but can also result in limitations in scalability and increased risk of failure.
What can cause a partition in a distributed system?
Network failures, hardware failures, software failures, load balancing issues, configuration errors, resource depletion, or intentional partitioning can cause a partition in a distributed system. It is important for a distributed system to handle and recover from partitions to ensure availability and reliability.
Conclusion
In conclusion, we have implemented a simple flight booking system using object-oriented programming concepts in C++. The system includes four classes - Flight, Passenger, Booking, and Staff - that store important information about the flight, passengers, bookings, and staff members.
Each class has its own attributes and functions to access and manipulate the data. The program's main function demonstrates how to use these classes and access their stored information. The output shows the various attributes of the flight, passenger, booking, and staff objects.
This system aims to help airlines manage their operations and make processes more efficient. It is designed to provide a comprehensive solution for the airline industry. It has requirements like handling more flights, customers, and transactions, reliability, good performance, security, and user-friendly interface.
We've taken a big step in understanding the low-level design of an Airline Management System. We're ready to tackle more challenging system design problems, which are frequently asked in product-based companies.
To keep growing your skills, check out our System Design Guided path. It provides all the information you need to get started with system design. You can also consider our System Design Course to give your career an edge over others.
We're glad you found this blog helpful. Don't hesitate to share your thoughts and feedback in the comments section.