Tải bản đầy đủ (.pdf) (27 trang)

ĐỒ án xây DỰNG PHẦN mềm QUẢN lý KHÁCH sạn BẰNG QT FRAMEWORK

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.54 MB, 27 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜ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: Hồ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


NHẬ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)


CHƯƠ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 tồ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.
Tồ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 th 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 th 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.

1.2. Các hạn chế và vấn đề tồn tại
Thứ nhất, nhiều khó khăn trong việc tiếp cận với công nghệ mới khi giải quyết các
vấn đề nghiệp vụ.
Thứ hai, cần tích hợp thêm các phần mềm tiện ích mới khi giải quyết các nghiệp vụ
phức tạp.
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 độ chun 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.


Tì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ệ, …


CHƯƠ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 ngồi C++ như
Python, Javascript, C# và Rust thông qua Language binding.
2.2.2. Các module cơ bản.
Module
Qt Core
Qt GUI
Qt QML
Qt Network
Qt SQL

Mô tả
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…
Module giao diện trung tâm, phụ thuộc vào OpenGL
Module cho ngôn ngữ QML và Javascript
Hỗ trợ các chức năng liên quan đến mạng như: TCP, UDP,
HTTP, SSL, …
Chứa các lớp cho việc tích hợp CSDL sử dụng SQL.



2.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.
• Ngồi ra cịn các cơng cụ hỗ trợ khác như: Qt Assistant, Qt Linguist, MOC…


CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG
3.1. Tổng quan khảo sát các ứng dụng liên quan
3.1.1 KWHotel
Phần mềm quản lý khách sạn KWHotel, được phát triển bởi KalWare cho khách
sạn vừa và nhỏ, bao gồm các chức năng: Lịch phòng, Dịch vụ, Ăn uống, Báo cáo,
Quản lý phòng, …
Đá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ý.

3.2. Các sơ đồ
3.2.1. Sơ đồ usecase
Danh sách các Actor:
• Nhân viên
• Quản lý
• Giám đốc


3.2.1.1. Đăng nhập
Use case
Tác nhân
Mô tả

Điều kiện tiên
quyết

Đăng nhập
Nhân Viên, Quản lý, Giám Đốc
Người dùng đăng nhập vào hệ thống

Luồng sự kiện
Luồng thay thế

-

Tác nhân
Nhập tài khoản và mật
khẩu.
Nhấn nút đăng nhập.
Nhập sai tài khoản mật
khẩu.

Hệ thống
-

Chuyển hướng vào màn
hình chính

-

Báo sai tài khoản mật
khẩu.


3.2.1.2. Đặt phịng
Use case
Tác nhân
Mơ tả
Điều kiện tiên
quyết

Luồng sự kiện

Đặt phòng
Nhân Viên, Quản lý, Giám Đốc
Đặt phòng theo yêu cầu khách hàng
Đã đăng nhập

-

Tác nhân
Chọn phòng
Chọn ngày checkin
checkout
Thêm dịch vụ

-

Hệ thống
Hiển thị giá phòng
Cập nhật tổng tiền


-


Nhấn Lưu
-

-

Luồng thay thế

Phòng đã được người
khác đặt

-

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
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
Use case
Tác nhân
Mô tả
Điều kiện tiên
quyết

Thêm khách hàng
Nhân Viên, Quản lý, Giám Đốc
Tạo thông tin khách hàng mới

Đã đăng nhập

Luồng sự kiện
-

Luồng thay thế

Tác nhân
Nhập thông tin khách
hàng
Nhấn Lưu
Nhập thiếu thông tin
bắt buộc

Hệ thống

-

Lưu thông tin khách
hàng vào cơ sở dữ liệu
Từ chối lưu và đưa ra
thơng báo.

3.2.1.4. Tạo phịng
Use case
Tác nhân
Mơ tả
Điều kiện tiên
quyết


Tạo phòng
Quản lý, Giám Đốc
Thêm một phòng mới vào danh sách phòng
Đã đăng nhập

-

Luồng sự kiện

-

Luồng thay thế

Tác nhân
Nhập tên phòng (số
phòng)
Chọn loại phòng
Chọn các đồ dùng trong
phòng
Nhấn Lưu
Nhập thiếu thơng tin
bắt buộc

Hệ thống

-

Lưu thơng tin phịng
vào CSDL
Từ chối lưu và đưa ra

thông báo.

3.2.1.5. Thêm tài khoản
Use case
Tác nhân
Mô tả

Thêm tài khoản
Giám Đốc
Tạo thông tin nhân viên và tài khoản đăng nhập


Điều kiện tiên
quyết

Đã đăng nhập

Luồng sự kiện

-

Luồng thay thế

-

Tác nhân
Nhập thông tin nhân
viên
Thêm ảnh đại diện
Nhập username và

password
Nhấn Lưu
Nhập thiếu thơng tin
bắt buộc
Nhập trùng username
có sẵn trong hệ thống.

Hệ thống

-

Lưu thông tin khách
hàng vào cơ sở dữ liệu

-

Từ chối lưu và đưa ra
thông báo.
Từ chối lưu và đưa ra
thông báo.

-


3.2.2. Database design


3.2.3. Sơ đồ lớp



3.2.4. Sơ đồ các yêu cầu nghiệp vụ
3.2.4.1. Lập danh mục phòng


3.2.4.2. Lập phiếu thuê phòng


3.2.4.3. Chỉnh sửa


3.2.5. Giao diện
3.2.5.1. Lịch phòng

3.2.5.2. Đặt phòng


3.2.5.3. Dịch vụ

3.2.5.4. Khách hàng


3.2.5.5. Thêm khách hàng

3.2.5.6. Danh sách phòng


3.2.5.7. Tạo phòng

3.2.5.8. Danh sách đồ dùng



3.2.5.9. Loại phòng

3.2.5.10. Thêm loại phòng


3.2.5.11. Loại dịch vụ

3.2.5.12. Tài khoản


3.2.5.13. Thêm mới tài khoản


3.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.



Đố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.


CHƯƠ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


×