Ngày nay, các khách sạn resort đã ứng dụng công nghệ vào quản lý giúp tiết kiệm chi phí và tối ưu quy trình nhờ số hóa. Trên thị trường có quá nhiều phần mềm quản lý dành cho khách sạn, resort. Nào là phần mềm online, offline với các mức chi phí chênh lệch đáng kể khiến không ít chủ khách sạn, resort phải đau đầu để chọn lựa. Phần mềm quản lý khách sạn (Hotel Management System) là phần mềm ứng dụng dành cho khách sạn, khu nghỉ dưỡng và các loại hình kinh doanh lưu trú khác. Phần mềm này sẽ hỗ trợ chủ đơn vị kinh doanh trong các công việc check in, check out, quản lý đặt phòng, tình trạng phòng và các dịch vụ khác liên quan. Không chỉ vậy, phần mềm quản lý khách sạn còn hỗ trợ các công việc khác cho người quản lý như quản lý thu-chi, báo cáo doanh thu hằng ngày, quản lý khách hàng, thống kê dự báo. Trong bài báo cáo này, em sẽ giới thiệu về đề tài : ”Nghiên cứu và xây dựng phần mềm quản lý khách sạn” của em, bao gồm các tính năng hỗ trợ việc vận hành khách sạn, thiết kế và triển khai sản phẩm, và các kết quả kiểm thử sản phẩm. Em cũng sẽ đề xuất những cải tiến và phát triển sản phẩm trong tương lai để giúp cho sản phẩm của tôi phù hợp với nhu cầu của khách hàng và xu hướng phát triển trong thời đại hiện nay.
Trang 1TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG TP.HCMKHOA: HỆ THỐNG THÔNG TIN VÀ VIẾN THÁM
BÁO CÁO ĐỒ ÁN CÔNG NGHỆ PHẦN MỀM CHUYÊNNGÀNH: CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI: XÂY DỰNG PHẦN MỀM QUẢN LÝ KHÁCH SẠN
Giảng viên hướng dẫn: ThS Phạm Trọng HuynhSinh viên thực hiện: Nguyễn Văn Trung
Mã số sinh viên: 0850080108Lớp: 08_ĐH_CNPM
Khóa: 2019-2023
TP Hồ Chí Minh, tháng 5 năm 2023
Trang 2TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG TP.HCMKHOA: HỆ THỐNG THÔNG TIN VÀ VIẾN THÁM
BÁO CÁO ĐỒ ÁN CÔNG NGHỆ PHẦN MỀM CHUYÊNNGÀNH: CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI: XÂY DỰNG PHẦN MỀM QUẢN LÝ KHÁCH SẠN
Giảng viên hướng dẫn: ThS Phạm Trọng HuynhSinh viên thực hiện: Nguyễn Văn Trung
Mã số sinh viên: 0850080108Lớp: 08_ĐH_CNPM
Khóa: 2019-2023
Trang 4Ngày nay, các khách sạn resort đã ứng dụng công nghệ vào quản lý giúp tiết kiệm chi phí và tối ưu quy trình nhờ số hóa Trên thị trường có quá nhiều phần mềm quản lý dành cho khách sạn, resort Nào là phần mềm online, offline với các mức chi phí chênh lệch đáng kể khiến không ít chủ khách sạn, resort phải đau đầu để chọn lựa Phần mềm quản lý khách sạn (Hotel Management System) là phần mềm ứng dụng dành cho khách sạn, khu nghỉ dưỡng và các loại hình kinh doanh lưu trú khác Phần mềm này sẽ hỗ trợ chủ đơn vị kinh doanh trong các công việc check in, check out, quản lý đặt phòng, tình trạng phòng và các dịch vụ khác liên quan Không chỉ vậy, phần mềm quản lý khách sạn còn hỗ trợ các công việc khác cho người quản lý như quản lý thu-chi, báo cáo doanh thu hằng ngày, quản lý khách hàng, thống kê dự báo.
Trong bài báo cáo này, em sẽ giới thiệu về đề tài : ”Nghiên cứu và xây dựng phần mềm quản lý khách sạn” của em, bao gồm các tính năng hỗ trợ việc vận hành khách sạn, thiết kế và triển khai sản phẩm, và các kết quả kiểm thử sản phẩm Em cũng sẽ đề xuất những cải tiến và phát triển sản phẩm trong tương lai để giúp cho sản phẩm của tôi phù hợp với nhu cầu của khách hàng và xu hướng phát triển trong thời đại hiện nay.
Trang 5Để có thể hoàn thành đồ án Công nghệ phần mềm thành công, em vô cùng biết ơn và xin gửi lời cảm ơn đến ban lãnh đạo nhà trường: trường Đại học Tài nguyên và Môi trường Tp HCM cùng quý thầy cô khoa Hệ thống thông tin và Viễn Thám đã tạo điều kiện thuận lợi nhất để em có thể hoàn thành mẫu đồ án Công nghệ phần mềm.
Đặc biệt em xin gửi lời tri ân đến thầy Phạm Trọng Huynh là giảng viên hướng dẫn đã truyền đạt trực tiếp cho em những điều cần thiết và quan trọng trong quá trình thực hiện đồ án Công nghệ phần mềm Trong quá trình thực hiện đồ án chắc hẳn em sẽ có nhiều vấn đề còn thiếu sót, em rất mong nhận được những sự cảm thông và góp ý để có thể hoàn thiện bản thân hơn.
Một lần nữa em xin chân thành cảm ơn!
Trang 6(của giảng viên hướng dẫn tại khoa)
Trang 7(của giảng viên phản biện)
Trang 81.1 Yêu cầu bài toán 1
1.4 Phương pháp xây dựng phát triển phần mềm 5
1.5 Kết quả đạt được mong muốn: 8
Chuong 2: Cơ sở lý thuyết 9
2.1 Ngôn ngữ thiết kế UML 9
2.2 Ngôn ngữ lập trình C# 10
2.3 Net Framework 11
2.4 Windown Form 12
Chương 3: Cài đặt thực nghiệm 13
3.1 Xác định và mô hình hóa yêu cầu 13
3.1.1 Mô tả tổng thể 15
3.2.2 Chức năng hệ thống: 16
3.1.3 Đặc tả yêu cầu hệ thống 21
3.2 Thiết kế cơ sở dữ liệu 72
3.2.1 Yêu cầu chức năng 72
Trang 93.4.3 Mô hình dữ liệu chi tiết 74
3.2.4 Danh sách các bảng dữ liệu trong sơ đồ 74
Trang 10Hình 6: Mô hình luồng sự kiện đặt phòng 22
Hình 7: Biểu đồ tuần tự chức năng đặt phòng 23
Hình 8: Biểu đồ tuần tự chức năng quản lý tầng 24
Hình 9: Biểu đồ xử lý luồng sự kiện quản lý tầng 25
Hình 10: Biểu đồ tuần tự quản lý phòng 29
Hình 11: Biểu đồ xử lý luồng sự kiện quản lý phòng 29
Hình 12: Biểu đồ xử lý luồng quản lý đặt phòng 33
Hình 13: Biểu đồ tuần tự quản lý sản phẩm 37
Hình 14: Biểu đồ xử lý luồng quản lý sản phẩm 37
Hình 15: Biểu đồ xử lý luồng quản lý thiết bị 41
Hình 16: Biểu đồ xử lý luồng quản lý thiết bị trong phòng 44
Hình 17: Biểu đồ xử lý luồng quản lý khách hàng 48
Hình 18: Biểu đồ tuần tự quản lý nhân viên 52
Hình 19: Biểu đồ xử lý luồng quản lý nhân viên 52
Hình 20: Biểu đồ xử lý luồng quản lý dịch vụ 56
Hình 21: Biểu đồ xử lý luồng quản lý tài khoản 60
Hình 22: Biểu đồ xử lý luồng đăng nhập/ đăng xuất 63
Hình 23: Biểu đồ thống kê 66
Hình 24: Biểu đồ tuẩn tự quản lý phòng 68
Hình 25: Biểu đồ xử lý luồng quản lý phòng 69
Trang 11Hình 42: Màn hình danh mục thiết bị trong phòng 107
Hình 43: Mô hình Client - Server 109
Trang 12Bảng 1: Mục đích tài liệu 13
Bảng 2: Thuật ngữ 13
Bảng 3: Chức năng hệ thống 16
Bảng 4: Thông tin chức năng đặt phòng 21
Bảng 5: Thông tin chức năng quản lý danh mục tầng 23
Bảng 6: Dòng sự kiện chức năng quản lý danh mục tầng 25
Bảng 7: Dòng sự kiện phụ chức năng quản lý danh mục tầng 27
Bảng 8: Thông tin chức năng Quản lý loại phòng 28
Bảng 9: Dòng sự kiện chức năn quản lý loại phòng 30
Bảng 10: Dòng sự kiện phụ quản lý loại phòng 32
Bảng 11: Thông tin chức năng quản lý đặt phòng 32
Bảng 12: Dòng sự kiện chức năng quản lý đặt phòng 34
Bảng 13: Dòng sự kiện phụ quản lý đặt phòng 35
Bảng 14: Thông tin chức năng quản lý sản phẩm 36
Bảng 15: Dòng sự kiện chức năng quản lý sản phẩm 38
Bảng 16: Dòng sự kiện phụ quản lý sản phẩm 40
Bảng 17: Thông tin chức năng quản lý thiết bị 40
Bảng 18: Dòng sự kiện chính quản lý thiết bị 41
Bảng 19: Dòng sự kiện phụ quản lý thiết bị 43
Bảng 20: Thông tin chức năng quản lý thiết bị trong phòng 44
Bảng 21: Dòng sự kiện chính quản lý thiết bị trong phòng 45
Bảng 22: Dòng sự kiện phụ quản lý thiết bị trong phòng 47
Bảng 23: Thông tin chức năng quản lý khách hàng 47
Bảng 24: Dòng sự kiện chính quản lý khách hàng 49
Bảng 25: Dòng sự kiện phụ quản lý khách hàng 51
Trang 13Bảng 28: Dòng sự kiện phụ quản lý nhân viên 55
Bảng 29: Thông tin chức năng quản lý dịch vụ 55
Bảng 30: Dòng sự kiện chính quản lý dịch vụ 57
Bảng 31: Dòng sự kiện phụ quản lý dịch vụ 59
Bảng 32: Thông tin chức năng quản lý tài khoản 59
Bảng 33: Dòng sự kiện chính quản lý tài khoản 60
Bảng 34: Dòng sự kiện phụ quản lý tài khoản 62
Bảng 35: Thông tin chức năng Đăng nhập/ đăng xuất 62
Bảng 36: Dòng sự kiện chính đăng nhập/ đăng xuất 63
Bảng 37: Thông tin chức năng chuyển phòng 64
Trang 14Bảng 69: Mô tả quản lý danh mục sản phẩm 94
Bảng 70: Mô tả quản lý danh mục loại phòng 95
Bảng 71: Mô tả quản lý danh mục khách hàng 97
Bảng 72: Mô tả quản lý danh mục nhân viên 98
Bảng 73: Mô tả quản lý danh mục phòng 100
Bảng 74: Mô tả quản lý danh mục dịch vụ 102
Bảng 75: Mô tả quản lý danh mục tài khoản 104
Bảng 76: Mô tả quản lý danh mục thiết bị 106
Bảng 77: Mô tả quản lý danh mục thiết bị trong phòng 108
Bảng 78: Thành phần hệ thống 110
Bảng 79: Kết quả thực hiện 110
Trang 15Chương 1: Giới thiệu
1.1 Yêu cầu bài toán
Không phải lúc nào bạn cũng trực tiếp có mặt tại khách sạn của mình để kiểm soát doanh thu hôm nay tại khách sạn ra sao, hoạt động hiệu quả không? Trong khi đó các hoạt động tiếp nhận khách hàng và sử dụng dịch vụ hay kiếm tiền mỗi ngày đều do nhân viên thực hiện Nếu chỉ trực tiếp nhận thông tin và ghi vào sổ sách thì rất khó để có thể kiểm soát doanh thu một cách chính xác bởi khó để biết rằng nhân viên thu ngân có tính toán sai hay không Để quản lý nhân viên có hiệu quả thật sự rất khó khăn Theo phản ánh của một số chủ kinh doanh thì rất nhiều trường hợp nhân viên thường lợi dụng lỗ hổng trong quản lý để gian lận tiền của khách sạn Vì thế quản lý nhân viên luôn là vấn đề đau đầu không riêng bất cứ chủ kinh doanh khách sạn nào Để quản lý nhân viên được sát sao hơn bạn cần dành nhiều thời gian tại khách sạn để theo dõi cũng như chỉ đạo công việc của họ Giám sát nhân viên thông qua camera cũng là một giải pháp rất hiệu quả nhằm giảm thiểu tối đa khả năng gian lận Bên cạnh đó, trong quá trình kinh doanh khách sạn của mình bạn nên giao nhiệm vụ rõ ràng và kiểm tra và đánh giá hiệu suất công việc của mỗi nhân viên ra sao Ngoài ra việc báo cáo doanh thu được hiển thị theo các tiêu chí thời gian/lợi nhuận/dịch vụ/số phòng thuê/nhân viên bạn không chỉ có thể nắm rõ hoạt động của khách sạn mà còn dễ dàng lập kế hoạch đặt phòng trong tương lai.
Nếu bạn là chủ của một chuỗi khách sạn trên thị trường thì việc sử dụng phần mềm để quản lý chúng là điều cực kỳ cần thiết Việc này cho phép bạn truy cập thông tin nhanh, thuận tiện và dễ dàng hơn, nắm bắt được tình hình của từng chi nhánh, chi nhánh nào đang đông khách, chi nhánh nào tạo được lợi nhuận cao,… Hơn thế nữa, một tiện ích rất lớn khi sử dụng giải pháp quản lý khách sạn bằng phần mềm chính là việc bạn có thể truy cập mọi thông tin bất cứ khi nào, từ bất cứ nơi đâu, mà không cần phải có mặt ở khách sạn để quản lý Kết hợp với sử dụng phần mềm, mọi lịch sử thao tác của nhân viên đều được ghi nhận nhờ đó kiểm soát được việc kinh doanh khách sạn có hiệu quả hay có
Trang 16thiếu sự trung thực không? Điều này giúp bạn quản lý và hỗ trợ cho nhân viên được chuyên nghiệp hơn Hơn nữa, tiện ích mà phần mềm mang lại còn giúp chủ khách sạn kiểm soát được những sai lệch, từ đó tìm ra nguyên nhân và cách khắc phục Quản lý khách sạn bằng phần mềm giúp cho việc quản lý phòng và đặt phòng của khách sạn Chỉ với vài thao tác đơn giản trên máy tính, hóa đơn sẽ được in ra ngay tại máy pos Những hóa đơn được in ra sẽ bao gồm đầy đủ những thông tin về tên phòng, dịch vụ, số khách đặt phòng, giá thanh toán,… Điều này sẽ giúp cho nhân viên của bạn làm việc nhanh chóng và tránh khỏi nhầm lẫn Khách hàng cũng sẽ cảm thấy ưng ý về thái độ và linh hoạt trong quá trình sắp xếp phòng Từ đó làm cho doanh số cũng như lượng khách hàng tăng lên đáng kể.
Nghiên cứu yêu cầu nghiệp vụ về hoạt động vận hành của các khách sạn, em đã nghiên
cứu và tìm hiểu để xây dựng đề tài Xây dựng phần mềm quản lý Khách sạn Phần mềm
này là thứ cơ bản và cần thiết nhất cho việc vận hành và phát triển cho Khách sạn Phần mềm sẽ cơ bản giải quyết đươc các vấn đề nêu trên và giúp chủ doanh nghiệp quản lý chặt chẽ công việc kinh doanh của mình
1.2 Mục tiêu
Mục đích của đề tài này sẽ là nghiên cứu xây dựng nên một hệ thống hỗ trợ cho người dùng các hoạt động cơ bản trong việc quản lý và vận hành khách sạn một cách chi tiết và hiệu quả với các chức năng như
- Đăng nhập / đăng xuất
Trang 17- Quản lý phòng- Quản lý đặt phòng- Quản lý sản phẩm- Quản lý thiết bị
- Quản lý thiết bị trong phòng- Quản lý nhân viên
- Quản lý khách hàng- Quản lý dịch vụ- Quản lý tài khoản
- Thống kê - xuất file Excel, Word, CSV, PDF 1.3 Đối tượng nghiên cứu
1.3.1 Kế hoạch khảo sát
− Khảo sát hiện trạng cơ sở hạ tầng công nghệ thông tin tại cơ sở cần xây dựng phần mềm.
− Khảo sát yêu cầu phần mềm.
− Lấy ý kiến đóng góp xây dựng theo yêu cầu của khách hàng
1.3.2 Phương pháp khảo sát
− Khảo sát bằng thực nghiệm tại cơ sở muốn xây dựng phần mềm
− Phỏng vấn khách hàng về phương thức hoạt động của khách sạn, các yêu cầu và quy định.
− Theo dõi quá trình làm việc vận hành của khách sạn trong khoảng thời gian nhất định, các yêu cầu nghiệp vụ về quản lý cũng như quá trình vận hành hằng ngày − Dựa vào ý kiến của khách hàng để sửa đổi và bổ sung.
1.3.3 Kết quả khảo sát - Hiện trạng về tổ chức:
Trang 18+ Vị trí: Khách sạn Caravelle Sài gòn tại 19-23 Lam Sơn Square, phường Bến Nghé,
Quận 1, Thành phố Hồ Chí Minh
+Nhân sự: Quản lý khách sạn, Nhân viên khách sạn+Khách hàng: Khách hàng sử dụng phòng tại khách sạn
- Hiện trạng tin học:
+ Phần mềm: Visual Studio, SQL Server, Draw.IO + Phần cứng: Máy in, máy chủ
+ Trình độ tin học:
Quản lý khách sạn: MOS Specialist Nhân viên khách sạn: MOS Expert + Hiện trạng nghiệp vụ - Danh sách các chức năng: − Thay đổi mật khẩu − Đăng nhập – đăng xuất
Trang 19− Quản lý tài khoản
− Thống kê – Xuất Excel, Word, CSV, PDF− Cơ cấu tổ chức:
+ Quản lý khách sạn: Điều hành và theo dõi không thường trực hoạt động khách sạn bằng phương thức quan sát trực tiếp Ra quyết định thay đổi quy định khách sạn.
+ Nhân viên khách sạn: Vận hành khách sạn dưới sự quản lý của Quản lý khách sạn Nhận các nhiệm vụ, công việc của Quản lý giao cho
1.4 Phương pháp xây dựng phát triển phần mềmMô hình thác nước
Sử dụng mô hình thác nước (WaterFall)
Hình 1: Mô hình Waterfall
Trang 20Mô hình thác nước là một mô hình có tính trình tự trong phát triển phần mềm Nó
chú trọng vào sự phát triển logic và lần lượt trong suốt vòng đời phát triển phần mềm (software development life cycle-SDLC), trong đó những pha (phase) ở phía trước phải được hoàn thành trước khi những pha tiếp theo có thể bắt đầu Mỗi pha trong mô hình thác nước có vai trò khác nhau trong SDLC
Mô hình thác nước được giới thiệu trong một bài báo của Winston Royce vào
năm 1970 Mặc dù sự phổ biến của mô hình này đã giảm nhiều trong vài năm trở lại đây khi các phương pháp linh hoạt (Agile) xuất hiện, tuy nhiên mô hình thác nước vẫn đang được ưa chuộng bởi nhiều kỹ sư CNTT vì tính logic và tuần tự của mô hình này
5 pha của mô hình thác nước
Waterfall Model – Mô hình thác nước bao gồm 5 pha chính, lần lượt là: Xây dựng phần mềm quản lý quán khách sạn
− Phân tích yêu cầu: Các kỹ sư IT sẽ phải thu thập tất cả các yêu cầu cần thiết, sau
đó sẽ hội ý để hiểu đúng những yêu cầu Cuối cùng, các kỹ sư sẽ cần phải tìm hiểu xem những yêu cầu này có phù hợp để kiểm thử ở các bước tiếp theo hay không
− Thiết kế hệ thống: Dựa vào những yêu cầu, các kỹ sư IT sẽ thiết kế hệ thống, ghi
lại những yêu cầu về phần cứng/phần mềm và sau đó họ sẽ ghi chú lại phần thiết kế
− Triển khai: Dựa vào ghi chú thiết kế, các kỹ sư IT sẽ tạo ra chương trình hoặc
codes, sau đó tích hợp codes lại cho pha kế tiếp Cuối cùng, họ kiểm thử đơn vị phần code này
− Kiểm thử hệ thống: Ở phần này, các kỹ sư IT sẽ kiểm thử toàn bộ hệ thống để
xem các đơn vị có vận hành trơn tru không, sau đó họ sẽ hoàn thiện báo cáo kiểm thử
− Vận hành và duy trì: Ở phần cuối, sau khi chắc chắn đã sửa hết lỗi, các kỹ sư IT
sẽ tiến hành chạy thử phần mềm và đưa vào sử dụng, sau đó fix các lỗi phát sinh
Trang 21trong tương lai (nếu có) Quá trình này bao gồm cả việc phát triển phần mềm để có thể tích hợp thêm nhiều tính năng trong tương lai
Ưu điểm và nhược điểm Ưu điểm
Mô hình thác nước có một vài ưu điểm như sau: o Dễ dàng triển khai và quy trình dễ hiểu
o Với những dự án nhỏ, mô hình thác nước hoạt động hiệu quả và cho kết quả rất tốt o Vì quá trình phát triển rất chặt chẽ, do đó chất lượng mỗi phần và cả dự án sẽ rất
Tuy nhiên, mô hình thác nước cũng còn 1 vài nhược điểm sau:
Do pha đầu tiên là phân tích yêu cầu, nên sẽ không thể thay đổi yêu cầu ở các pha tiếp theo trong mô hình Xây dựng phần mềm quản lý khách sạn
o Mô hình thác nước không phù hợp để triển khai với những dự án dài và phức tạp, có nhiều sự thay đổi trong yêu cầu
o Khó di chuyển qua lại giữa các pha Ví dụ, nếu phần mềm chuẩn bị bước vào pha kiểm thử và có sự thay đổi ở yêu cầu thì sẽ rất khó để quay lại và thay đổi Việc quay lại sẽ ngốn một khoảng thời gian và công sức rất lớn của team phát triển o Rủi ro cao hơn Do quá trình kiểm thử trong mô hình thác nước xuất hiện gần cuối,
các chiến thuật để giảm thiểu rủi ro không được triển khai từ sớm
o Trong khi ở những mô hình linh hoạt, quá trình kiểm thử diễn ra song song với quá trình phát triển do đó việc giảm thiểu rủi ro hiệu quả hơn rất nhiều
Khi nào nên sử dụng?
Trang 22Mô hình thác nước nên được sử dụng khi:
− Dự án ngắn và đơn giản: Như đã trình bày ở trên, các dự án dài và phức tạp
thường đòi hỏi các bước phải được thực hiện đồng thời cùng với kiểm thử để tiết kiệm thời gian, trong khi ở mô hình thác nước thì các bước và thứ tự đã cố định, do đó sẽ tốn nhiều thời gian để sửa chữa và hoàn thành hơn
− Những yêu cầu cố định, không thay đổi thường xuyên và dễ hiểu − Tài nguyên phong phú và các thành viên có chuyên môn kỹ thuật tốt
1.5 Kết quả đạt được mong muốn:
Xây dựng demo nên một hệ thống quản lý khách sạn để hỗ trợ quá trình vận hành và quản lý khách sạn với các chức năng cơ bản cần thiết của nghiệp vụ quản lý khách sạn.
Trang 23Chuong 2: Cơ sở lý thuyết
2.1 Ngôn ngữ thiết kế UML
Ngôn ngữ mô hình hóa thống nhất (tiếng Anh: Unified Modeling Language, viết tắt thành UML) là một ngôn ngữ mô hình gồm các ký hiệu đồ họa mà các phương pháp hướng đối tượng sử dụng để thiết kế các hệ thống thông tin một cách nhanh chóng.
Mục đích của ngôn ngữ UML là:
− Mô hình hoá các hệ thống bằng cách sử dụng các khái niệm hướng đối tượng − Thiết lập sự liên hệ từ nhận thức của con người đến các sự kiện cần mô hình hoá − Giải quyết vấn đề về mức độ thừa kế trong các hệ thống phức tạp với nhiều ràng
buộc khác nhau
− Tạo một ngôn ngữ mô hình hoá có thể sử dụng được bởi người và máy UML hỗ trợ phân rã hệ hướng đối tượng dựa trên cấu trúc tĩnh và hành vi động của hệ thống.
UML sử dụng một hệ thống ký hiệu thống nhất biểu diễn các Phần tử mô hình (model elements) Tập hợp các phần tử mô hình tạo thành các sơ đồ UML (UML diagrams) Có các loại sơ đồ UML chủ yếu sau:
Sơ đồ lớp (Class Diagram)
Sơ đồ đối tượng (Object Diagram)
Sơ đồ tình huống sử dụng (Use Cases Diagram) Sơ đồ trình tự (Sequence Diagram)
Sơ đồ cộng tác (Collaboration Diagram hay là Composite Structure Diagram) Sơ đồ trạng thái (State Machine Diagram)
Sơ đồ thành phần (Component Diagram) Sơ đồ hoạt động (Activity Diagram) Sơ đồ triển khai (Deployment Diagram)
Sơ đồ tương tác (Interaction Overview Diagram - UML 2.0)
Trang 242.2 Ngôn ngữ lập trình C#
C# là một ngôn ngữ lập trình đơn giản, hiện đại, mục đích tổng quát, hướng đối tượng được phát triển bởi Microsoft và được phê chuẩn bởi European Computer Manufacturers Association (ECMA) và International Standards Organization (ISO).
C# được phát triển bởi Anders Hejlsberg và team của ông trong khi phát triển Net Framework.
C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm Executable Code và Runtime Environment, cho phép sử dụng các ngôn ngữ high-level đa dạng trên các nền tảng và cấu trúc máy tính khác nhau.
Hình 2: Ngôn ngữ lập trình C#
Đặc trưng của ngôn ngữ lập trình C# là gì?
C# là ngôn ngữ đơn giản
C# loại bỏ một vài sự phức tạp và rối rắm của những ngôn ngữ như Java và c++, bao gồm việc loại bỏ những macro, những template, đa kế thừa, và lớp cơ sở ảo (virtual base class).
Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++ Nếu chúng ta thân thiện với C và C++ hoặc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diện mạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngôn ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn.
Trang 25 C# là ngôn ngữ hiện đại
Điều gì làm cho một ngôn ngữ hiện đại? Những đặc tính như là xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật mã nguồn là những đặc tính được mong đợi trong một ngôn ngữ hiện đại C# chứa tất cả những đặc tính trên Nếu là người mới học lập trình có thể chúng ta sẽ cảm thấy những đặc tính trên phức tạp và khó hiểu Tuy nhiên, cũng đừng lo lắng chúng ta sẽ dần dần được tìm hiểu những đặc tính qua các nội dung khoá học này.
C# là một ngôn ngữ lập trình thuần hướng đối tượng
Lập trình hướng đối tượng (OOP: Object-oriented programming) là một phương pháp lập trình có 4 tính chất Đó là tính trừu tượng (abstraction), tính đóng gói (encapsulation), tính đa hình (polymorphism) và tính kế thừa (inheritance) C# hỗ trợ cho chúng ta tất cả những đặc tính trên.
C# là một ngôn ngữ ít từ khóa
C# là ngôn ngữ sử dụng giới hạn những từ khóa Phần lớn các từ khóa được sử dụng để mô tả thông tin Chúng ta có thể nghĩ rằng một ngôn ngữ có nhiều từ khóa thì sẽ mạnh hơn Điều này không phải sự thật, ít nhất là trong trường hợp ngôn ngữ C#, chúng ta có thể tìm thấy rằng ngôn ngữ này có thể được sử dụng để làm bất cứ nhiệm vụ nào.
2.3 Net Framework
.NET Framework là một thư việc class có thể được sử dụng với một ngôn ngữ NET để thực thi việc thao tác chuỗi cho đến phát sinh ra các web động (ASP.NET), phân tích XML và reflection Framework được tổ chức thành các tập hợp namespace để nhóm các class có cùng chức năng với nhau.
.NET framework là một nền tảng phát triển phần mềm do Microsoft phát triển Framework này tạo ra các ứng dụng chạy trên nền tảng Windows Phiên bản đầu tiên của NET framework được phát hành vào năm 2002 Phiên bản đó được gọi là Net framework 1.0 .NET framework đã đi một chặng đường dài kể từ đó, và phiên bản hiện tại là 4.7.1 .NET framework có thể được sử dụng để tạo cả những ứng dụng dựa trên biểu
Trang 26mẫu (Form-based) và dựa trên Web (Web-based) Các web service cũng có thể được phát triển bằng cách sử dụng NET framework Framework cũng hỗ trợ các ngôn ngữ lập trình khác nhau như Visual Basic và C# Vì vậy, các nhà phát triển có thể lựa chọn ngôn ngữ để phát triển ứng dụng cần thiết.
2.4 Windown Form
Winform là thuật ngữ mô tả một ứng dụng được viết dùng NET FrameWorrk và có giao diện người dùng Windows Forms Mỗi màn hình windows cung cấp một giao diện giúp người dùng giao tiếp với ứng dụng Giao diện này được gọi là giao diện đồ họa (GUI) của ứng dụng Là các ứng dụng windows chạy trên máy tính – mã lệnh thực thi ngay trên máy tính: Microsoft, Word, Excel, Access, Calculator, yahoo, Mail… là các ứng dụng Windows Forms.
Hình 3: Winform
Trang 27Chương 3: Cài đặt thực nghiệm
3.1Xác định và mô hình hóa yêu cầuMục đích tài liệu
Bảng 1: Mục đích tài liệu
Người sử dụngMục đích
Nhóm phát triển hệ thống Để hiểu các chức năng và đặc tính của hệ thống được phát triển (hiểu được những yêu cầu người dùng nào mà hệ thống đáp ứng) Và sử dụng trong quá trình thiết kế hệ thống
Nhóm kiểm thử Phục vụ xây dựng tài liệu test và test chức năng hệ thống (system test)
Nhóm khách hàng Xem trước các chức năng và đặc tính của hệ thống Đưa ra yêu cầu chỉnh sửa để
Trang 28 Quản lý tài khoản
Thống kê - Xuất Word, Excel, PDF, CSV
Phần mềm tập trung xây dựng các chức năng để phù hợp cho việc hoạt động quản lý và vận hành cơ bản của một khách sạn Tuy nhiên, việc thanh toán online, Quản lý nhập xuất nguyên vật liệu, quản lý kho, ứng dụng mobile, sẽ không được đưa ra trong
Trang 29phạm vi của đề tài Các chức năng và luồng nghiệp vụ cơ bản sẽ được thực hiện trong phạm vi của đề tài
Mô tả tài liệu
Tài liệu bao gồm 4 phần chính
Phần 1: Giới thiệu chung: giới thiệu tổng quan về tài liệu
Phần 2: Mô tả tổng thể: mô tả tổng quan hệ thống cần xây dựng
Phần 3: Đặc tả yêu cầu hệ thống: đặc tả các yêu cầu chức năng và phi chức năng của hệ
Trang 303.2.2 Chức năng hệ thống:
Bảng 3: Chức năng hệ thống
STT Mức độ ưu tiên Mô tả Module 1: Quản lý nhân viên FR-001 1
Chức năng này sử dụng cho việc quản lý các thông tin cá nhân của nhân viên để thuận tiện trong việc quản lý phòng Phòng đó nhân viên nào đang công tác phục vụ Thông tin lưu trữ bao gồm họ tên, ngày sinh, giới tính, chứng minh thư.
Tác nhân: Quản lý Module 2: Quản lý phòng
FR-002 1 Lưu tất cả thông tin của các phòng Cho biết phòng đó thuộc tầng nào, phòng vip hay là phòng thường đã có khách hay là phòng trống Sử dụng những dịch vụ và sản phẩm gì trong quá trình sử dụng phòng
Tác nhân: Quản lý Module 3: Quản lý dịch vụ
FR-003 1 Lưu trữ lại thông tin các dịch vụ khác nhau của khách sạn Bao gồm dịch vụ ăn uống và dịch vụ cho thuê thiết bị để phục vụ cho nhu cầu cần thiết Hiển thị thông tin chi tiết như: giá cả, số lượng, tên dịch vụ, …
Trang 31Tác nhân: Quản lý Module 5: Đăng nhập / Đăng xuất
FR-005 1 Nhân viên hay quản lý cần đăng nhập vào hệ thống để sử dụng Tùy vào mỗi loại tài khoản sẽ được cấp quyền truy cập và chức năng tương ứng.
Tác nhân: Nhân viên, Quản lý Module 6: Quản lý đặt phòng
FR-006 1 Chức năng này sử dụng cho việc quản lý và lưu trữ tất cả các phiếu đặt phòng bao gồm phòng theo đoàn và phòng lẻ Quản lý thông tin về khách hàng, nhân viên, loại phòng, dịch vụ, giá cả, số lượng, ngày đặt, ngày ra của khách hàng đảm bảo việc tính toán về doanh thu và sắp xếp logic phòng một cách hiệu quả
Tác nhân: Quản lý Module 7: Quản lý khách hàng
FR-007 2
Chức năng này sử dụng cho việc quản lý các thông tin cá nhân của khách hàng đến đặt phòng theo đoàn hoặc phòng lẻ Thông tin lưu trữ bao gồm họ tên, ngày sinh, giới tính, chứng minh thư.
Tác nhân: Quản lý Module 8: Quản lý thiết bị
FR-008 3
Chức năng này sử dụng cho việc quản lý các thông tin các thiết bị của khách sạn bao gồm thông tin thiết bị và đơn giá của từng thiết bị
Tác nhân: Quản lý
Trang 32Module 9: Quản lý thiết bị trong phòng
FR-009 2 Chức năng này sử dụng cho việc quản lý các thông tin các thiết bị đang được sử dụng trong phòng của khách sạn Dễ dàng trong việc quản lý đầu ra và đầu vào và số lượng hàng hóa của khách sạn và phục vụ cho việc quản lý kho
Tác nhân: Quản lý Module 10: Quản lý loại phòng
FR-010 2 Chức năng này sử dụng cho việc quản lý các thông tin các loại phòng hiện có của khách sạn Dễ dàng và thuận tiên trong việc giúp khách hàng có thể lựa chọn loại phòng phù hợp với khả năng của khách hàng.
Tác nhân: Quản lý Module 11: Quản lý sản phẩm
FR-011 2 Lưu trữ lại thông tin các sản phẩm khác nhau của khách sạn
Các sản phẩm đa dạng bao gồm các món thức uống, thức ăn nhanh, các loại thực phẩm đa dạng để phục vụ đa số khách hàng từ người già cho tới trẻ em.
Tác nhân: Quản lý Module 12: Lập phiếu đặt phòng
FR-12 1 Chức năng này sử dụng cho việc đặt phòng theo đoàn và đặt phòng lẻ Dùng để lưu trữ thông tin về các đặt phòng của
Trang 33khách hàng Thông tin này bao gồm thông tin khách hàng, loại phòng, ngày đến và ngày đi, giá cả và các yêu cầu khác của khách hàng.
Tác nhân: Quản lý, nhân viên Module 13: Đặt phòng theo đoàn
FR-013 1 Chức năng này sử dụng cho việc đặt phòng theo đoàn Đặt một lúc nhiều phòng và sử dụng nhiều dịch vụ và sản phẩm khác nhau cho mỗi phòng được đặt
Tác nhân: Quản lý, nhân viên Module 14: Đặt phòng lẻ
FR-014 1 Chức năng này sử dụng cho việc đặt phòng khách lẻ Đặt một phòng duy nhất sử dụng nhiều dịch vụ và sản phẩm khác nhau cho mỗi phòng được đặt
Tác nhân: Quản lý, nhân viên Module 15: Chuyển phòng
FR-015 1 Chức năng này sử dụng cho việc chuyển phòng Khi chuyển phòng sẽ lưu thông tin của phòng hiện tại sau đó chuyển qua một phòng trống theo yêu cầu của khách hàng
Tác nhân: Quản lý, nhân viên Module 16: Quản lý dịch vụ
FR-016 3 Lưu trữ lại thông tin các dịch vụ khác nhau của khách sạn Các dịch vụ đa dạng bao gồm các dịch vụ thu đổi ngoại tệ, xe đưa đón sân bay, bơi bốn mùa, để phục vụ đa số khách
Trang 34hàng từ người già cho tới trẻ em Tác nhân: Quản lý
Module 17: Thống kê doanh thu bán hàng
FR-017 2 Thống kê doanh thu theo ngày, tháng tùy vào nhu cầu của người sử dụng Xuất file Excel theo dữ liệu lưới hiển thị Tác nhân: Quản lý
Trang 35Mô hình người dùng hệ thống
Hình 5: Mô hình người dùng hệ thống
3.1.3 Đặc tả yêu cầu hệ thống Đặt phòng
1 Thông tin chức năng
Bảng 4: Thông tin chức năng đặt phòng
Đặt phòng
Mô tả Nhân viên, quản lý ghi nhận thông tin danh sách các phòng, loại phòng, sản phẩm dịch vụ mà khách hàng yêu cầu
Tác nhân Quản lý khách sạn, Nhân viên
Điều kiện trước Quản lý và nhân viên khách sạn phải đăng nhập thành công vào hệ thống
Điều kiện sau Thông tin của phòng trống không được
Trang 36trùng với phòng đã được đặt trước đó
Ngoại lệ
Các yêu cầu đặc biệt Các trường dữ liệu đưa vào phải đáp ứng cơ bản các thông tin bắt buộc
2 Biểu đồ luồng xử lý chức năng (DFD):
a) Biểu đồ xử lý luồng sự kiện
Hình 6: Mô hình luồng sự kiện đặt phòng
Trang 37b) Biểu đồ tuần tự chức năng đặt phòng
Hình 7: Biểu đồ tuần tự chức năng đặt phòng
Quản lý danh mục tầng
1.Thông tin chung chức năng:
Bảng 5: Thông tin chức năng quản lý danh mục tầng
Quản lý danh mục tầng
Mô tả Lưu tất cả thông tin của các tầng (cho phép thao tác thêm tầng, sửa thông tin tầng, xóa tầng, lưu thông tin, tìm kiếm và xuất các loại file thống kê danh sách
Trang 38tầng hiện tại của khách sạn).
Các yêu cầu đặc biệt Tầng đang có phòng trong trạng thái hoạt động không được phép thao tác loại bỏ
2 Biều đồ luồng xử lý chức năng
a) Biểu đồ tuần tự chức năng
Hình 8: Biểu đồ tuần tự chức năng quản lý tầng
Trang 39b) Biểu đồ luồng xử lý chức năng (DFD)
Hình 9: Biểu đồ xử lý luồng sự kiện quản lý tầng
D1: Thông tin về Tầng (ID Tầng, Mã tầng, Tên tầng) D2: Nhập thông tin các trường của tầng
D3: Lưu thông tin tầng mới D4: Load lại danh mục tầng D5: Thông báo thành công D6: D5
3 Mô tả dòng sự kiện chính (Basic Flow)
Bảng 6: Dòng sự kiện chức năng quản lý danh mục tầng
Hành động của tác nhânPhản ứng của hệ thốngThêm mới tầng vào danh mục tầng
1 Quản lý mở danh mục tầng đã được lưu
trữ trong danh mục 2 Hệ thống sẽ hiển thị giao diện để quản lý thực hiện
3 Hệ thống yêu cầu quản lý cung cấp các
Trang 402.Quản lý cung cấp thông tin mà hệ
Xóa tầng trong danh mục tầng
1 Quản lý chọn tầng muốn ngừng hoạt
động trong danh mục 2 Hệ thống sẽ kiểm tra tầng đó có phòng đang hoạt động hay không 3 Nếu tầng đó có phòng thí quá trình
xóa sẽ không được thực thi
4 Nếu tầng không có phòng hoạt động thì quá trình xóa được thực thi, thông báo thành công và cập nhật
2 Hệ thống Load thông tin tầng đã được lưu trước đó
6 Hệ thống lưu lại thông tin đã được quản lý cung cấp – cập nhật lại danh sách tầng trong danh mục và thông báo thành công
Tìm kiếm thông tin món tầng trong danh mục