Technical Report
Technical Report
1.Introduction
2.Diagrams…
2.1. Flight use case diagram
2.2. Flight sequence diagram
2.3. Flight activity diagram
2.4. Flight use case description
2.5. Hotel use case diagram
2.6. Hotel sequence diagram
2.7. Hotel Activity diagram
2.8. Hotel use case description
2.9. Sales use case diagram
2.10. Sales sequence diagram
2.11. Sales Activity diagram
2.12. Sales use case description
2.13. Domain Class Diagram
2.14. Design class diagram.
2.15. First Cut Design class diagram.
2.16. CRC Card.
2.17. Communication Diagram.
2.18. Multi-Layer Sequence diagram.
2.19. Component Diagram.
2.20. Registration use case diagram.
3. Electronic Internal output Reports
3.1. Flight internal report
3.2. Car rental internal report
4. Electronic External output Reports
4.1. Flight external report
4.2. Car rental external report
5.Design Patterns
5.1. Singleton Design Pattern
5.2. Abstract Factory Design Pattern
5.3. Adaptor Design Pattern
5.4. Bridge Design Pattern
5.5. Flyweight Design Pattern
5.6. Iterator Design Pattern
5.7. Mediator Design Pattern
5.8. Strategy Design Pattern
5.9. Observer Design Pattern
6. User Interface.
1.Introduction
In the contemporary era of digital convenience, the travel
industry has witnessed a paradigm shift towards online
reservation systems, catering to the evolving needs and
preferences of modern travelers. In this context, TravelWithMe
emerges as a frontrunner, revolutionizing the travel experience
through its innovative Online Travel Reservation System (TRS).
Formerly a traditional tour operator website, TravelWithMe has
embraced digital transformation to provide a seamless platform
for travelers to book flights, hotels, and car rentals, while also
prioritizing personalized user profiles and efficient account
management. This report delves into the intricacies of
TravelWithMe's TRS, exploring its core functionalities, customer-
centric approach, and the underlying processes that drive its
success in delivering unparalleled convenience and value to
travelers worldwide. From price quoting to order validation, this
report sheds light on details of diagrams, details of electronic
reports and details of UI.
2.Diagrams:
2.1. Flight use case diagram
2. Attribute:
1. Elaboration Attribute:
Add data type of all attributes.
2. Navigation visibility:
Second side
Include all attributes.
Also, customers can confirm and cancel bookings through the website. In this diagram, we use
the same interactions that we made between the user and system components in the sequence
diagram
The "UI" and "customer" participants represent the view layer, where
user interactions with the system take place.
The "DB" participant represents the data layer, interacting with other
components to store and retrieve data.
The User Profile Update component updates the user profile in the
database, which then sends back a confirmation.
By adding these elements, the simple sales department sequence diagram evolves into the more
complex multi sequence diagram.
1. Customer:
Represents the actor (user) interacting with the system.
2. System:
Represents the system responsible for handling user
authentication, registration, input validation, and user
creation.
3.Validation & Creation of User:
Process of validating the input provided during registration
(e.g., username uniqueness, password strength).
Creation of a new user account in the system upon
successful validation.
Table Columns:
ID: This column represents the unique identifier for each flight.
Season: Indicates the season for which the flight is available. In this case,
it's listed as "All," meaning the flights are available year-round.
Category: Specifies the category of the flight. In this case, it's listed as
"Domestic," indicating that the flights are domestic flights within the United
States.
Supplier: This column specifies the airline providing the flight service
(Delta Airlines or United Airlines).
Unit Price: Represents the standard price for one seat on the flight.
Special Price: Indicates any discounted price for one seat on the flight.
Discontinued: Specifies whether the flight is still available ("No" indicates
that the flight is still active).
Description: Provides details about the type of ticket and the route of the
flight.
Flight Details:
Each row represents a specific flight with its corresponding details,
including flight ID, category, supplier, unit price, special price, and
description.
The description typically includes information about the ticket class and the
route of the flight.
BookingSystem Class
The BookingSystem class ensures only one instance of itself is created and provides
global access to that instance through a static method getInstance(). This is
achieved by:
CarRental: Represents a car rental with properties like ID, unit price, special price,
category, description, and details. It includes methods to check car info, availability,
rental reports, and process payments.
Flight: Represents a flight with properties like ID, unit price, special price, seat,
description, date, destination, and origin. It includes methods to get flight details,
confirm flight booking, and process payments.
Hotels: Represents a hotel with properties like hotel name, unit price, special price,
and details. It includes methods to get available rooms, check-in, check-out, confirm
room booking, and process payments.
Main Method
The main method in the BookingSystem class demonstrates the usage of the
Singleton pattern and the interaction with the BookingSystem class:
Components:
Main Method:
The main method serves as an entry point to the application. It demonstrates the
usage of the Adapter pattern by creating instances of the ExternalPaymentSystem,
PaymentAdapter, and SalesDepartmentImpl classes. It then processes an order
through the SalesDepartmentImpl object, which internally utilizes the
PaymentAdapter for payment processing.
This code exemplifies how the Adapter pattern facilitates interaction between
incompatible interfaces, allowing seamless integration of different systems or
components within an application.
1. *Abstraction (Booking): *
- *Attributes: *
2. *Refined Abstractions: *
- *Methods: *
4. *Concrete Implementors: *
Components:
Mediator
Methods:
SystemMediator
Attributes:
Methods:
SalesDepartment
Methods:
CarRental
Methods:
Hotel
Methods:
Flight
Methods:
Relationships
Inheritance:
Associations:
1. *Context (bookingcontext):*
- *Attributes: *
- *Methods: *
- *Methods: *
3. *Concrete Strategies: *
4. *bookingdetails Class: *
- *Attributes: *
- -String bookingDate
- -String destination
- -int numberOfGuests
- *Methods: *
Observer Interface:
update() method, which called to notify Observers of changes.
Concrete Observer Classes:
SalesDepartmentObserver & SystemObserver: Implements the
Observer interface and defines the update() method to print a
notification message specific to the Sales Department.
Customer:
has methods to set these observers and notify them when the state of
the Customer object changes.
has references to two observers: salesDepartmentObserver and
systemObserver.
The main method demonstrates how to use the Customer class with
observers:
Instantiate a customer object.
Create SalesDepartmentObserver and SystemObserver objects.
Set these observers in the Customer object.
Change the name and email of the Customer.
6. UI
Homepage:
On our website's homepage, there is a header containing the
website's name and buttons for logging in and registering, along
with three options for booking: flight reservations, hotel
reservations, and car rentals. In the main section, exciting and
enticing examples of travel are displayed, along with pictures of
various countries that users can visit. Examples of our affiliated
hotels are also shown. In the footer, there is information about our
company, contact details, and customer service.
flight reservations:
On the second page, which is the flight booking page, the header
contains the name of our company and a logo design. In the main
section, the user fills in details about the trip, including the
destination, departure and return dates, number of passengers,
and type of flight.
hotel reservations:
On the third page, which is the room booking page, the header
remains the same, featuring the company name and logo. In the
main section, there is a form for entering information such as the
number of guests, number of rooms required, check-in and check-
out dates, and destination to display available hotels. Additionally,
there are examples of hotels, villas, and houses that can be
booked. The footer contains the same information as before,
including details about our company.
Car rental:
On the fourth page, which is the car rental page, the header
remains consistent with the company name and logo. In the main
section, there is information about the pickup location, return
time, and a list of car rental companies we collaborate with.
Registration page:
On the registration page, users can create an account if they
don't already have one. The header remains consistent, displaying
the company name and logo. In the main section, users input
information such as their first name, last name, email address,
account password, and nationality. Additionally, there is a button
to complete the registration process.
LOGIN Page: