Software Architecture and Design Project
Software Architecture and Design Project
UNIVERSITY
Software Engineering Department
Section: 02
1. Introduction ............................................................................................................................ 3
1
3.6. Static model................................................................................................................ 28
4. Design model.................................................................................................................... 29
References .............................................................................................................................. 38
Appendixes ............................................................................................................................. 39
2
II. Executive Summary
1. Introduction
The Addis Hotel Booking Website project is an initiative to transform the customer experience
and operational efficiency of Addis Hotel by developing a robust online booking platform. This
project addresses the growing demand for digital solutions in the hospitality industry, providing
customers with a seamless and convenient way to book rooms and services online. It also aims
to streamline hotel operations, improve customer satisfaction, and increase revenue.
1.1. Background
Addis Hotel, a premier establishment known for its excellent service and prime location,
currently relies on traditional methods for reservations, which include phone calls and in-person
bookings. These methods are not only time-consuming but also limit the hotel's ability to attract
and retain tech-savvy customers who prefer online transactions.
The absence of an online booking system poses significant challenges, including limited
accessibility for potential guests, inefficient booking management, and missed opportunities for
revenue generation. In a competitive market, the lack of digital presence can adversely affect
the hotel's growth and customer satisfaction levels.
1.3 Motivation
The motivation behind this project stems from the need to adapt to modern technological trends
and meet the expectations of today's customers. By implementing an online booking platform,
Addis Hotel can provide a user-friendly and efficient booking process, thus enhancing the
overall guest experience and operational efficiency.
1.4 Objectives
General Objective:
● To develop a comprehensive online booking system for Addis Hotel that simplifies the
reservation process for customers and enhances operational efficiency.
Specific Objectives:
3
● To provide automated email notifications for booking confirmations and updates.
This project is significant as it aligns Addis Hotel with industry standards by adopting digital
solutions that improve customer service and operational efficiency. An online booking system
will attract a broader audience, increase booking rates, and provide valuable data insights for
better decision-making.
The project will cover the development and implementation of the online booking website,
including customer interface, booking management system, payment processing, and
notification services. It will also involve user training and support to ensure smooth transition
and adoption.
1.7 Limitations
The initial release of the booking system will focus on core functionalities such as room
reservations, payment processing, and email notifications. Advanced features like loyalty
programs, personalized recommendations, and mobile app integration will be considered for
future enhancements.
The primary objective of studying the existing system is to develop a new hotel booking system
that performs activities more efficiently and effectively while addressing and resolving current
issues. By thoroughly understanding the limitations and problems of the current system, we can
design and implement a new solution that enhances overall performance and user satisfaction.
This new system will streamline the booking process, improve user experience, and ensure
seamless integration with various platforms. The goal is to offer a more intuitive, reliable, and
faster hotel booking experience, ultimately leading to increased customer satisfaction and
loyalty.
We're currently developing a state-of-the-art hotel booking website aimed at revolutionizing how
guests reserve their accommodations without the need to physically visit the hotel. Traditionally,
guests have had to interact directly with hotel staff or navigate through various online platforms
to book their stays. This process often involves either visiting the hotel in person or using
multiple apps and websites to browse room options, make reservations, and manage bookings.
Such methods can be cumbersome, requiring manual input of guest details, handling payments,
and coordinating room preferences.
4
Our primary objective is to simplify and centralize this entire process through a user-friendly
website that aggregates all booking functionalities online. Guests will have the convenience of
seamlessly booking rooms directly through the hotel's website, a dedicated mobile app, or
affiliated partner platforms. We aim to provide real-time updates on room availability,
comprehensive room descriptions, and flexible booking options, empowering guests to make
informed decisions quickly and effortlessly secure their preferred accommodations.
Beyond enhancing the booking experience for guests, our system is designed to significantly
improve operational efficiency for hotel staff. By automating routine tasks such as booking
confirmations, room allocations, and guest communications, hotel personnel can focus more on
delivering personalized guest services and enhancing overall guest satisfaction. Guests will
enjoy the convenience of managing their reservations, making changes, and accessing
personalized services directly from their mobile devices or computers, thereby reducing wait
times and streamlining their experience.
In addition to streamlining booking logistics, our website will introduce innovative features aimed
at further enhancing guest convenience and satisfaction. This includes offering online check-in
and check-out options to minimize waiting times at reception desks, providing secure and
convenient digital payment solutions, and delivering personalized recommendations based on
guest preferences and past interactions with the hotel.
The in-person booking method imposes severe limitations on digital access, independent
booking capabilities, delivery of multimedia information, online collaboration, and real-time data
collection and analysis. This approach leads to considerable inefficiencies for both customers
and hotel staff due to its reliance on traditional methods rather than using modern technology.
The current hotel booking process relies heavily on traditional, manual methods that are not
only inefficient but also restrict both guests and hotel staff from using the benefits of modern
technology. Guests typically engage directly with hotel staff or use conventional booking
channels like phone calls or in-person visits to secure their accommodations. This approach
often necessitates repetitive data entry, manual payment handling, and limited flexibility in
booking options. For hotel staff, managing reservations, processing payments, and coordinating
room assignments manually can lead to delays, errors, and missed opportunities for upselling or
personalized service delivery.
In contrast, our upcoming hotel booking website aims to revolutionize this experience by
integrating advanced functionalities and embracing both functional and non-functional aspects
crucial to modern hospitality operations. Functionally, our platform will offer guests a
user-friendly interface for browsing rooms, selecting amenities, and completing bookings
seamlessly online. Real-time updates on room availability, detailed descriptions, and
multimedia-rich content will empower guests to make informed decisions with ease. Additionally,
automated booking confirmations, digital check-in/out processes, and secure online payment
5
options will streamline operations, reduce check-in times, and enhance overall guest
satisfaction.
Non-functionally, our system will prioritize scalability, ensuring it can handle peak booking
periods without compromising performance. Robust security measures will safeguard guest data
and payment transactions, providing peace of mind to both guests and hotel management.
Moreover, integration with customer relationship management (CRM) tools will enable
personalized guest interactions, from pre-arrival preferences to post-stay feedback collection.
These enhancements not only improve operational efficiency but also elevate the guest
experience by offering tailored recommendations, loyalty rewards, and seamless communication
channels
Reduced Personal Interaction: Guests may miss the personalized service and local insights
provided by direct interaction with hotel staff.
Technical Issues: The website may experience occasional downtime or booking errors, affecting
the booking experience and guest satisfaction.
Screen Dependency: Continuous use of digital screens for booking and managing reservations
could contribute to guest discomfort and screen fatigue.
2. Requirement model
Functional Requirements:
6
○ The system must generate a reservation ID and provide a summary of the
booking details.
4. Payment Processing:
○ Users must be able to make payments online using a secure payment gateway.
○ The system must confirm the payment and update the reservation status to
'confirmed.'
5. Booking Management:
○ Hotel staff must be able to view, update, and cancel reservations.
○ The system must send email notifications to customers for booking confirmations,
cancellations, and updates.
6. Room Management:
○ Hotel staff must be able to add, update, and delete room information (room
number, type, availability, price).
Non-Functional Requirements:
1. Usability:
○ The user interface must be intuitive and easy to navigate for both customers and
hotel staff.
2. Performance:
○ The system must handle multiple concurrent users without significant
performance degradation.
○ Search and booking operations must be completed within a few seconds.
3. Security:
○ User data and payment information must be securely stored and transmitted
using encryption.
○ The system must comply with relevant data protection regulations.
4. Reliability:
○ The system must be available 24/7 with minimal downtime.
○ Regular backups must be performed to prevent data loss.
5. Scalability:
○ The system must be able to scale to accommodate increasing numbers of users
and transactions.
6. Maintainability:
○ The system must be designed to allow easy updates and maintenance.
○ The codebase should be well-documented.
Actors
7
1. Guest: The primary user of the website who searches for hotels, makes bookings, and
manages their reservations.
2. Hotel Manager: Manages the hotel details, room availability, and booking confirmations.
3. System Administrator: Manages the overall system, user roles, and permissions.
4. Payment Gateway: Third-party service to handle financial transactions.
Use Cases
1. User Registration
2. User Login
3. Process Payment
4. Manage Hotel Information (Hotel Manager)
1. Guest fills in registration form with required details (name, email, password).
2. System validates the information.
3. System creates a new user account and sends a confirmation email.
Extensions:
8
Use Case 2: User Login
9
Postconditions: Guest is logged in.
Extensions:
10
Postconditions: Payment is processed.
Extensions:
● 2a. Payment fails: Display error message and allow guest to reattempt.
11
Postconditions: Hotel information is updated.
Extensions:
12
3. System generates and displays the report.
Extensions:
● 2a. No data for selected criteria: Display message indicating no data available.
3. Analysis model
13
particular scenario. It is a graphical representation similar to a Message Sequence Chart,
demonstrating object interactions over time. The diagram showcases the objects and classes
involved in the scenario, detailing the sequence of messages exchanged to execute the
scenario's functionality.
In a sequence diagram, objects and actors are listed across the top, with vertical dotted lines
extending downwards to represent their lifelines during the scenario. Interactions between
objects are depicted using annotated arrows. The sequence of interactions follows a
top-to-bottom reading order. Annotations on arrows specify the method calls, their parameters,
and return values
14
Figure: Sequence diagram of logout
15
Figure: Sequence diagram of adding features and facilitates
16
Figure: Sequence diagram to update contact settings
17
3.2. Communication diagram
Figure:
18
Figure:
Figure:
The System Context Diagram (SCD) shows the requirements of a computerized system that
distributes and stores information about Addis Hotel which enables hotel managers to manage
their sales and online marketing, enabling them to upload their room rates and room availability
which can be easily seen by their sales channels. Sales channels may include online travel
agencies, as well as conventional travel agencies.
-External Entities
● Guest(Customer): Users who visit the website to search for rooms, make
reservations, and process payments.
● Hotel Staff: Personnel responsible for managing bookings, updating room
availability, and overseeing hotel operations.
19
● Bank(Payment Gateway): External service used to process payments securely.
● Email Service: External service used to send booking confirmations and
notifications to customers.
20
Figure:
21
Figure:
22
Figure:
23
Figure:
24
Figure:State chart diagram of booking a hotel
25
Figure:State chart diagram of editing user profile
26
Figure:State chart diagram of booking a hotel
27
Figure:State chart diagram enabling and disabling notifications
28
Figure:
4. Model of Design
1. Usability: Ensure the system is intuitive and easy to use for both customers and hotel
staff.
2. Scalability: Design the system to handle increasing numbers of users and transactions
efficiently.
3. Security: Implement strong security measures to protect user data and payment
information.
4. Reliability: Ensure the system is available 24/7 with minimal downtime and robust error
handling.
5. Performance: Optimize the system to provide fast response times for all operations.
6. Maintainability: Structure the system to facilitate easy updates and maintenance, with
well-documented code and clear separation of concerns.
7. Flexibility: Design the system to allow for future enhancements and integrations, such
as loyalty programs and mobile app support.
29
4.2. System Architecture
The system architecture for the Addis Hotel Booking System follows a multi-tier architecture,
dividing the system into distinct layers to enhance maintainability, scalability, and security.
c. Subsystem Decomposition
Subsystem decomposition breaks down the system into smaller, manageable parts, each
responsible for a specific functionality. This helps in isolating and organizing the components for
better maintainability and scalability.
30
○ Components: Room Interface, Room Controller, Room DAO
4. Payment Processing Subsystem:
○ Responsibilities: Handling payment transactions and integration with the
payment gateway.
○ Components: Payment Interface, Payment Controller, Payment DAO, Payment
Gateway API
5. Notification Subsystem:
○ Responsibilities: Sending email notifications for booking confirmations, updates,
and cancellations.
○ Components: Notification Interface, Notification Controller, Email Service API
31
4. 5. Deployment Diagram
Figure:
The AddisStay app will utilize a relational database to store the necessary data. The some of
the main entities and their relationships are as follows:
32
Figure:
The database design ensures efficient storage and retrieval of hotel information, user profiles,
booking details, and reviews, supporting the core functionalities of the AddisStay app.
5.1. Overview
The Flutter framework will be used to construct the AddisStay website, enabling the creation of
a cross-platform software for both iOS and Android. Flutter was selected because it may save
development time and expenses while offering a uniform user experience across many devices.
An incremental and iterative strategy will be used to deploy AddisStay, ensuring that the
website's basic features are thoroughly developed and tested before moving on to more
complicated ones. The following phases will comprise the implementation:
33
2. Phase 2: User Interface and User Experience Design - Create an aesthetically pleasing and
easily navigable user interface for the website.
Use the widget-based architecture of Flutter to implement the UI components for a responsive
and unified design.
- For a smooth user experience, integrate the UI with the main features of the website.
5.3. Testing
There are many testing strategies that can be considered for the AddisStay website. Among
them are the following:
I. Unit Tests
- Develop unit tests to ensure the correctness of individual components and modules within
the website.
- Utilize Flutter's built-in testing framework, such as the `flutter_test` package, to write and
execute unit tests.
34
IV. Performance Testing
- Assess the website's performance, including loading times, responsiveness, and resource
utilization.
- Utilize tools like the Flutter Performance Tool or device-specific performance testing tools to
identify and address any performance bottlenecks.
V. Security Testing
- Evaluate the website's security measures, such as data encryption, input validation, and user
authentication.
- Conduct security audits and vulnerability assessments to ensure the website's compliance
with industry standards and best practices.
The testing results and findings will be documented, and any necessary improvements or bug
fixes will be implemented to ensure the AddisStay website meets the expected quality and
functionality standards.
Requirement Test:
During this phase, our focus has been on a testing approach where test cases, conditions, and
data are derived from requirements. This includes functional tests as well as non-functional
attributes such as performance, reliability, and usability.
Unit Testing:
During this phase, we have focused on testing the smallest software components. Each unit
(basic component) of the software is tested to ensure that the detailed design for the unit has
been correctly implemented. This testing is performed at the class level and aims to resolve all
syntax and semantic errors.
Security Testing:
Security testing has been completed by evaluating the system's username and password
authentication, as well as authorization privileges with appropriate restrictions. For example,
testers attempted to access the system without valid usernames and passwords to ensure
unauthorized access was effectively prevented.
Performance Testing:
This testing determines how the system performs across a range of possible environments in
which it may be used. It involves configuring the system in various environments, such as
different operating systems, networks, and hardware configurations. For example, this testing
assesses the system's speed, stability, and scalability under different conditions.
Integration Testing:
35
After completion of individual components; they were integrated and tested to ensure that they
integrate well with each other and with the operating system, and other components as well to
achieve the central objectives.
System Testing:
System testing is a type of software testing performed on a fully integrated system to evaluate
its compliance with the specified requirements. This process begins with components that have
passed integration testing. After completing the aforementioned tests, we will have other
individuals test our system and gather their feedback on its performance.
Software project scheduling and planning involve distributing estimated effort and time across
the project's duration by allocating tasks to specific software engineering activities. This
document outlines how the project will be executed, monitored, and controlled. The schedule
evolves over time, beginning with a macroscopic schedule during the early stages of project
planning.
36
No Cost Quantity/Amou Unit Price Total
type nt Price
The AddisStay website seeks to transform the way visitors to Addis Ababa, Ethiopia, book
hotels. The website offers a comprehensive, cross-platform, and user-friendly solution that
makes it easy for customers to search, browse, and book accommodations that best fit their
needs.
The AddisStay website's primary features—such as its hotel search function, star ratings, user
reviews, and easy booking process—address the typical problems that tourists run across while
making hotel reservations. The user experience is further improved by the website's integration
of user profiles, powerful filtering, and interactive maps.
The development platform of choice, the Flutter framework, minimizes development costs and
time-to-market by guaranteeing a consistent and high-performing application across both iOS
and Android devices. A strong testing strategy in conjunction with a gradual and iterative
implementation method will guarantee the delivery of a dependable and superior product.
In order to guarantee the AddisStay website's sustained popularity and further enhance it, the
following suggestions are offered:
37
1. Constant User Feedback and Improvement: To improve the functionality and user experience
of the website, regularly collect user feedback and take their recommendations into
consideration. This will support preserving user engagement and pleasure.
2. Integration with Extra Services: To provide consumers a more thorough trip experience,
investigate integrating the app with extra services like booking flights, renting a car, or getting
information about city guides.
3. Expansion to Other Cities: To better serve users' varied travel needs, think about extending
the website's reach to other significant cities in Ethiopia or the larger African continent.
These suggestions can help the AddisStay website develop further and establish itself as the
go-to resource for tourists looking to book hotels in Addis Ababa and beyond.
References:
38
Appendixes:
Project Goals:
● Create a user-friendly and responsive hotel booking website
● Integrate with hotel booking APIs to provide real-time availability and pricing
● Implement a secure payment processing system
Project Team:
● Project Manager: Oversees the project and manages the team
● Developers: Build the front-end and back-end components of the website
● Quality Assurance: Performs testing to ensure the website meets requirements
Risk Management:
● Potential delays in hotel API integration
- Plan for flexible integration approaches and communicate with hotel partners
● Unexpected changes in hotel pricing or availability
- Implement caching mechanisms and monitor market trends
● Cybersecurity threats during payment processing
- Follow industry-standard security practices and conduct regular testing
Project Governance:
● Steering Committee: Meetings to review progress and make decisions
● Sprint Reviews: Meetings to showcase progress and gather feedback
39