đòi hỏi phải nhanh chóng, chính xác chất lượng phục vụ cao thì mới đáp ứng được nhu cầu của một khách sạn hiện đại, phù hợp với sự phát triển chung hiện nay.. Tuy nhiên qua một thời gian
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM - 🙢★🙠 -
BÁO CÁO ĐỒ ÁN MÔN HỌC
ĐỒ ÁN 2
Đề tài: XÂY DỰNG PHẦN MỀM QUẢN LÝ KHÁCH SẠN
BẰNG QT FRAMEWORK
Giảng viên hướng dẫn: Hoàng Văn Hà
Nhóm sinh viên thực hiện:
1 Đặng Đình Quyền Anh 17520227
2 Trần Trung Hiếu 17520484
TP HỒ CHÍ MINH, 01/2021
Trang 2NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………, ngày …… tháng …… năm 2020
Người nhận xét
(Kí và ghi rõ họ tên)
Trang 3CHƯƠNG 1: THÔNG TIN CHUNG
1.1 Đặt vấn đề
Sự phát triển của ngàng công nghệ thông tin làm cho việc quản lý các hệ thống thông tin trở nên tiện lợi, an toàn, có tính tự động hóa cao Trong số đó phải nói đến hệ thống quản lý khách sạn Đó là một công việc khá phức tạp, và có một lưu lượng thông tin quản lý lớn
Toàn bộ các hoạt động của khách sạn như đặt trả phòng, quản lý phòng, quản lý nhân viên, quản lý khách, thống kê, kế toán, các hoạt động dịch vụ khác, đòi hỏi phải nhanh chóng, chính xác chất lượng phục vụ cao thì mới đáp ứng được nhu cầu của một khách sạn hiện đại, phù hợp với sự phát triển chung hiện nay
Tuy nhiên qua một thời gian tìm hiểu chúng em nhận thấy việc quản lý khách sạn nói chung vẫn chưa đáp ứng được yêu cầu của khách hàng và các nhà quản lý
Các khách sạn có số lượng phòng và khách đến nhiều Số phòng cho thuê có thể lên tới hàng trăm phòng Có loại phòng giành cho một người, có 2 loại người hoặc hơn (phòng ở gia đình), do đó số người thuê phòng tối đa có thể lên tới hàng trăm thậm chí hàng nghìn người
Vì vậy cần phải cải tiến tích cực các quy trình nghiệp vụ với sự áp dụng công nghệ thông tin hiện đại, và cần xây dựng mô hình mới phù hợp, tiện lợi cho khách sạn nhằm đem lại hiệu quả kinh doanh cao nhất
Thứ ba, tài liệu khi khảo sát bước đầu còn chưa đầy đủ, chính xác và phụ thuộc nhiều
vào lựa chọn kỹ thuật thu thập yêu cầu khách hàng
Thứ tư, trình độ chuyên môn tin học của các thành viên trong tổ chức thiếu sự đồng
đều
Thứ năm, chưa cụ thể hóa phạm vi hệ thống và phân loại các yêu cầu cũng như còn
mơ hồ về quy trình thiết kế
Cuối cùng, chưa hiểu rõ hết các yêu cầu phi chức năng mà khách hàng mong muốn
1.3 Các nội dung nghiên cứu và thực hiện
Bắt đầu tìm hiểu nghiệp vụ bằng cách khảo sát các khách sạn lân cận trong khu vực; khảo sát các ứng dụng đặt phòng khách sạn, quản lý khách sạn hiện này trên thị trường; tìm hiểu các quy trình quản lý khách sạn từ quy mô nhỏ, vừa đến lớn
Trang 4Tìm hiểu về các công nghệ để tạo ra phần mềm: Qt Framework, Mircosoft SQL Server, Hệ điều hành Ubuntu, …
Tìm hiểu về cách quản lý database phù hợp với ứng dụng quản lý khách sạn cùng các chức năng liên quan
Tìm hiểu về cách thức quản lý các bộ phận nhân viên trong công ty từ giám đốc, phó giám đốc, phòng tài chính phòng nhân sự, bộ phận quản lý, bộ phận lễ tân, phục
vụ, bảo vệ, …
Trang 5CHƯƠNG 2: CÁC KIẾN THỨC, CÔNG NGHỆ NỀN TẢNG
2.1 Tổng quan về Qt
Qt là một framework đa nền tảng và bộ công cụ tiện ích để tạo giao diện người dùng
đồ họa và tạo ra các ứng dụng chạy trên nhiều nền tảng và phần cứng khác nhau hoặc ít thay đổi trong codebase cơ bản trong khi vẫn giữ được tốc độ và khả năng như một ứng dụng native
Qt hiện tại được phát triển bởi The Qt Company và được phân phối với cả giấy phép thương mại và giấy phép mã nguồn mở LGPL
Qt hỗ trợ đa dạng các loại trình biên dịch, bao gồm trình biên dịch GCC C++, đồng thời cung cấp công cụ Qt Quick cùng một ngôn ngữ lập trình khai báo được gọi là QML cho phép dùng Javascript để xây dựng logic Với Qt Quick, việc phát triển ứng dụng cho thiết bị di động trở nên nhanh chóng hơn, trong khi vẫn đạt được hiệu năng tốt
2.2 Kiến trúc phần mềm Qt
2.2.1 Các khái niệm
• Giao diện trừu tượng hoàn chỉnh: Ngày từ khi lần đầu tiên phát hành, Qt đã sở hữu riêng các công cụ paint engine, có khả năng giả lập giao diện của các nền tảng khác nhau khi các widget được vẽ Qt có rất ít lớp phụ thuộc vào một nền tảng cụ thể nên
có thể dễ dàng chuyển đối từ nền tảng này sang nền tảng khác
• Signal và Slot: Một cấu trúc ngôn ngữ được giới thiệu bởi Qt nhằm mục đích giao tiếp giữa các đối tượng, giúp dễ dàng thực hiện observer pattern trong khi tránh được các boilerplate code Các widget có thể gửi signal chứa thông tin sự kiện đến slots của một control khác
• Metaobject compiler: Viết tắt là “moc”, là một công cụ được chạy trên mã nguồn của chương trình Qt Nó thông dịch các macro từ code C++, và dùng nó để sinh ra các code C++ bổ sung Qt sử dụng metaobject để cung cấp các tính năng lập trình
mà không được hỗ trợ bởi C++ như: signal, slots, asynchronous function…
• Language Binding: Qt có thể được sử dụng với các ngôn ngữ khác ngoài C++ như Python, Javascript, C# và Rust thông qua Language binding
2.2.2 Các module cơ bản
Qt Core Module chứa các lớp được sử dụng bởi các module khác, bao
gồm: xử lý luồng, hệ thống sự kiện, xử lý I/O…
Qt GUI Module giao diện trung tâm, phụ thuộc vào OpenGL
Qt QML Module cho ngôn ngữ QML và Javascript
Qt Network Hỗ trợ các chức năng liên quan đến mạng như: TCP, UDP,
HTTP, SSL, …
Qt SQL Chứa các lớp cho việc tích hợp CSDL sử dụng SQL
Trang 62.3 Công cụ
• Qt Creator: một IDE đa nền tảng cho C++ và QML
• Qt Designer: một công cụ đi kèm có chức năng thiết kế GUI được tích hợp vào Qt Creator hoặc được sự dụng như một công cụ độc lập
• QMake: là một công cụ đa nền tảng hỗ trợ phát sinh build script, giúp tự động tạo
ra các Makefiles cho việc phát triển dự án trên nhiều nền tảng khác nhau
• Ngoài ra còn các công cụ hỗ trợ khác như: Qt Assistant, Qt Linguist, MOC…
Trang 7Đánh giá: Phần đã được phát triển từ lâu nên công nghệ sử dụng đã cũ, giao diện
màu sắc chưa được hợp lý
Trang 83.2.1.1 Đăng nhập
Điều kiện tiên
quyết
Luồng sự kiện
- Nhập tài khoản và mật khẩu
Điều kiện tiên
- Thêm dịch vụ
- Hiển thị giá phòng
- Cập nhật tổng tiền
Trang 9- Nhấn Lưu
- Cập nhật tổng phí dịch
vụ và tổng tiền
- Lưu phiếu đặt phòng vào CSDL
khác đặt
- Hiển thị thông báo yêu cầu chọn lại
3.2.1.3 Thêm khách hàng
Điều kiện tiên
- Nhấn Lưu - Lưu thông tin khách
hàng vào cơ sở dữ liệu
bắt buộc
- Từ chối lưu và đưa ra thông báo
3.2.1.4 Tạo phòng
Điều kiện tiên
- Chọn loại phòng
- Chọn các đồ dùng trong phòng
- Nhấn Lưu - Lưu thông tin phòng
3.2.1.5 Thêm tài khoản
Trang 10Điều kiện tiên
Trang 113.2.2 Database design
Trang 123.2.3 Sơ đồ lớp
Trang 133.2.4 Sơ đồ các yêu cầu nghiệp vụ
3.2.4.1 Lập danh mục phòng
Trang 143.2.4.2 Lập phiếu thuê phòng
Trang 153.2.4.3 Chỉnh sửa
Trang 163.2.5 Giao diện
3.2.5.1 Lịch phòng
3.2.5.2 Đặt phòng
Trang 173.2.5.3 Dịch vụ
3.2.5.4 Khách hàng
Trang 183.2.5.5 Thêm khách hàng
3.2.5.6 Danh sách phòng
Trang 193.2.5.7 Tạo phòng
3.2.5.8 Danh sách đồ dùng
Trang 203.2.5.9 Loại phòng
3.2.5.10 Thêm loại phòng
Trang 213.2.5.11 Loại dịch vụ
3.2.5.12 Tài khoản
Trang 223.2.5.13 Thêm mới tài khoản
Trang 233.3 Các áp dụng chính của framework/lib đã tìm hiểu vào trong ứng dụng
3.3.1 Qt QML
Qt QML là một module cung cấp framework cho việc phát triển các ứng dụng và các thư viện với ngôn ngữ QML Nó định nghĩa và cung cấp một API cho phép các nhà phát triển ứng dụng mở rộng ngôn ngữ QML với các custom type và tích hợp QML với Javascript và C++ Module Qt QML này cung cấp cả QML API và C++ API
3.3.2 Mô hình Model/View
Qt chứa một bộ các lớp hiển thị các phần tử bằng cách sử dụng kiến trúc
Model/View để quản lý mối quan hệ giữa dữ liệu và cách hiển thị đến người dùng
Đối tượng Model giao tiếp với nguồn của dữ liệu và cung cấp một giao diện cho các thành phần khác của kiến trúc Bản chất của việc giao tiếp này phụ thuộc vào nguồn dữ liệu và các mà model được hiện thực
Trang 24Đối tượng View chứa Model Indexes từ đối tượng Model Đó là những tham chiếu đến các phần tử của dữ liệu Bằng cách cung cấp Model Indexes đến model, View có thể nhận các phần tử của dữ liệu từ nguồn dữ liệu
Trang 25CHƯƠNG 4: THỬ NGHIỆM, ĐÁNH GIÁ
4.1 Môi trường thử nghiệm
• Môi trường phát triển ứng dụng:
o Hệ điều hành: Microsoft Windows 10
o Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server
o Framework: Qt Framework
o Công cụ xây dựng ứng dụng: Qt Creator 4.13.1
• Môi trường triển khai ứng dụng:
o Hệ điều hành: Microsoft Windows 10, Ubuntu 20.04
o Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server
4.2 Kết quả thử nghiệm
Trang 26CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
5.1 Kết quả đạt được
Đã thiết kế được giao diện người dùng, cơ sở dữ liệu, với các chức năng căn bản: lập phiếu thuê phòng, quản lý lịch phòng, quản lý dịch vụ, phòng, khách hàng, loại phòng, loại dịch vụ,…
Bảng đánh giá chi tiết phần mềm:
thành (%)
Ghi chú
1 Đặt phòng 90% Hiện thị giao diện đặt phòng và thu
thập đủ thông tin của khách hàng
2 Lịch phòng 80% Hiển thị đươc căn bản thông tin tình
trạng các phòng trong khách sạn
3 Tra cứu phòng 100% Với mỗi mục tương ứng sẽ có chức
năng tìm kiếm dữ liệu theo quy ước cho trước và hoạt động tốt
4 Quản lý dịch vụ 90% Tổng hợp đầy đủ tất cả các dịch vụ
được khách hàng sử dụng trong khách sạn; có bộ lọc và công cụ tìm kiếm để tìm ra thông tin cần thiết
5 Quản lý khách hàng 95% Lưu trữ đầy đủ thông tin khách hàng
và sử dụng bộ lọc để tìm kiếm theo tên khách hàng
6 Thêm khách hàng 100% Thêm mới một khách hàng với đầy
đủ các thông tin cần thiết
Trang 277 Quản lý danh sách
phòng
90% Hiện thị khá đầy đủ các thông tin
của các phòng trong khách sạn từ tên, loại phòng, mô tả,
8 Quản lý danh sách
đồ dùng
70% Thông tin đồ dùng còn sơ xài, cần
bổ sung thêm giá trị đền bù khi khách làm hỏng đồ dùng
9 Quản lý loại phòng 80% Giao diện quản lý loại phòng còn
thiếu một số thông về những đặc điểm của phòng
10 Quản lý tài khoản 100% Hoàn thành đầy đủ các chức năng
đăng nhập, phân quyền truy cập cho các chức vụ từ nhân viên, quản lý cho đến giám đốc
• Phát triển tính năng booking cho khách hàng và mở rộng quy mô thành hệ thống
• Phát triển CSDL nhằm cung ứng toàn bộ cho một hệ thống khách sạn