Design An Airline Management System
Design An Airline Management System
System Requirements
5. Only the admin of the system can add new aircrafts, flights, and
flight schedules. Admin can cancel any pre-scheduled flight (all
stakeholders will be notified).
Here are the top use cases of the Airline Management System:
Add/Modify aircraft
Add/Modify flight
Add/Modify flight
schedule
Modify flight
instance
Admin
<<extends>>
Assign pilot/crew
View flight
Login/Logout/Reset instance
password
Pilot/Crew
Search flights
Create itinerary
Front Desk Officer
Customer
<<include>>
<<include>>
<<include>>
Assign seat to
passenger
Send itinerary
Make payment notification
<<include>> <<include>>
Send reservation
Refund payment Cancel itinerary canceled notification
Flight: The main entity of the system. Each flight will have a
flight number, departure and arrival airport, assigned aircraft,
etc.
Class diagram
(/learn)UML conventions
<<interface>>
Name
Interface: Classes implement interfaces, denoted by Generalization.
method1()
ClassName
property_name: type Class: Every class can have properties and methods.
Abstract classes are identified by their Italic names.
method(): type
A B Generalization: A implements B.
Activity diagrams
Reserve a ticket: Any customer can perform this activity. Here
are the steps to reserve a ticket:
Is there any
Is there any [no] Tell customer about the Search
flight
unavailability of flights again?
(/learn)
available?
[yes]
[no]
See if it is [no]
an existing
customer?
[yes]
[yes]
Check if the
customer is [no]
cancelling before
the cancel
the cancel
deadline?
(/learn)
[yes]
Print Email
Code
Enums and Constants: Here are the required enums, data types, and
constants:
Java Python
public enum FlightStatus{
ACTIVE, (/learn)
SCHEDULED,
DELAYED,
DEPARTED,
LANDED,
IN_AIR,
ARRIVED,
CANCELLED,
DIVERTED,
UNKNOWN
}
Java Python
// For simplicity, we are not defining getter and setter functions. The read
// assume that all class attributes are private and accessed through their
// public getter method and modified only through their public setter method
Java Python
Java Python
public class WeeklySchedule {
(/learn)
private int dayOfWeek;
private Time departureTime;
}
← Back Next →
(/courses/grokking- (/courses/grokking-
the- Mark as Completed
the-
object- (/learn) object-
oriented- oriented-
design-
Design an ATM design-
Design Blackjack and a Deck of Cards
interview/m22LWKgQ4Wr) interview/YQ5gm2APRnp)
Stuck? DISCUSS
Get (https://discuss.educative.io/c/grokking-the-object-oriented- 5
Send
help design-interview-design-gurus/object-oriented-design- Recommendations
feedback
on case-studies-design-an-airline-management-system)