trƯỜng ĐẠi hỌc khoa hỌc tỰ nhiÊn khoa cÔng nghỆ...
TRANSCRIPT
KHOA CNTT –
ĐH KHTN
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN MẠNG MÁY TÍNH & VIỄN THÔNG
TÔN ANH TUẤN – TRẦN HOÀNG KHANH
XÂY DỰNG WEBSITE ĐẶT PHÒNG CHO KHÁCH SẠN
LUẬN VĂN CỬ NHÂN TIN HỌC
TP. HCM, 2004
KHOA CNTT –
ĐH KHTN
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN MẠNG MÁY TÍNH & VIỄN THÔNG
TÔN ANH TUẤN - 0012184 TRẦN HOÀNG KHANH - 0012571
XXÂÂYY DDỰỰNNGG WWEEBBSSIITTEE ĐĐẶẶTT PPHHÒÒNNGG CCHHOO KKHHÁÁCCHH SSẠẠNN
LUẬN VĂN CỬ NHÂN TIN HỌC
GIÁO VIÊN HƯỚNG DẪN ThS. MAI VĂN CƯỜNG
NIÊN KHÓA 2000 – 2004
KHOA CNTT
N
NHẬN XÉT CỦA GIÁ
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
..........................................................
– ĐH K
HT
O VIÊN HƯỚNG DẪN
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
KHOA CNTT –
ĐH KHTN
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
......................................................................................................................
KHOA CNTT –
ĐH KHTN
LỜI CÁM ƠN
Chúng em sẽ không thể hoàn thành luận văn này nếu không có sự hướng
dẫn và chỉ bảo tận tình của Thầy Mai Văn Cường. Chúng em xin chân thành cảm
ơn sự chỉ bảo của Thầy.
Chúng em xin trân trọng cám ơn quý Thầy cô trong khoa Công nghệ thông
tin trường Đại học Khoa học Tự nhiên Tp. Hồ Chí Minh đã tận tình giảng dạy,
truyền đạt những kiến thức quý báo và tạo điều kiện cho chúng em thực hiện luận
văn này.
Xin chân thành cảm ơn sự giúp đỡ, động viên và chỉ bảo rất tận tình của tất
cả các bạn cũng như các anh chị đi trước trong quá trình thực hiện luận văn.
Mặc dù đã cố gắng nổ lực hết mình, song luận văn chắc chắn còn nhiều
thiếu sót. Chúng em rất mong nhận được sự thông cảm và chỉ bảo tận tình của
quý Thầy cô và các bạn.
Tp. HCM, 7/2004
Nhóm sinh viên thực hiện
Tôn Anh Tuấn – Trần Hoàng Khanh
KHOA CNTT –
ĐH KHTN
LỜI NÓI ĐẦU
Sự phát triển của công nghệ thông tin cũng như World Wide Web trong
những năm vừa qua ở Việt Nam và trên thế giới đem đến một khả năng tiềm tàng
có thể được ứng dụng để xây dựng nên một hệ thống thương mại điện tử (đang
còn đi những bước đầu tiên ở Việt Nam). Từ những dự án lớn mang tầm cỡ quốc
gia cho đến những dự án nhỏ cho từng công ty, xí nghiệp đều nhằm các mục đích
như: quảng bá thông tin về các sản phẩm và dịch vụ, tạo sự thuận lợi cho khách
hàng trong việc tiếp cận và mua sản phẩm… với mục đích cuối cùng là lợi nhuận.
Trong bối cảnh hội nhập kinh tế thế giới, nhu cầu hợp tác kinh tế, trao đổi và
giao lưu văn hóa ngày càng nhiều thì việc đi lại, ăn ở của khách nước ngoài khi
đến Việt Nam, cũng như khách trong nước cũng tăng lên. Một thực tế cho thấy là
có những khó khăn, trở ngại đối với người nước ngoài (bao gồm cả Việt kiều ở
các nước) khi có ý định đến Việt Nam là vấn đề chỗ ở, họ rất băn khoăn trong
việc tìm kiếm và đặt chỗ trong một khách sạn mà có thể đáp ứng được nhu cầu
của mình, trong khi đó thì hệ thống các khách sạn ở nướ ta ngày càng lớn, hiện
đại và tiện nghi.
Với mong muốn có thể tạo được một hệ thống website cho phép người dùng
tìm kiếm thông tin về các khách sạn ở Việt Nam, đồng thời hỗ trợ việc đặt phòng
trước qua mạng, chúng em đã tập trung tìm hiểu và thực hiện đề tài “XÂY
DỰNG WEBSITE ĐẶT PHÒNG CHO KHÁCH SẠN - BOOKING
GATEWAY”. Mặc dù đây không hẳn là một nội dung mới mẻ (vì đã có rất
nhiều trang web hỗ trợ các dịch vụ này như: http://www.hoteltravel.com,
http://www.saigon-hotels.net...) nhưng nó là một đề tài có thể đem đến nhiều lợi
ích thiết thực: củng cố và phát huy những kiến thức đã học vào ứng dụng thực tế,
khả năng làm việc độc lập với một đề án thực sự, và nếu thành công nó có thể
góp mặt vào hệ thống các website hỗ trợ dịch vụ khách sạn (và có thể mở rộng
KHOA CNTT –
ĐH KHTN
sang các lĩnh vực khác như đặt vé máy bay, thuê xe đi lại...), đồng thời cho khách
hàng thêm một sự lựa chọn tin cậy.
Luận văn bao gồm các nội dung như sau:
Chương 1: Mở đầu. Giới thiệu chung về đề tài, ý nghĩa và các mục tiêu của
đề tài; các đề án và hệ thống tương tự trong và ngoài nước.
Chương 2: Tổng quan về hệ thống Booking Gateway. Giới thiệu tổng
quan về hệ thống sẽ xây dựng, các nhiệm vụ mà hệ thống sẽ thực hiện, và các
giải pháp liên quan.
Chương 3: Phân tích. Bao gồm các tài liệu liên quan đến quá trình phân
tích hệ thống như: phân tích các yêu cầu chức năng và phi chức năng, các mô
hình use case và đặc tả use case, các mô hình lớp và lưu đồ hoạt động.
Chương 4: Thiết kế. Bao gồm các tài liệu liên quan đến quá trình thiết kế
hệ thống như: thiết kế dữ liệu, thiết kế kiến trúc, thiết kế chức năng, thiết kế giao
diện.
Chương 5: Cài đặt và triển khai. Trình bày các vấn đề liên quan đến cài
đặt và triển khai hệ thống như: lựa chọn môi trường cài đặt, các công nghệ mới
được sử dụng, các bước cài đặt chính và việc triển khai hệ thống trên môi trường
Windows.
Chương 6: Kết luận. Trình bày tóm tắt các kết quả đạt được và đề xuất các hướng mở rộng, phát triển trong tương lai.
KHOA CNTT –
ĐH KHTN
MỤC LỤC
Chương 1. TỔNG QUAN VỀ HỆ THỐNG BOOKING GATEWAY.................................. 1 1.1 Phát biểu bài toán:........................................................................................................ 1 1.2 Các đối tượng phục vụ của hệ thống: .......................................................................... 1
1.2.1 Các khách sạn: ..................................................................................................... 1 1.2.2 Khách viếng, những người có nhu cầu tìm khách sạn: ........................................ 1 1.2.3 Người quản trị website:........................................................................................ 2
1.3 Các yêu cầu chính mà hệ thống phải thực hiện: .......................................................... 2 1.4 Các công cụ hỗ trợ lập trình:........................................................................................ 3
Chương 2. PHÂN TÍCH ........................................................................................................ 4 2.1 Phân tích yêu cầu hệ thống: ......................................................................................... 4
2.1.1 Các yêu cầu chức năng: ....................................................................................... 4 2.1.2 Các yêu cầu phi chức năng: ................................................................................. 5
2.2 Bảng chú giải: .............................................................................................................. 6 2.2.1 Giới thiệu: ............................................................................................................ 6 2.2.2 Các định nghĩa: .................................................................................................... 6
2.3 Đặc tả bổ sung:........................................................................................................... 10 2.3.1 Mục tiêu: ............................................................................................................ 10 2.3.2 Phạm vi: ............................................................................................................. 10 2.3.3 Tài liệu tham khảo: ............................................................................................ 10 2.3.4 Chức năng: ......................................................................................................... 10 2.3.5 Tính khả dụng: ................................................................................................... 10 2.3.6 Tính ổn định:...................................................................................................... 10 2.3.7 Hiệu suất: ........................................................................................................... 11 2.3.8 Sự hỗ trợ: ........................................................................................................... 11 2.3.9 Tính bảo mật: ..................................................................................................... 11 2.3.10 Các ràng buộc thiết kế: .................................................................................. 11
2.4 Các sơ đồ Use Case:................................................................................................... 12 2.4.1 Mô hình các trường hợp sử dụng của Admin: ................................................... 12 2.4.2 Mô hình các trường hợp sử dụng của Airplane: ................................................ 13 2.4.3 Mô hình các trường hợp sử dụng của Hotel: ..................................................... 14 2.4.4 Mô hình các trường hợp sử dụng của Visitor: ................................................... 15
2.5 Đặc tả Use Case: ........................................................................................................ 15 2.5.1 Đăng nhập vào hệ thống: ................................................................................... 15 2.5.2 Quản lý các Khách sạn:...................................................................................... 17 2.5.3 Quản lý các Hãng hàng không:.......................................................................... 19 2.5.4 Quản lý Khách viếng: ........................................................................................ 21 2.5.5 Quản lý người dùng khác:.................................................................................. 22 2.5.6 Quản lý các thông tin của Khách sạn:................................................................ 24 2.5.7 Quản lý các thông tin của Hãng hàng không: .................................................... 26 2.5.8 Đăng ký nhà cung cấp dịch vụ mới: .................................................................. 28 2.5.9 Đăng ký thành viên mới:.................................................................................... 30 2.5.10 Đăng ký phòng khách sạn:............................................................................. 31 2.5.11 Tìm kiếm Khách sạn, Hãng hàng không: ...................................................... 33
KHOA CNTT –
ĐH KHTN
2.5.12 Nhập mô tả cho Hãng hàng không:................................................................ 34 2.5.13 Nhập mô tả Khách sạn: .................................................................................. 36 2.5.14 Cập nhật mô tả Hãng hàng không:................................................................. 37 2.5.15 Cập nhật mô tả Khách sạn: ............................................................................ 39 2.5.16 Trao đổi thông tin: ......................................................................................... 40
2.6 Sơ đồ lớp:................................................................................................................... 43 2.6.1 Admin Login Class: ........................................................................................... 43 2.6.2 Airplane Description Class: ............................................................................... 44 2.6.3 Hotel Description Class: .................................................................................... 45 2.6.4 Exchange Info Class: ......................................................................................... 45 2.6.5 Manage Airplane Class:..................................................................................... 46 2.6.6 Manage Hotel Class: .......................................................................................... 47 2.6.7 Manage Airplane Info Class: ............................................................................. 48 2.6.8 Manage Hotel Info Class: .................................................................................. 49 2.6.9 Manage User Class: ........................................................................................... 50 2.6.10 Manage Visitor Class:.................................................................................... 50 2.6.11 Register Member Class:................................................................................. 51 2.6.12 Register Service Class: .................................................................................. 51 2.6.13 Register Supplier Class:................................................................................. 52
2.7 Các lưu đồ hoạt động: ................................................................................................ 53 2.7.1 Đăng nhập hệ thống: .......................................................................................... 53 2.7.2 Khách viếng đăng ký làm thành viên:................................................................ 55 2.7.3 Khách sạn đăng ký làm nhà cung cấp dịch vụ khách sạn: ................................. 57 2.7.4 Khách viếng đặt phòng ở khách sạn: ................................................................. 59 2.7.5 Nhập thông tin mô tả cho Hãng hàng không: .................................................... 61 2.7.6 Nhập thông tin mô tả cho Khách sạn:................................................................ 63 2.7.7 Soạn và gửi các thông điệp: ............................................................................... 65 2.7.8 Xem các thông điệp: .......................................................................................... 67 2.7.9 Xem các thông tin chung của Hãng hàng không: .............................................. 69 2.7.10 Cập nhật các thông tin chung của Khách sạn: ............................................... 71 2.7.11 Cập nhật các thông tin mô tả của Khách sạn: ................................................ 73 2.7.12 Tìm kiếm Khách sạn: ..................................................................................... 75 2.7.13 Thêm người sử dụng mới (với vai trò Admin): ............................................. 77 2.7.14 Xem danh sách người sử dụng (với vai trò Admin): ..................................... 79 2.7.15 Xem thông tin người sử dụng (với vai trò Admin):....................................... 81 2.7.16 Xóa thông tin người sử dụng (với vai trò Admin): ........................................ 83 2.7.17 Xem danh sách các Khách sạn:...................................................................... 85 2.7.18 Xem thông tin chi tiết một Khách sạn: .......................................................... 87 2.7.19 Xóa một Khách sạn:....................................................................................... 89 2.7.20 Xem danh sách khách viếng: ......................................................................... 91 2.7.21 Xem thông tin một khách viếng:.................................................................... 93 2.7.22 Xóa một khách viếng: .................................................................................... 95
Chương 3. THIẾT KẾ.......................................................................................................... 97 3.1 Thiết kế dữ liệu: ......................................................................................................... 97
3.1.1 Mô hình dữ liệu logic ở dạng sơ đồ: .................................................................. 98 3.1.2 Danh sách các bảng dữ liệu: .............................................................................. 99
KHOA CNTT –
ĐH KHTN
3.1.3 Danh sách các thành phần của lược đồ dữ liệu:............................................... 104 3.1.4 Danh sách các thuộc tính của từng thành phần:............................................... 106 3.1.5 Danh sách các ràng buộc toàn vẹn:.................................................................. 119
3.2 Thiết kế kiến trúc: .................................................................................................... 124 3.3 Thiết kế chức năng:.................................................................................................. 127
3.3.1 Bảng mô tả các hàm và thủ tục: ....................................................................... 127 3.3.2 Bảng mô tả module: ......................................................................................... 129
3.4 Thiết kế giao diện: ................................................................................................... 130 Chương 4. CÀI ĐẶT VÀ TRIỂN KHAI........................................................................... 139
4.1 Cài đặt: ..................................................................................................................... 139 4.1.1 Lựa chọn môi trường cài đặt:........................................................................... 139 4.1.2 Lựa chọn mô hình cài đặt: ............................................................................... 139 4.1.3 Xây dựng các lớp xử lý chính:......................................................................... 141 4.1.4 Cài đặt các hàm xử lý chủ yếu: ........................................................................ 147 4.1.5 Tiếp cận với công nghệ lập trình Web mới – ASP.NET: ................................ 153
4.2 Triển khai và thử nghiệm chương trình: .................................................................. 166 4.2.1 Triển khai và thử nghiệm ứng dụng:................................................................ 166
Chương 5. TỔNG KẾT...................................................................................................... 173 5.1 Kết luận:................................................................................................................... 173 5.2 Hướng phát triển: ..................................................................................................... 175
5.2.1 Xây dựng bổ sung thêm các nhà cung cấp dịch vu khác: ................................ 175 5.2.2 Liên kết với các hệ thống ngân hàng: .............................................................. 176 5.2.3 Liên kết với các đối tác là nhà cung cấp dịch vụ để thực hiện quá trình đăng ký và thanh toán tự động: .................................................................................................... 176 5.2.4 Đưa vào triển khai ứng dụng trên thực tế: ....................................................... 176
KHOA CNTT –
ĐH KHTN
DANH SÁCH HÌNH
Hình 2-1: Mô hình use-case của Admin .................................................................................... 12 Hình 2-2: Mô hình use-case của Airplane ................................................................................. 13 Hình 2-3: Mô hình use-case của Hotel ...................................................................................... 14 Hình 2-4: Mô hình use-case của Visitor .................................................................................... 15 Hình 2-5: Class Diagram: Đăng nhập hệ thống......................................................................... 43 Hình 2-6: Class Diagram: Mô tả hãng hàng không ................................................................... 44 Hình 2-7: Class Diagram: Mô tả khách sạn ............................................................................... 45 Hình 2-8: Class Diagram: Trao đổi thông tin ............................................................................ 45 Hình 2-9: Class Diagram: Quản lý Hãng hàng không ............................................................... 46 Hình 2-10: Class Diagram: Quản lý khách sạn.......................................................................... 47 Hình 2-11: Class Diagram: Quản lý thông tin Hãng hàng không.............................................. 48 Hình 2-12: Class Diagram: Quản lý thông tin khách sạn .......................................................... 49 Hình 2-13: Class Diagram: Quản trị người dùng....................................................................... 50 Hình 2-14: Class Diagram: Quản trị khách viếng...................................................................... 50 Hình 2-15: Class Diagram: Đăng ký thành viên........................................................................ 51 Hình 2-16: Class Diagram: Đăng ký dịch vụ............................................................................. 51 Hình 2-17: Class Diagram: Đăng ký nhà cung cấp dịch vụ....................................................... 52 Hình 2-18: Sequence Diagram: Đăng nhập hệ thống ................................................................ 53 Hình 2-19: Collaboration Diagram: Đăng nhập hệ thống.......................................................... 54 Hình 2-20: Sequence Diagram: Đăng ký thành viên ................................................................. 55 Hình 2-21: Collaboration Diagram: Đăng ký thành viên........................................................... 56 Hình 2-22: Sequence Diagram: Đăng ký nhà cung cấp dịch vụ ................................................ 57 Hình 2-23: Collaboration Diagram: Đăng ký nhà cung cấp dịch vụ ......................................... 58 Hình 2-24: Sequence Diagram: Đặt phòng khách sạn ............................................................... 59 Hình 2-25: Collaboration Diagram: Đặt phòng khách sạn ........................................................ 60 Hình 2-26: Sequence Diagram: Nhập thông tin mô tả Hãng hàng không ................................. 61 Hình 2-27: Collaboration Diagram: Nhập thông tin mô tả cho ................................................. 62 Hình 2-28: Sequence Diagram: Nhập thông tin mô tả cho khách sạn ....................................... 63 Hình 2-29: Collaboration Diagram: Nhập thông tin mô tả cho khách sạn ................................ 64 Hình 2-30: Sequence Diagram: Gửi thông điệp ........................................................................ 65 Hình 2-31: Collaboration Diagram: Gửi thông điệp.................................................................. 66 Hình 2-32: Sequence Diagram: Xem thông điệp....................................................................... 67 Hình 2-33: Collaboration Diagram: Xem thông điệp ................................................................ 68 Hình 2-34: Sequence Diagram: Xem thông tin nhà cung cấp dịch vụ....................................... 69 Hình 2-35: Collaboration Diagram: Xem thông tin nhà cung cấp dịch vụ ................................ 70 Hình 2-36: Sequence Diagram: Cập nhật thông tin nhà cung cấp dịch vụ ................................ 71 Hình 2-37: Collaboration Diagram: Cập nhật thông tin ............................................................ 72 Hình 2-38: Sequence Diagram: Cậpnhật thông tin mô tả của nhà cung cấp dịch vụ ................ 73 Hình 2-39: Collaboration Diagram: Cập nhật thông tin mô tả của nhà cung cấp dịch vụ......... 74 Hình 2-40: Sequence Diagram: Tìm kiếm khách sạn ................................................................ 75 Hình 2-41: Sequence Diagram: Tìm kiếm khách sạn ................................................................ 76 Hình 2-42: Sequence Diagram: Thêm mới người sử dụng........................................................ 77
KHOA CNTT –
ĐH KHTN
Hình 2-43: Collaboration Diagram: Thêm mới người sử dụng ................................................. 78 Hình 2-44: Sequence Diagram: Xem danh sách người sử dụng................................................ 79 Hình 2-45: Collaboration Diagram: Xem danh sách người sử dụng ......................................... 80 Hình 2-46: Sequence Diagram: Xem thông tin người sử dụng ................................................. 81 Hình 2-47: Collaboration Diagram: Xem thông tin của người sử dụng .................................... 82 Hình 2-48: Sequence Diagram: Xóa người sử dụng.................................................................. 83 Hình 2-49: Collaboration Diagram: Xóa người sử dụng ........................................................... 84 Hình 2-50: Sequence Diagram: Xem danh sách khách sạn ....................................................... 85 Hình 2-51: Collaboration Diagram: Xem danh khách sạn......................................................... 86 Hình 2-52: Sequence Diagram: Xem thông tin chi tiết của khách sạn ...................................... 87 Hình 2-53: Collaboration Diagram: Xem thông tin chi tiết của khách sạn ............................... 88 Hình 2-54: Sequence Diagram: Xóa một khách sạn.................................................................. 89 Hình 2-55: Collaboration Diagram: Xóa một khách sạn ........................................................... 90 Hình 2-56: Sequence Diagram: Xem danh sách khách viếng.................................................... 91 Hình 2-57: Collaboration Diagram: Xem danh sách khách viếng............................................. 92 Hình 2-58: Sequence Diagram: Xem thông tin khách viếng ..................................................... 93 Hình 2-59: Collaboration Diagram: Xem thông tin khách viếng .............................................. 94 Hình 2-60: Sequence Diagram: Xóa một khách viếng .............................................................. 95 Hình 2-61: Collaboration Diagram: Xóa một khách viếng........................................................ 96 Hình 3-1: Sơ đồ mô hình dữ liệu ............................................................................................... 98 Hình 3-2: Cấu trúc cây phân nhóm - Cấp 1 ............................................................................. 124 Hình 3-3: Cấu trúc cây phân nhóm - Cấp 2: Admin ................................................................ 125 Hình 3-4: Cấu trúc cây phân nhóm - Cấp 2: Hãng hàng không............................................... 125 Hình 3-5: Cấu trúc cây phân nhóm - Cấp 2: Khách sạn .......................................................... 125 Hình 3-6: Cấu trúc cây phân nhóm - Cấp 2: Khách viếng....................................................... 126 Hình 3-7: Trang chủ................................................................................................................. 131 Hình 3-8: Đăng ký thành viên.................................................................................................. 132 Hình 3-9: Đăng nhập................................................................................................................ 133 Hình 3-10: Mô tả khách sạn..................................................................................................... 134 Hình 3-11: Mô tả hãng hàng không ......................................................................................... 135 Hình 3-12: Xem danh sách khách viếng .................................................................................. 136 Hình 3-13: Thêm người dùng .................................................................................................. 137 Hình 3-14: Quản lý .................................................................................................................. 138 Hình 4-1: Kiến trúc n-tier ........................................................................................................ 140 Hình 4-2: ASP.NET Architecture ............................................................................................ 159 Hình 4-3: SQL Server Enterprise Manager ............................................................................. 167 Hình 4-4: Tạo cơ sở dữ liệu Booking ...................................................................................... 168 Hình 4-5: Chọn chức năng Restore Database .......................................................................... 169 Hình 4-6: Chuẩn bị Restore cơ sở dữ liệu................................................................................ 170 Hình 4-7: Ghi đè lên tập tin cơ sở dữ liệu................................................................................ 171 Hình 4-8: Danh sách đối tượng cơ sở dữ liệu .......................................................................... 172
KHOA CNTT –
ĐH KHTN
DANH SÁCH BẢNG Bảng 3-1: Danh sách các thành phần của lược đồ dữ liệu ....................................................... 106 Bảng 3-2: Bảng dữ liệu tblHotels ............................................................................................ 107 Bảng 3-3: Bảng dữ liệu tblAirplanes ....................................................................................... 108 Bảng 3-4: Bảng dữ liệu tblVisitors .......................................................................................... 109 Bảng 3-5: Bảng dữ liệu tblAdmin............................................................................................ 110 Bảng 3-6: Bảng dữ liệu tblRoomInfo ...................................................................................... 111 Bảng 3-7: Bảng dữ liệu tblFlightInfo....................................................................................... 111 Bảng 3-8: Bảng dữ liệu tblBookInfo ....................................................................................... 112 Bảng 3-9: Bảng dữ liệu tblBookDetail .................................................................................... 112 Bảng 3-10: Bảng dữ liệu tblBookResult .................................................................................. 113 Bảng 3-11: Bảng dữ liệu tblBookTicket .................................................................................. 113 Bảng 3-12: Bảng dữ liệu tblPassenger..................................................................................... 114 Bảng 3-13: Bảng dữ liệu FlightResutl ..................................................................................... 114 Bảng 3-14: Bảng dữ liệu tblComments ................................................................................... 114 Bảng 3-15: Bảng dữ liệu tblHotelInbox................................................................................... 115 Bảng 3-16: Bảng dữ liệu tblAirplaneInbox ............................................................................. 115 Bảng 3-17: Bảng dữ liệu tblVisitorInbox ................................................................................ 116 Bảng 3-18: Bảng dữ liệu tblAdminInbox ................................................................................ 116 Bảng 3-19: Bảng dữ liệu tblCountries .................................................................................... 116 Bảng 3-20: Bảng dữ liệu tblProvinces ..................................................................................... 117 Bảng 3-21: Bảng dữ liệu tblRegions........................................................................................ 117 Bảng 3-22: Bảng dữ liệu tblContinents ................................................................................... 117 Bảng 3-23: Bảng dữ liệu tblCities ........................................................................................... 117 Bảng 3-24: Bảng dữ liệu tblErrorMsg ..................................................................................... 118 Bảng 3-25: Bảng dữ liệu tblCommonMsg............................................................................... 118 Bảng 3-26: Bảng dữ liệu tblPayments ..................................................................................... 118 Bảng 3-27: Bảng dữ liệu tblCurrencies ................................................................................... 118 Bảng 3-28: Bảng dữ liệu tblQuestions..................................................................................... 119 Bảng 3-29: Bảng tổng hợp nhóm............................................................................................. 127 Bảng 3-30: Bảng mô tả Module............................................................................................... 130 Bảng 4-1: Danh sách các lớp xử lý chính ................................................................................ 146 Bảng 4-2: Danh sách các lớp đối tượng dữ liệu....................................................................... 147
KHOA CNTT –
ĐH KHTN
Chương 1. Tổng quan về hệ thống Booking Gateway
Chương 1. TỔNG QUAN VỀ HỆ THỐNG BOOKING GATEWAY
1.1 Phát biểu bài toán: Khách nước ngoài và Việt kiều ở hải ngoại khi dự định về Việt Nam họ
có mong muốn rằng có thể tìm kiếm một khách sạn đảm bảo cho họ một
chỗ ở thích hợp, tiện nghi với giá cả hợp lý. Nếu có thể họ muốn đăng ký
chỗ ở trước khi đến ở (bằng các hình thức thanh toán trả tước và trả sau).
Ngày nay công cụ nhanh nhất và hiệu quả để có thể thực hiện được điều đó
chính là Internet. Bài toán trên đặt ra là làm sao có thể xây dựng một
website cho phép khách hàng (kể cả trong và ngoài nước) có thể tìm kiếm
thông tin của các khách sạn trong nước với các nội dung cụ thể như: Tên
khách sạn, địa chỉ, chuẩn khách sạn, số phòng, giá từng loại phòng… Ngoài
ra, nếu tìm được khách sạn mong muốn họ có thể đặt phòng trực tiếp qua
mạng (thanh toán bằng các hình thức trả trước và trả sau).
1.2 Các đối tượng phục vụ của hệ thống: 1.2.1 Các khách sạn:
Các khách sạn sẽ đăng ký với website để trở thành một nhà cung cấp
dịch vụ cho thuê phòng và các dịch vụ khác của khách sạn. Họ có nhiệm vụ
cung cấp các thông tin về khách sạn, về loại khách sạn, tổng số phòng, cung
cách phục vụ, giá cả, các dịch vụ bổ sung… Những thông tin này sẽ được
cập nhật vào những thời điểm thích hợp để đảm bảo thông tin chính xác.
1.2.2 Khách viếng, những người có nhu cầu tìm khách sạn: Đối tượng này có thể: đăng ký với website để trở thành thành viên
(thông tin được lưu trữ và họ có thể đăng nhập), tìm kiếm các khách sạn
1
KHOA CNTT –
ĐH KHTN
Chương 1. Tổng quan về hệ thống Booking Gateway
thích hợp, đặt phòng trực tuyến qua mạng. Hệ thống sẽ thực hiện việc thanh
toán cho họ.
1.2.3 Người quản trị website: Nhà quản trị có thể đăng nhập để quản trị website ở bất cứ nơi đâu. Họ
có quyền kiểm soát tất cả các hoạt động của website, cụ thể như: xem các
danh sách đăng ký (nhà cung cấp dịch vụ, thành viên), thêm, xóa, cập nhật
thông tin… và chịu trách nhiệm liên hệ với các khách sạn khi có một yêu
cầu đăng ký phòng (do hiện tại chưa thể thực hiện mọi việc tự động nên khi
có một người tìm phòng khách sạn thì người quản trị sẽ thực hiện các công
việc thủ công như sau: kiểm tra thông tin khách hàng, liên hệ với khách sạn
để xác định xem có phòng đáp ứng yêu cầu của khách hàng hay không, nếu
có thì thực hiện việc đăng ký phòng cho khách hàng, trả lời kết quả đăng ký
cho khách, thực hiện thanh toán). Đồng thời hệ thống sẽ thực hiện việc cập
nhật thông tin vào cơ sở dữ liệu.
1.3 Các yêu cầu chính mà hệ thống phải thực hiện: Từng đối tượng người dùng sẽ có các chức năng được xử lý độc lập.
Người quản trị có thể thực hiện được các chức năng quản lý toàn bộ hệ
thống như: quản lý khách viếng, quản lý khách sạn, quản lý người
dùng, quản lý các thông tin đăng ký…
Khách viếng có thể đăng ký để trở thành thành viên, đăng nhập vào hệ
thống, đặt phòng khách sạn, tìm kiếm khách sạn, hiệu chỉnh thông tin
cá nhân, trao đổi thông tin với phía quản trị (điều này là quan trọng vì
hiện tại yêu cầu của đề tài là khi nhận được thông tin đăng ký của
khách viếng thì phía quản trị website mới liên lạc với phía khách sạn để
2
KHOA CNTT –
ĐH KHTN
Chương 1. Tổng quan về hệ thống Booking Gateway
tiến hành đăng ký, sau khi đăng ký xong mới thông báo kết quả cho
khách viếng là việc đặt phòng có thành công hay không).
Khách sạn có thể đăng ký để trở thành nhà cung cấp dịch vụ cho thuê
phòng, đăng nhập vào hệ thống, nhập các thông tin mô tả cho khách
sạn của mình, hiệu chỉnh các thông tin đăng ký và trao đổi với phía
quản trị.
Hệ thống phải đảm bảo tính bảo mật trong các thông tin đăng ký, đăng
nhập, quản trị,…
1.4 Các công cụ hỗ trợ lập trình: Ngày nay có rất nhiều công cụ hỗ trợ cho việc lập trình các ứng dụng
thương mại điện tử như:
ASP với các ngôn ngữ script là VBScript và JScript.
ASP.NET: Một công nghệ lập trình ứng dụng mạng mới dựa trên nền
.NET framework của Microsoft.
Macromedia Dreamweaver MX.
Microsoft ASP.NET Web Maxtrix.
JBuilder X.
Về cơ sở dữ liệu có: SQL Server 2000, Oracle, MySQL…
v.v…
Việc lựa chọn một môi trường lập trình thích hợp cũng góp phần vào
thành công của việc xây dựng website.
3
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Chương 2. PHÂN TÍCH 2.1 Phân tích yêu cầu hệ thống: 2.1.1 Các yêu cầu chức năng:
2.1.1.1 Yêu cầu chức năng nghiệp vụ:
Cho phép người dùng đăng ký với hệ thống với vai trò khách sạn,
khách viếng, hãng hàng không.
Lưu trữ thông tin của tất cả các đối tượng.
Lưu trữ thông tin đăng ký sử dụng dịch vụ của khách viếng (đăng
ký phòng khách sạn).
Cho phép khách viếng đặt phòng khách sạn qua web.
Cho phép khách viếng đặt vé máy bay qua web.
Cho phép khách viếng tìm kiếm thông tin khách sạn theo các tiêu
chí khác nhau.
Cho phép các nhà cung cấp dịch vụ nhập thông tin mô tả về dịch
vụ của mình và có thể hiệu chỉnh bất cứ lúc nào.
Cho phép các loại người dùng khác nhau hiệu chỉnh thông tin cá
nhân khi cần thiết.
Hỗ trợ cho người quản trị trong việc quản lý hệ thống bao gồm:
quản lý thông tin của tất cả các đối tượng (khách viếng, khách sạn,
hãng hàng không, người dùng quyền quản trị), được quyền thêm
và xóa các đối tượng này; quản lý các thông tin đặt phòng, đặt vé
máy bay và các thông tin liên quan.
Hỗ trợ việc trao đổi thông tin lẫn nhau của các đối tượng.
4
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.1.1.2 Yêu cầu chức năng hệ thống:
Cho phép người dùng đăng nhập vào hệ thống với các vai trò khác
nhau ứng với từng đối tượng.
Đảm bảo tính bảo mật của các thông tin đăng nhập của người
dùng ở xa.
Đảm bảo tính bảo mật của các thông tin đăng ký dịch vụ của
khách viếng (như các mã số của thẻ tín dụng…).
Phân cấp quyền hạn của từng đối tượng người dùng trong việc
truy cập vào các tài nguyên của hệ thống.
2.1.2 Các yêu cầu phi chức năng:
2.1.2.1 Nhằm lợi ích của các đối tượng người dùng:
Tính tiện dụng: Giao diện thân thiện, dễ sử dụng đối với những
người dùng Windows.
Tính hiệu quả: Đảm bảo việc truy xuất nhanh đến các trang và khả
năng kiểm soát lỗi tốt.
Tính tương thích: Hỗ trợ tốt trên các trình duyệt từ IE5.1 trở lên và
các trình duyệt tương thích khác như Netscape, Opera, Mozilla…
Tính tiến hóa.
2.1.2.2 Nhằm lợi ích của việc phát triển dự án:
Thiết kế theo mô hình three-tiers.
Tính module hóa.
Các tham số của hệ thống được thiết kế động, dễ điều chỉnh.
Tính dùng lại của code.
5
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.2 Bảng chú giải: 2.2.1 Giới thiệu:
Bảng chú giải này được dùng để định nghĩa các thuật ngữ đặc thù trong lĩnh
vực của bài toán, giải thích các từ ngữ có thể không quen thuộc đối với
người đọc trong các mô tả use case hoặc các tài liệu khác của đề tài.
Thường thì tài liệu này có thể được dùng như một từ điển dữ liệu không
chính thức, ghi lại các định nghĩa dữ liệu để các mô tả use case và các tài
liệu khác có thể tập trung vào những gì hệ thống phải thực hiện.
2.2.2 Các định nghĩa: Bảng chú giải này bao gồm các định nghĩa cho các thuật ngữ được sử dụng
trong mô hình use case và trong các tài liệu khác của hệ thống Đăng ký
phòng khách sạn qua mạng (Booking Gateway).
2.2.2.1 Admin (Người quản trị hệ thống):
Admin là người quản trị hệ thống website, chịu trách nhiệm quản lý tất cả
các thông tin người dùng thuộc các đối tượng khác nhau. Ngoài ra, nhiệm
vụ quan trọng của phía quản trị trang web là làm cầu nối liên hệ giữa bên
cung cấp dịch vụ (khách sạn, hãng hàng không) và bên sử dụng dịch vụ
(khách viếng).
2.2.2.2 Airplanes (Hãng hàng không):
Airplanes là chỉ các hãng hàng không, phía cung cấp dịch vụ cho phép đặt
vé máy bay trực tuyến. Hãng hàng không phải đăng ký với website để trở
thành nhà cung cấp dịch vụ chính thức của website. Sau khi đăng ký hãng
hàng không phải cung cấp các thông tin mô tả về dịch vụ mà mình cung cấp
cho website. Các thông tin này được sử dụng trong quá trình tìm kiếm.
6
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.2.2.3 Hotels (Khách sạn):
Hotels là chỉ các khách sạn, phía cung cấp dịch vụ cho phép khách viếng có
thể đăng ký phòng trực tuyến qua mạng. Khách sạn phải đăng ký với
website để trở thành nhà cung cấp dịch vụ chính thức của website. Sau khi
đăng ký khách sạn phải cung cấp các thông tin mô tả về dịch vụ mà mình
cung cấp cho website. Các thông tin này được sử dụng trong quá trình tìm
kiếm.
2.2.2.4 Visitors (Khách viếng):
Khách viếng là đối tượng phục vụ chủ yếu của hệ thống. Khách viếng là
những người có nhu cầu sử dụng các dịch vụ như đăng ký phòng khách sạn,
đặt vé máy bay. Mỗi khách viếng sau khi đăng ký sẽ có một tài khoản riêng.
Mỗi khi cần đăng ký một dịch vụ nào đó (đăng ký phòng chẳng hạn) thì họ
chỉ cần đăng nhập vào hệ thống và chọn dịch vụ cần đăng ký.
2.2.2.5 Manage Hotels (Quản lý khách sạn):
Quản lý thông tin các khách sạn là ám chỉ công việc của người quản trị hệ
thống website. Người quản trị chịu trách nhiệm quản lý các thông tin liên
quan đến các khách sạn như: chấp nhận đăng ký của một khách sạn mới làm
nhà cung cấp dịch vụ, liên hệ với khách sạn khi có một khách đăng ký
phòng, xóa bỏ một khách sạn khỏi cơ sở dữ liệu khi cần thiết…
2.2.2.6 Manage Airplanes (Quản lý hãng hàng không):
Quản lý thông tin các hãng hàng không là ám chỉ công việc của người quản
trị hệ thống website. Người quản trị chịu trách nhiệm quản lý các thông tin
liên quan đến các hãng hàng không như: chấp nhận đăng ký của một hãng
hàng không mới làm nhà cung cấp dịch vụ, liên hệ với hãng hàng không khi
7
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
có một khách đặt vé máy bay, xóa bỏ một hãng hàng không khỏi cơ sở dữ
liệu khi cần thiết…
2.2.2.7 Manage Users (Quản lý người dùng):
Việc quản trị một hệ thống website có thể đòi hỏi nhiều người thực hiện, do
đó hệ thống cũng hỗ trợ việc quản lý các người dùng với vai trò này. Một
người quản trị có thể thêm, xóa và xem các thông tin của những người khác
theo quyền hạn và chức năng của mình.
2.2.2.8 Manage Visitors (Quản lý khách viếng):
Quản lý khách viếng là công việc của người quản trị website. Người quản
trị có thể chấp nhận yêu cầu đăng ký làm thành viên (với vai trò Visitor) của
khách viếng, xóa một khách viếng và xem thông tin của một khách viếng.
2.2.2.9 Exchange Info (Trao đổi thông tin):
Trao đổi thông tin là việc người quản trị website có nhu cầu gửi thông báo
đến cho các đối tượng khác và ngược lại.
2.2.2.10 Login (Đăng nhập vào hệ thống):
Hệ thống này phục vụ các đối tượng chủ yếu sau: người quản trị hệ thống
(Admin), các khách sạn (Hotels), khách viếng (Visitors), ngoài ra còn có
các hãng hàng không (Airplanes). Mỗi loại đối tượng trên khi đăng ký với
hệ thống website sẽ được cấp một account. Họ sẽ dùng account này để đăng
nhập vào hệ thống.
2.2.2.11 Register New Supplier (Đăng ký nhà cung cấp dịch vụ mới):
Mỗi khách sạn hay hãng hàng không muốn trở thành một thành viên để
cung cấp dịch vụ cho website phải đăng ký với hệ thống. Đây là một use
case thể hiện quá trình đăng ký này.
8
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.2.2.12 Register Member (Đăng ký thành viên):
Đây là một quá trình mà một khách viếng phải thực hiện khi muốn trở thành
một thành viên của hệ thống với vai trò Visitor. Đây cũng là quá trình mà
khách viếng phải thực hiện trước khi có thể đăng ký sử dụng một dịch vụ
nào đó.
2.2.2.13 Register Service (Đăng ký dịch vụ):
Đây là quá trình mà khách viếng thực hiện khi đăng ký sử dụng một dịch vụ
nào đó (chẳng hạn đăng ký phòng khách sạn).
2.2.2.14 Search (Tìm kiếm):
Tìm kiếm là một cơ chế cho phép khách viếng có thể tìm kiếm thông tin của
các khách sạn hay hãng hàng không theo một hay một số tiêu chí nào đó.
2.2.2.15 Airplane Info (Thông tin hãng hàng không):
Đây là những thông tin chung về hãng hàng không như: tên hãng hàng
không, địa chỉ, điện thoại,…
2.2.2.16 Airplane Description:
Đây là những thông tin mô tả về hãng hàng không như: lịch bay, giá vé, các
tuyến bay…
2.2.2.17 Hotel Info:
Đây là những thông tin chung về khách sạn như: tên khách sạn, địa chỉ, điện
thoại,…
2.2.2.18 Hotel Description:
Đây là những thông tin mô tả về khách sạn như: loại khách sạn, loại phòng,
giá tiền, các dịch vụ bổ sung khác,…
9
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.3 Đặc tả bổ sung: 2.3.1 Mục tiêu:
Mục tiêu của tài liệu này là để định nghĩa các yêu cầu của Hệ thống đăng ký
phòng trực tuyến qua mạng (Booking Gateway). Đặc tả bổ sung này liệt kê
các yêu cầu chưa được thể hiện trong các use case. Đặc tả bổ sung cùng với
các use case trong mô hình use case thể hiện đầy đủ các yêu cầu trong hệ
thống.
2.3.2 Phạm vi: Đặc tả bổ sung áp dụng cho Hệ thống đăng ký phòng trực tuyến qua mạng
(Booking Gateway) được phát triển bởi nhóm thực hiện đề tài này.
Đặc tả này vạch rõ các yêu cầu phi chức năng của hệ thống, như là tính ổn
định, tính khả dụng, và tính hỗ trợ cũng như các yêu cầu chức năng chung
của một số use case.
2.3.3 Tài liệu tham khảo: Không có.
2.3.4 Chức năng: Hỗ trợ nhiều người dùng làm làm việc đồng thời.
Phải thông báo kết quả đăng ký cho khách viếng trong thời gian
nhanh nhất.
2.3.5 Tính khả dụng: Giao diện của website thân thiện, dễ sử dụng.
2.3.6 Tính ổn định: Hệ thống phải hoạt động liên tục 24 giờ một ngày, 7 ngày mỗi tuần,
với thời gian ngưng hoạt động không quá 5 phút.
10
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.3.7 Hiệu suất: Hệ thống phải hỗ trợ hàng ngàn người cùng truy cập đến cơ sở dữ
liệu trung tâm đồng thời bất kỳ lúc nào.
2.3.8 Sự hỗ trợ: Không có.
2.3.9 Tính bảo mật: Vai trò của từng đối tượng phải được thể hiện rõ ràng.
Chỉ có người quản trị mới có quyền quyết định thêm hay xóa các
đối tượng khác.
Các thông tin chung của mỗi đối tượng do đối tượng đó quản lý.
2.3.10 Các ràng buộc thiết kế: Hệ thống phải hỗ trợ tốt trên hầu hết các trình duyệt của Windows
như: Internet Explorer, Netscape, Opera, Mozilla…
11
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.4 Các sơ đồ Use Case: 2.4.1 Mô hình các trường hợp sử dụng của Admin:
Hình 2-1: Mô hình use-case của Admin
12
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.4.2 Mô hình các trường hợp sử dụng của Airplane:
Hình 2-2: Mô hình use-case của Airplane
13
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.4.3 Mô hình các trường hợp sử dụng của Hotel:
Hình 2-3: Mô hình use-case của Hotel
14
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.4.4 Mô hình các trường hợp sử dụng của Visitor:
Hình 2-4: Mô hình use-case của Visitor
2.5 Đặc tả Use Case: 2.5.1 Đăng nhập vào hệ thống:
2.5.1.1 Tên Use Case:
Login
2.5.1.2 Mô tả:
Use case này mô tả cách người dùng đăng nhập vào hệ thống với
các vai trò khác nhau (Người quản trị website, Khách sạn, Hãng
hàng không, Khách viếng).
15
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.5.1.3 Dòng sự kiện:
Dòng sự kiện chính:
Use case này bắt đầu khi một actor muốn đăng nhập vào hệ thống.
Các bước thực hiện như sau:
1. Người dùng chọn chức năng đăng nhập.
2. Hệ thống mở trang đăng nhập.
3. Người dùng nhập thông tin đăng nhập (username, password).
4. Người dùng chọn đăng nhập.
5. Hệ thống kiểm tra thông tin đăng nhập và quyết định có cho
phép người dùng đăng nhập hay không.
Dòng sự kiện khác:
Tên và/hoặc mật khẩu bị sai:
Nếu trong dòng sự kiện chính, actor nhập sai tên hoặc mật khẩu,
hệ thống sẽ hiển thị một thông báo lỗi. Actor có thể chọn để trở
về đầu của dòng sự kiện chính hoặc hủy bỏ việc đăng nhập, lúc
này use case kết thúc.
2.5.1.4 Yêu cầu đặc biệt:
Không có.
2.5.1.5 Điều kiện tiên quyết:
Không có.
2.5.1.6 Post-Condition:
Nếu use case thành công, actor lúc này đăng nhập vào hệ thống.
Nếu không trạng thái hệ thống không đổi.
16
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.5.1.7 Điểm mở rộng:
Không có.
2.5.2 Quản lý các Khách sạn:
2.5.2.1 Tên Use Case:
Manage Hotels
2.5.2.2 Mô tả:
Người quản trị website thường xuyên phải kiểm tra thông tin của
các khách sạn để đảm bảo tính chính xác và thông tin được cập nhật
thường xuyên. Use case này cho phép người quản trị có thể xem
danh sách các khách sạn, xem thông tin mô tả chi tiết của các khách
sạn, và xóa một khách sạn khỏi cơ sở dữ liệu.
2.5.2.3 Dòng sự kiện:
Dòng sự kiện chính:
Use case này bắt đầu khi người quản trị (Admin) website chọn chức
năng ‘Xem danh sách khách sạn’ trên Menu. Ứng với từng khách
sạn trong danh sách có thể chọn các chức năng như: Xem thông tin
mô tả chi tiết khách sạn hay là xóa hẳn khách sạn đó khỏi cơ sở dữ
liệu.
1. Người quản trị đăng nhập vào hệ thống.
2. Nếu đăng nhập thành công, người quản trị chọn chức năng ‘Xem
danh sách khách sạn’ (List Hotels) trên menu.
3. Hệ thống truy xuất cơ sở dữ liệu để trả về danh sách các khách
sạn.
4. Hệ thống mở một trang web và hiển thị danh sách khách sạn trên
trang web đó.
17
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
5. Người quản trị chọn một khách sạn trong danh sách.
6. Người quản trị chọn các chức năng: ‘Xem thông tin chi tiết’ hay
‘Xóa’ một khách sạn.
7. Nếu chọn chức năng ‘Xem thông tin chi tiết’ thì hệ thống sẽ thực
hiện việc truy xuất dữ liệu và mở một trang web để hiển thị các
thông tin mô tả chi tiết cho khách sạn đã chọn.
8. Nếu chọn chức năng ‘Xóa” thì hệ thống sẽ truy xuất vào cơ sở
dữ liệu và xóa các thông tin liên quan đến khách sạn này khỏi cơ
sở dữ liệu hệ thống.
Dòng sự kiện khác:
Quá trình truy xuất dữ liệu thất bại hoặc xóa khách sạn không thành
công: Nếu trong quá trình thực hiện, việc truy xuất dữ liệu thất bại
hoặc thao tác xóa không thành công thì trạng thái của hệ thống trở
lại ban đầu.
2.5.2.4 Yêu cầu đặc biệt:
Không có.
2.5.2.5 Điều kiện tiên quyết:
Người quản trị website phải đăng nhập vào hệ thống để thực hiện
use case này.
2.5.2.6 Post-Condition:
Nếu use case này thành công trong việc xem danh sách các khách
sạn thì một trang web hiển danh sách sẽ được mở. Nếu việc xóa một
khách sạn thành công thì cơ sở dữ liệu khách sạn sẽ được cập nhật.
Ngược lại tất cả các trường hợp trên thì trạng thái của hệ thống vẫn
không đổi.
18
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.5.2.7 Điểm mở rộng:
Không có.
2.5.3 Quản lý các Hãng hàng không:
2.5.3.1 Tên Use Case:
Manage Airplanes
2.5.3.2 Mô tả:
Use case này cho phép người quản trị website có thể xem danh sách
các hãng hàng không, xem thông tin chi tiết về một hãng hàng
không, thậm chí là xóa bỏ một hãng hàng không khỏi cơ sở dữ liệu
của hệ thống.
2.5.3.3 Dòng sự kiện:
Dòng sự kiện chính:
Use case này được bắt đầu sau khi người quản trị đã đăng nhập vào
hệ thống và chọn chức năng ‘Hiển thị danh sách hãng hàng không’
trên menu.
1. Người quản trị đăng nhập vào hệ thống.
2. Người quản trị chọn chức năng ‘Xem danh sách hãng hàng
không’ (List Airplanes) trên menu.
3. Hệ thống truy xuất cơ sở dữ liệu trên server và trả về danh sách
các hãng hàng không.
4. Hệ thống mở một trang web để hiển thị danh sách các hãng hàng
không này.
5. Người quản trị chọn một hãng hàng không trong danh sách.
6. Người quản trị chọn chức năng: ‘Xem thông tin chi tiết” hoặc
“Xóa” một hãng hàng không khỏi cơ sở dữ liệu.
19
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
7. Nếu chọn chức năng ‘Xem thông tin chi tiết’ thì hệ thống sẽ truy
xuất cơ sở dữ liệu để lấy về các thông tin mô tả chi tiết về hãng
hàng không đó và mở một trang web để hiển thị các thông tin
này.
8. Nếu chọn chức năng ‘Xóa’ một hãng hàng không thì hệ thống sẽ
vào cơ sở dữ liệu vào xóa các thông tin liên quan đến hãng hàng
không đó. Sau đó cập nhật lại danh sách đang hiển thị.
Dòng sự kiện khác:
Nếu trong quá trình thực hiện người quản trị hủy bỏ thao tác ‘Xóa’
hoặc việc truy xuất dữ liệu thất bại thì trạng thái của hệ thống không
thay đổi.
2.5.3.4 Yêu cầu đặc biệt:
Không có.
2.5.3.5 Điều kiện tiên quyết:
Người quản trị phải đăng nhập vào hệ thống trước khi có thể thực
hiện được use case này.
2.5.3.6 Post-Condition:
Nếu use case này thành công trong việc ‘Xem danh sách hãng hàng
không’ thì một trang web được mở để hiện hiển thị danh sách này.
Nếu việc xóa một hãng hàng không thành công thì cơ sở dữ liệu của
hệ thống sẽ được cập nhật. Ngược lại với các trường hợp trên thì
trạng thái của hệ thống không thay đổi.
2.5.3.7 Điểm mở rộng:
Không có.
20
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.5.4 Quản lý Khách viếng:
2.5.4.1 Tên Use Case:
Manage Visitors
2.5.4.2 Mô tả:
Use case này cho phép người quản trị website có thể vào xem danh
sách của các khách viếng, xem thông tin chi tiết của một khách
viếng nào đó và xóa một khách viếng khỏi cơ sở dữ liệu.
2.5.4.3 Dòng sự kiện:
Dòng sự kiện chính:
Use case này bắt đầu sau khi người quản trị đã đăng nhập vào hệ
thống và chọn chức năng ‘Xem danh sách khách viếng’ (List
Visitors) trên menu.
1. Người quản trị đăng nhập vào hệ thống.
2. Người quản trị chọn chức năng ‘Xem danh sách Khách viếng’
(List Visitors) trên menu.
3. Hệ thống truy xuất cơ sở dữ liệu trên server và trả về danh sách
các khách viếng.
4. Hệ thống mở một trang web để hiển thị danh sách khách viếng.
5. Người quản trị chọn một khách viếng trong danh sách.
6. Người quản trị chọn chức năng ‘Xem thông tin chi tiết’ hoặc
‘Xóa’ khách viếng khỏi cơ sở dữ liệu.
7. Nếu chọn chức năng ‘Xem thông tin chi tiết’ thì hệ thống sẽ truy
xuất cơ sở dữ liệu và mở một trang web để hiển thị thông tin chi
tiết của khách viếng đó.
21
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
8. Nếu chọn chức năng ‘Xóa’ thì hệ thống sẽ truy xuất dữ liệu và
xóa các thông tin liên quan đến khách viếng đó, đồng thời cập
nhật lại danh sách khách viếng.
Dòng sự kiện khác:
Nếu trong quá trình thực hiện use case, người quản trị quyết định
hủy bỏ thao tác ‘Xóa’ hoặc quá trình truy xuất dữ liệu thất bại thì
trạng thái của hệ thống không thay đổi.
2.5.4.4 Yêu cầu đặc biệt:
Không có.
2.5.4.5 Điều kiện tiên quyết:
Người quản trị phải đăng nhập vào hệ thống trước khi có thể thực
hiện được use case này.
2.5.4.6 Post-Condition:
Nếu use case này thành công trong việc xem danh sách hoặc các
thông tin liên quan đến khách viếng thì hệ thống sẽ mở một trang
web để thể hiện các thông tin đó. Nếu xóa thành công một khách
viếng thì cơ sở dữ liệu của hệ thống sẽ được cập nhật. Ngược lại các
trường hợp trên thì trạng thái của hệ thống không đổi.
2.5.4.7 Điểm mở rộng:
Không có.
2.5.5 Quản lý người dùng khác:
2.5.5.1 Tên Use Case:
Manage Users
22
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.5.5.2 Mô tả:
Use case này cho phép người quản trị trang web có thể xem danh
sách của những người dùng khác (cũng với vai trò quản trị), hiển thị
thông tin chi tiết và xóa một người dùng khỏi cơ sở dữ liệu.
2.5.5.3 Dòng sự kiện:
Dòng sự kiện chính:
Use case này bắt đầu khi người quản trị có nhu cầu xem các thông
tin của những người dùng khác (cùng vai trò quản trị) và chọn chức
năng quản lý người dùng (Manage Users) trên menu.
1. Người dùng đăng nhập vào hệ thống với vai trò quản trị.
2. Nếu đăng nhập thành công hệ thống vào trang Admin.
3. Người quản trị chọn chức năng quản lý người dùng.
4. Hệ thống truy xuất cơ sở dữ liệu và mở một trang web để hiển
thị danh sách các người dùng.
5. Người quản trị chọn một người dùng trong danh sách.
6. Người quản trị chọn chức năng thực hiện: hoặc là xem thông tin
chi tiết hoặc xóa người dùng.
7. Nếu chọn chức năng xem thông tin chi tiết thì hệ thống sẽ truy
xuất cơ sở dữ liệu và mở một trang web để hiển thị thông tin của
người dùng đó.
8. Nếu chọn chức năng ‘Xóa’ thì hệ thống sẽ truy xuất cơ sở dữ
liệu và xóa các thông tin liên quan đến người dùng đó, đồng thời
cập nhật lại danh sách người dùng đang hiển thị.
Dòng sự kiện khác:
23
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Nếu trong quá trình thực hiện use case, người quản trị quyết định
hủy bỏ thao tác ‘Xóa’ hoặc quá trình truy xuất dữ liệu thất bại thì
trạng thái của hệ thống không thay đổi.
2.5.5.4 Yêu cầu đặc biệt:
Không có.
2.5.5.5 Điều kiện tiên quyết:
Người quản trị phải đăng nhập vào hệ thống trước khi có thể thực
hiện các chức năng của use case này.
2.5.5.6 Post-Condition:
Nếu use case này thành công trong việc xóa một người dùng thì cơ
sở dữ liệu của hệ thống sẽ được cập nhật. Ngược lại, tình trạng của
hệ thống không thay đổi.
2.5.5.7 Điểm mở rộng:
Không có.
2.5.6 Quản lý các thông tin của Khách sạn:
2.5.6.1 Tên Use Case:
Manage Hotel Info
2.5.6.2 Mô tả:
Use case này cho phép những người dùng là phía Khách sạn có thể
quản lý các thông tin chung của mình như: xem thông tin chung,
cập nhật các thông tin chung…
2.5.6.3 Dòng sự kiện:
Dòng sự kiện chính:
24
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Use case này bắt đầu khi phía khách sạn có ý định xem các thông
tin đăng ký của mình và/hoặc muốn cập nhật các thông tin đó.
Người dùng chọn chức năng quản lý thông tin trên menu.
1. Người dùng đăng nhập vào hệ thống với vai trò khách sạn.
2. Nếu đăng nhập thành công thì hệ thống sẽ mở trang web cho đối
tượng khách sạn.
3. Người dùng chọn chức năng quản lý thông tin trên menu.
4. Hệ thống truy xuất dữ liệu khách sạn và mở mở một trang web
để hiển thị thông tin của khách sạn đó.
5. Người dùng có thể chọn chức năng cập nhật một thông tin nào
đó trên trang web.
6. Hệ thống hiển thị ô nhập liệu để người dùng có thể nhập thông
tin cập nhật vào đó.
7. Người dùng nhập thông tin cập nhật vào và chọn cập nhật.
8. Hệ thống kiểm tra tính hợp lệ của thông tin nhập vào và thực
hiện cập nhật vào cơ sở dữ liệu.
9. Use case kết thúc.
Dòng sự kiện khác:
Nếu trong quá trình cập nhật thông tin, người dùng quyết định hủy
bỏ quá trình cập nhật thì hệ thống sẽ trở lại trạng thái ban đầu và
hiển thị lại trang thông tin khách sạn.
2.5.6.4 Yêu cầu đặc biệt:
Không có.
25
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.5.6.5 Điều kiện tiên quyết:
Người dùng phải đăng nhập vào hệ thống với vai trò Khách sạn để
có thể thực hiện được các chức năng trong use case này.
2.5.6.6 Post-Condition:
Nếu use case này thành công trong việc cập nhật các thông tin
chung thì cơ sở dữ liệu của hệ thống sẽ được cập nhật. Ngược lại,
trạng thái của hệ thống không thay đổi.
2.5.6.7 Điểm mở rộng:
Không có.
2.5.7 Quản lý các thông tin của Hãng hàng không:
2.5.7.1 Tên Use Case:
Manage Airplane Info
2.5.7.2 Mô tả:
Use case này cho phép các hãng hàng không có thể quản lý các
thông tin của mình như: xem thông tin chung của mình, cập nhật
các thông tin chung...
2.5.7.3 Dòng sự kiện:
Dòng sự kiện chính:
Use case này bắt đầu khi phía hãng hàng không có ý định xem các
thông tin đăng ký của mình và/hoặc muốn cập nhật các thông tin đó.
Người dùng chọn chức năng quản lý thông tin trên menu.
1. Người dùng đăng nhập vào hệ thống với vai trò hãng hàng
không.
2. Nếu đăng nhập thành công thì hệ thống sẽ mở trang web cho đối
tượng hãng hàng không.
26
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
3. Người dùng chọn chức năng quản lý thông tin trên menu.
4. Hệ thống truy xuất dữ liệu hãng hàng không và mở một web
form để hiển thị thông tin của hãng hàng không đó.
5. Người dùng có thể chọn chức năng cập nhật một thông tin nào
đó trên web form.
6. Hệ thống hiển thị ô nhập liệu để người dùng có thể nhập thông
tin cập nhật vào đó.
7. Người dùng nhập thông tin cập nhật vào và chọn cập nhật.
8. Hệ thống kiểm tra tính hợp lệ của thông tin nhập vào và thực
hiện cập nhật vào cơ sở dữ liệu.
9. Use case kết thúc.
Dòng sự kiện khác:
Nếu trong quá trình cập nhật thông tin, người dùng quyết định hủy
bỏ quá trình cập nhật thì hệ thống sẽ trở lại trạng thái ban đầu và
hiển thị lại trang thông tin hãng hàng không.
2.5.7.4 Yêu cầu đặc biệt:
Không có.
2.5.7.5 Điều kiện tiên quyết:
Người dùng phải đăng nhập vào hệ thống với vai trò Hãng hàng
không để có thể thực hiện được các chức năng trong use case này.
2.5.7.6 Post-Condition:
Nếu use case này thành công thì các thông tin cập nhật sẽ được lưu
vào trong cơ sở dữ liệu của hệ thống. Ngược lại trạng thái của hệ
thống không thay đổi.
27
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.5.7.7 Điểm mở rộng:
Không có.
2.5.8 Đăng ký nhà cung cấp dịch vụ mới:
2.5.8.1 Tên Use Case:
Register New Supplier
2.5.8.2 Mô tả:
Use case này cho phép một khách sạn hay một hãng hàng không
đăng ký với website để trở thành một nhà cung cấp dịch vụ (cho
thuê phòng khách sạn, cho đặt vé máy bay).
2.5.8.3 Dòng sự kiện:
Dòng sự kiện chính:
Use case này bắt đầu khi một người dùng vào website và chọn đăng
ký làm nhà cung cấp dịch vụ (khách sạn hay hãng hàng không).
1. Người dùng vào hệ thống website.
2. Người dùng chọn vào trang Khách sạn (Hotel) hoặc Hãng hàng
không (Airplane).
3. Nếu chọn vào trang Hotel thì hệ thống sẽ mở trang Hotel và
người dùng chọn chức năng đăng ký (Register). Hệ thống mở
một web form cho phép người dùng nhập các thông tin đăng ký.
Người dùng nhập thông tin đăng ký và chọn đăng ký. Hệ thống
sẽ kiểm tra tính hợp lệ của các thông tin nhập và lưu vào cơ sở
dữ liệu khách sạn.
4. Nếu chọn vào trang Airplane thì hệ thống sẽ mở trang Airplane
và người dùng chọn chức năng đăng ký (Register). Hệ thống mở
một web form cho phép người dùng nhập các thông tin đăng ký.
28
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Người dùng nhập thông tin đăng ký và chọn đăng ký. Hệ thống
sẽ kiểm tra tính hợp lệ của các thông tin nhập và lưu vào cơ sở
dữ liệu hãng hàng không.
5. Người quản trị chịu trách nhiệm liên hệ với các khách sạn hay
hãng hàng không để xác nhận thông tin đăng ký.
6. Nếu thông tin đăng ký được xác nhận thì account sẽ được kích
hoạt.
Dòng sự kiện khác:
1. Nếu trong quá trình đăng ký người dùng chọn hủy bỏ đăng ký thì
dòng sự kiện chính sẽ bắt đầu lại từ đầu và trạng thái của hệ
thống không thay đổi.
2. Nếu quá trình xác nhận thông tin đăng ký của người quản trị có
vấn đề thì các thông tin đăng ký trước đó sẽ bị loại bỏ khỏi cơ sở
dữ liệu của hệ thống.
2.5.8.4 Yêu cầu đặc biệt:
Không có.
2.5.8.5 Điều kiện tiên quyết:
Không có.
2.5.8.6 Post-Condition:
Nếu use case này thành công thì thông tin đăng ký của một khách
sạn hoặc một hãng hàng không sẽ được lưu vào trong cơ sở dữ liệu
của hệ thống. Ngược lại, trạng thái của hệ thống thay đổi.
2.5.8.7 Điểm mở rộng:
Không có.
29
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.5.9 Đăng ký thành viên mới:
2.5.9.1 Tên Use Case:
Register Member
2.5.9.2 Mô tả:
Use case này cho phép người sử dụng đăng ký với trang web để trở
thành thành viên với vai trò Visitor. Với tài khoản này, sau đó người
dùng có thể đăng nhập vào hệ thống (với vai trò Visitor) và đăng ký
các dịch vụ như: đăng ký phòng khách sạn và đặt vé máy bay.
2.5.9.3 Dòng sự kiện:
Dòng sự kiện chính:
Use case này bắt đầu khi một khách viếng có nhu cầu đăng ký làm
thành viên của hệ thống hoặc khi người dùng chọn đăng ký sử dụng
dịch vụ mà chưa có account đăng ký.
1. Người dùng chọn chức năng đăng ký thành viên trên menu.
2. Hệ thống hiển thị một web form cho phép người dùng nhập các
thông tin đăng ký vào.
3. Người dùng nhập thông tin đăng ký vào web form và chọn đăng
ký (Register).
4. Hệ thống kiểm tra tính hợp lệ của các thông tin nhập vào và thực
hiện việc lưu vào cơ sở dữ liệu của hệ thống.
5. Quá trình đăng ký kết thúc.
Dòng sự kiện khác:
1. Nếu trong quá trình đăng ký người dùng quyết định hủy bỏ các
thông tin đăng ký thì use case sẽ kết thúc và trạng thái của hệ
thống không thay đổi.
30
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2. Nếu quá trình kiểm tra thông tin nhập phát hiện không hợp lệ thì
hệ thống sẽ trở về trạng thái trước đó (mở trang nhập liệu với các
thông tin nhập trước đó vẫn còn để người dùng có thể chỉnh
sửa).
2.5.9.4 Yêu cầu đặc biệt:
Không có.
2.5.9.5 Điều kiện tiên quyết:
Không có.
2.5.9.6 Post-Condition:
Nếu use case này thành công thì thông tin đăng ký của một khách
viếng sẽ được lưu vào cơ sở dữ liệu của hệ thống. Ngược lại, trạng
thái của hệ thống không thay đổi.
2.5.9.7 Điểm mở rộng:
Không có.
2.5.10 Đăng ký phòng khách sạn:
2.5.10.1 Tên Use Case:
Register Service
2.5.10.2 Mô tả:
Use case này cho phép người dùng có thể đăng ký phòng khách sạn
trực tiếp trên mạng.
2.5.10.3 Dòng sự kiện:
Dòng sự kiện chính:
Use case này bắt đầu khi một khách viếng chọn đăng ký phòng.
1. Người dùng chọn chức năng đăng ký phòng khách sạn.
31
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2. Hệ thống hiển thị một web form cho phép người dùng nhập vào
các thông tin đăng ký.
3. Người dùng xác nhận các thông tin đăng ký.
4. Hệ thống kiểm tra tính hợp lệ của các thông tin đăng ký.
5. Hệ thống lưu trữ thông tin đăng ký vào cơ sở dữ liệu của hệ
thống.
6. Hệ thống hiển thị thời gian thông báo kết quả đăng ký cho khách
viếng.
7. Nếu quá trình đăng ký với phía khách sạn thành công thì người
quản trị sẽ gửi thông báo đến cho khách viếng và yêu cầu thanh
toán trong trường hợp trả trước.
8. Nếu quá trình đăng ký với phía khách sạn không thành công thì
người quản trị sẽ gửi thông báo đến cho khách viếng và đề nghị
đăng ký lại. Use case sẽ bắt đầu lại.
Dòng sự kiện khác:
Người dùng hủy bỏ quá trình đăng ký: Trạng thái của hệ thống
không thay đổi và use case kết thúc.
2.5.10.4 Yêu cầu đặc biệt:
Người dùng phải hoặc đã có đăng ký thành viên với trang web với
vai trò Visitor, hoặc phải thực hiện việc đăng ký thành viên (để
nhập các thông tin cá nhân) trước khi có thể thực hiện use case này.
2.5.10.5 Điều kiện tiên quyết:
Người dùng phải đăng nhập với vai trò Visitor để có thể thực hiện
use case này.
32
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.5.10.6 Post-Condition:
Nếu use case này thành công thì thông tin đăng ký dịch vụ của
khách viếng sẽ được lưu vào cơ sở dữ liệu và người quản trị trang
web phải chịu trách nhiệm liên hệ với phía cung cấp dịch vụ để thực
hiện việc đăng ký cho khách. Sau khi liên hệ với phía cung cấp dịch
vụ xong thì người quản trị trang web phải thông báo kết quả đăng
ký cho khách viếng và tiến hành thanh toán các chi phí.
2.5.10.7 Điểm mở rộng:
Không có.
2.5.11 Tìm kiếm Khách sạn, Hãng hàng không:
2.5.11.1 Tên Use Case:
Search
2.5.11.2 Mô tả:
Use case này cho phép người dùng tìm kiếm các khách sạn hay
hãng hàng không thỏa một nhu cầu nào đó.
2.5.11.3 Dòng sự kiện:
Dòng sự kiện chính:
Use case này bắt đầu khi một khách viếng chọn chức năng tìm kiếm
thông tin của các khách sạn hay hãng hàng không trên menu.
1. Người dùng chọn chức năng tìm kiếm (Search) trên menu.
2. Hệ thống hiển thị trang tìm kiếm cho phép người dùng nhập từ
khóa tìm kiếm.
3. Người dùng nhập vào từ khóa tìm kiếm.
4. Hệ thống sử dụng cơ chế tìm kiếm để tìm kiếm trong cơ sở dữ
liệu của hệ thống.
33
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
5. Kết quả tìm kiếm được thể hiện trên trang Kết quả tìm kiếm
(Search Result).
6. Người dùng có thể chọn xem thông tin chi tiết của từng khách
sạn hay hãng hàng không trên trang kết quả hay chọn đặt phòng
khách sạn hoặc đặt vé máy bay.
Dòng sự kiện khác:
Quá trình tìm kiếm thất bại: hệ thống yêu cầu người dùng nhập lại
từ khóa hay hủy bỏ thao tác tìm kiếm.
2.5.11.4 Yêu cầu đặc biệt:
Không có.
2.5.11.5 Điều kiện tiên quyết:
Không có.
2.5.11.6 Post-Condition:
Nếu use case này thành công thì sẽ cho ra kết quả tìm kiếm trên
trang kết quả tìm kiếm. Ngược lại, hiển thị trang thông báo kết quả
tìm kiếm thất bại.
2.5.11.7 Điểm mở rộng:
Không có.
2.5.12 Nhập mô tả cho Hãng hàng không:
2.5.12.1 Tên Use Case:
Enter Airplane Description
2.5.12.2 Mô tả:
Use case này cho phép những người dùng với vai trò Hãng hàng
không nhập các thông tin mô tả cho hãng hàng không của mình.
34
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.5.12.3 Dòng sự kiện:
Dòng sự kiện chính:
Use case này bắt đầu sau khi hãng hàng không đã đăng ký thành
công với hệ thống và dự định nhập các thông tin mô tả cho hãng
hàng không. Các bước thực hiện của use case này như sau:
1. Người dùng đăng nhập vào hệ thống với vai trò hãng hàng
không.
2. Người dùng chọn chức năng nhập thông tin mô tả.
3. Hệ thống truy xuất và hiển thị các thông tin mô tả của hãng hàng
không (nếu có) dưới dạng web form để người dùng có thể nhập
thêm các thông tin mô tả.
4. Người dùng chọn chức năng xác nhận các thông tin đã nhập.
5. Hệ thống kiểm tra tính hợp lệ và lưu trữ các thông tin trên vào cơ
sở dữ liệu của hệ thống.
6. Use case kết thúc.
Dòng sự kiện khác:
1. Nếu quá trình kiểm tra tính hợp lệ phát hiện có lỗi thì hệ thống sẽ
trả lại web form nhập liệu để người dùng có thể chỉnh sửa. Trạng
thái của hệ thống lúc này vẫn chưa thay đổi.
2. Nếu người dùng quyết định hủy bỏ thao tác nhập liệu trên thì
trạng thái của hệ thống vẫn không thay đổi và dòng sự kiện
chính được bắt đầu lại.
2.5.12.4 Yêu cầu đặc biệt:
Không có.
35
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.5.12.5 Điều kiện tiên quyết:
Người dùng phải đăng nhập vào hệ thống với vai trò Hãng hàng
không để có thể thực hiện use case này.
2.5.12.6 Post-Condition:
Nếu use case này thành công thì thông tin mô tả của một hãng hàng
không sẽ được cập nhật vào cơ sở dữ liệu của hệ thống. Ngược lại,
trạng thái của hệ thống không thay đổi.
2.5.12.7 Điểm mở rộng:
Không có.
2.5.13 Nhập mô tả Khách sạn:
2.5.13.1 Tên Use Case:
Enter Hotel Description
2.5.13.2 Mô tả:
Use case này cho phép người dùng với vai trò là các Khách sạn có
thể nhập vào các thông tin mô tả về khách sạn của mình.
2.5.13.3 Dòng sự kiện:
Dòng sự kiện chính:
Use case này bắt đầu sau khi khách sạn đã đăng ký thành công với
hệ thống và dự định nhập các thông tin mô tả cho khách sạn. Các
bước thực hiện của use case này như sau:
1. Người dùng đăng nhập vào hệ thống với vai trò khách sạn.
2. Người dùng chọn chức năng nhập thông tin mô tả.
3. Hệ thống truy xuất và hiển thị các thông tin mô tả của khách sạn
(nếu có) dưới dạng web form để người dùng có thể nhập thêm
các thông tin mô tả.
36
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
4. Người dùng chọn chức năng xác nhận các thông tin đã nhập.
5. Hệ thống kiểm tra tính hợp lệ và lưu trữ các thông tin trên vào cơ
sở dữ liệu của hệ thống.
6. Use case kết thúc.
Dòng sự kiện khác:
1. Nếu quá trình kiểm tra tính hợp lệ phát hiện có lỗi thì hệ thống sẽ
trở lại web form nhập liệu để người dùng có thể chỉnh sửa. Trạng
thái của hệ thống lúc này vẫn chưa thay đổi.
2. Nếu người dùng quyết định hủy bỏ thao tác nhập liệu trên thì
trạng thái của hệ thống vẫn không thay đổi và dòng sự kiện
chính được bắt đầu lại.
2.5.13.4 Yêu cầu đặc biệt:
Không có.
2.5.13.5 Điều kiện tiên quyết:
Người dùng phải đăng nhập vào hệ thống với vai trò Khách sạn để
có thể thực hiện được use case này.
2.5.13.6 Post-Condition:
Nếu use case này thành công thì thông tin mô tả của một khách sạn
sẽ được cập nhật vào cơ sở dữ liệu của hệ thống. Ngược lại, trạng
thái của hệ thống không thay đổi.
2.5.13.7 Điểm mở rộng:
Không có.
2.5.14 Cập nhật mô tả Hãng hàng không:
2.5.14.1 Tên Use Case:
Update Airplane Description
37
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.5.14.2 Mô tả:
Use case này cho phép các hãng hàng không có thể cập nhật lại các
thông tin mô tả của mình.
2.5.14.3 Dòng sự kiện:
Dòng sự kiện chính:
Use case này bắt đầu khi một hãng hàng không có ý định cập nhật
lại các thông tin mô tả. Các bước thực hiện như sau:
1. Người dùng đăng nhập vào hệ thống với vai trò hãng hàng
không.
2. Người dùng chọn chức năng cập nhật thông tin mô tả.
3. Hệ thống truy xuất và hiển thị thông tin mô tả của khách sạn này
dưới dạng cho phép có thể cập nhật được.
4. Người dùng nhập vào các thông tin mô tả cần cập nhật.
5. Người dùng chọn ‘Cập nhật’.
6. Hệ thống cập nhật lại các thông tin vào trong cơ sở dữ liệu của
hệ thống.
7. Use case kết thúc.
Dòng sự kiện khác:
Người dùng quyết định hủy bỏ quá trình cập nhật: Trong trường
hợp này, trạng thái của hệ thống sẽ không thay đổi và dòng sự kiện
chính được bắt đầu lại từ đầu.
2.5.14.4 Yêu cầu đặc biệt:
Không có.
38
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.5.14.5 Điều kiện tiên quyết:
Người dùng phải đăng nhập vào hệ thống với vai trò Hãng hàng
không (Airplane) để có thể thực hiện use case này.
2.5.14.6 Post-Condition:
Nếu use case này thành công thì các thông tin mô tả của hãng hàng
không sẽ được cập nhật vào cơ sở dữ liệu. Ngược lại, trạng thái của
hệ thống không thay đổi.
2.5.14.7 Điểm mở rộng:
Không có.
2.5.15 Cập nhật mô tả Khách sạn:
2.5.15.1 Tên Use Case:
Update Hotel Description
2.5.15.2 Mô tả:
Use case này cho phép các khách sạn có thể cập nhật các thông tin
mô tả cho khách sạn của mình.
2.5.15.3 Dòng sự kiện:
Use case này bắt đầu khi một khách sạn có ý định cập nhật lại các
thông tin mô tả. Các bước thực hiện như sau:
1. Người dùng đăng nhập vào hệ thống với vai trò khách sạn.
2. Người dùng chọn chức năng cập nhật thông tin mô tả.
3. Hệ thống truy xuất và hiển thị thông tin mô tả của khách sạn
dưới dạng cho phép người dùng có thể nhập vào các thông tin
mô tả cho khách sạn.
4. Người dùng nhập vào các thông tin mô tả cần cập nhật.
5. Người dùng chọn ‘Cập nhật’.
39
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
6. Hệ thống cập nhật lại các thông tin vào trong cơ sở dữ liệu của
hệ thống.
7. Use case kết thúc.
Dòng sự kiện khác:
Người dùng quyết định hủy bỏ quá trình cập nhật: Trong trường
hợp này, trạng thái của hệ thống sẽ không thay đổi và dòng sự kiện
chính được bắt đầu lại từ đầu.
2.5.15.4 Yêu cầu đặc biệt:
Không có.
2.5.15.5 Điều kiện tiên quyết:
Người dùng phải đăng nhập vào hệ thống với vai trò khách sạn
(Hotel) để có thể thực hiện được use case này.
2.5.15.6 Post-Condition:
Nếu use case này thành công thì thông tin mô tả cập nhật cho khách
sạn sẽ được lưu vào cơ sở dữ liệu của hệ thống. Ngược lại, trạng
thái của hệ thống sẽ không thay đổi.
2.5.15.7 Điểm mở rộng:
Không có.
2.5.16 Trao đổi thông tin:
2.5.16.1 Tên Use Case:
Exchange Info
2.5.16.2 Mô tả:
Use case này cho phép các người dùng với từng vai trò khác nhau
có thể xem nội dung các thông điệp và gửi các thông điệp lẫn nhau
(giữa người quản trị trang web với các đối tượng khác và ngược lại).
40
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.5.16.3 Dòng sự kiện:
Dòng sự kiện chính:
Use case này được bắt đầu khi một người dùng đăng nhập vào hệ
thống và chọn chức năng ‘Messages’ trên menu.
1. Người dùng đăng nhập vào hệ thống.
2. Người dùng chọn chức năng ‘Messages’ trên menu.
3. Hệ thống mở trang web Messages.
4. Người dùng chọn chức năng ‘Xem danh sách các thông điệp’
(List Messages) hay ‘Gửi thông điệp’ (Send Message).
5. Nếu người dùng chọn chức năng ‘Xem danh sách các thông
điệp’ thì hệ thống sẽ truy xuất cơ sở dữ liệu và hiển thị danh sách
các thông điệp trên một trang web mới. Từ đây người dùng có
thể chọn chức năng ‘Xem nội dung thông điệp’ hay ‘Xóa thông
điệp’:
6. Nếu người dùng chọn chức năng ‘Xem nội dung thông điệp’ thì
hệ thống sẽ truy xuất cơ sở dữ liệu tìm nội dung của thông điệp
tương ứng và mở một trang web mới để hiển thị nội dung này.
7. Nếu người dùng chọn chức năng ‘Xóa’ thông điệp thì hệ thống
sẽ truy xuất đến cơ sở dữ liệu để xóa nội dung của thông điệp
này. Đồng thời cập nhật lại danh sách các thông điệp đang hiển
thị.
8. Nếu người dùng chọn chức năng ‘Gửi thông điệp’ (Send
Message) thì hệ thống sẽ mở một web form cho phép người dùng
có thể nhập nội dung của thông điệp. Khi người dùng chọn chức
41
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
năng ‘Send’ thì hệ thống sẽ lưu thông điệp đó vào Inbox của
người nhận. Sau đó quay trở về trang Messages.
Dòng sự kiện khác:
Người dùng hủy bỏ việc gửi thông điệp: Nếu trong quá trình gửi
thông điệp người dùng quyết định thôi không gửi thông điệp nữa thì
hệ thống sẽ không thay đổi trạng thái và hệ thống quay trở lại trang
Messages.
2.5.16.4 Yêu cầu đặc biệt:
Không có.
2.5.16.5 Điều kiện tiên quyết:
Tùy theo các đối tượng người dùng phải đăng nhập vào hệ thống để
thực hiện các chức năng của use case này.
2.5.16.6 Post-Condition:
Tùy theo chức năng mà người dùng chọn, nếu use case thực hiện
thành công thì hệ thống hoặc sẽ hiển thị nội dung của thông điệp
(show message) hoặc gửi thông điệp (lưu thông điệp vào inbox của
người nhận). Hệ thống sẽ không cập nhật nếu không thực hiện chức
năng gửi thông điệp hoặc gửi không thành công.
2.5.16.7 Điểm mở rộng:
Không có.
42
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.6 Sơ đồ lớp: 2.6.1 Admin Login Class:
Hình 2-5: Class Diagram: Đăng nhập hệ thống
43
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.6.2 Airplane Description Class:
Hình 2-6: Class Diagram: Mô tả hãng hàng không
44
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.6.3 Hotel Description Class:
Hình 2-7: Class Diagram: Mô tả khách sạn
2.6.4 Exchange Info Class:
Hình 2-8: Class Diagram: Trao đổi thông tin
45
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.6.5 Manage Airplane Class:
Hình 2-9: Class Diagram: Quản lý Hãng hàng không
46
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.6.6 Manage Hotel Class:
Hình 2-10: Class Diagram: Quản lý khách sạn
47
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.6.7 Manage Airplane Info Class:
Hình 2-11: Class Diagram: Quản lý thông tin Hãng hàng không
48
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.6.8 Manage Hotel Info Class:
Hình 2-12: Class Diagram: Quản lý thông tin khách sạn
49
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.6.9 Manage User Class:
Hình 2-13: Class Diagram: Quản trị người dùng
2.6.10 Manage Visitor Class:
Hình 2-14: Class Diagram: Quản trị khách viếng
50
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.6.11 Register Member Class:
Hình 2-15: Class Diagram: Đăng ký thành viên
2.6.12 Register Service Class:
Hình 2-16: Class Diagram: Đăng ký dịch vụ
51
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.6.13 Register Supplier Class:
Hình 2-17: Class Diagram: Đăng ký nhà cung cấp dịch vụ
52
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7 Các lưu đồ hoạt động: 2.7.1 Đăng nhập hệ thống:
Tên lược đồ: Login
Lược đồ tuần tự (Sequence Diagram):
Hình 2-18: Sequence Diagram: Đăng nhập hệ thống
53
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-19: Collaboration Diagram: Đăng nhập hệ thống
54
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.2 Khách viếng đăng ký làm thành viên: Tên lược đồ: Register Member
Lược đồ tuần tự (Sequence Diagram):
Hình 2-20: Sequence Diagram: Đăng ký thành viên
55
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-21: Collaboration Diagram: Đăng ký thành viên
56
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.3 Khách sạn đăng ký làm nhà cung cấp dịch vụ khách sạn: Tên lược đồ: Hotel Register
Lược đồ tuần tự (Sequence Diagram):
Hình 2-22: Sequence Diagram: Đăng ký nhà cung cấp dịch vụ
57
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-23: Collaboration Diagram: Đăng ký nhà cung cấp dịch vụ
58
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.4 Khách viếng đặt phòng ở khách sạn: Tên lược đồ: Book Room
Lược đồ tuần tự (Sequence Diagram):
Hình 2-24: Sequence Diagram: Đặt phòng khách sạn
59
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-25: Collaboration Diagram: Đặt phòng khách sạn
60
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.5 Nhập thông tin mô tả cho Hãng hàng không: Tên lược đồ: Enter Airplane Description
Lược đồ tuần tự (Sequence Diagram):
Hình 2-26: Sequence Diagram: Nhập thông tin mô tả Hãng hàng không
61
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-27: Collaboration Diagram: Nhập thông tin mô tả cho
Hãng hàng không
62
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.6 Nhập thông tin mô tả cho Khách sạn: Tên lược đồ: Enter Hotel Description
Lược đồ tuần tự (Sequence Diagram):
Hình 2-28: Sequence Diagram: Nhập thông tin mô tả cho khách sạn
63
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-29: Collaboration Diagram: Nhập thông tin mô tả cho khách sạn
64
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.7 Soạn và gửi các thông điệp: Tên lược đồ: Send Message
Lược đồ tuần tự (Sequence Diagram):
Hình 2-30: Sequence Diagram: Gửi thông điệp
65
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-31: Collaboration Diagram: Gửi thông điệp
66
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.8 Xem các thông điệp: Tên lược đồ: Show Message
Lược đồ tuần tự (Sequence Diagram):
Hình 2-32: Sequence Diagram: Xem thông điệp
67
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-33: Collaboration Diagram: Xem thông điệp
68
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.9 Xem các thông tin chung của Hãng hàng không: Tên lược đồ: Airplane Info
Lược đồ tuần tự (Sequence Diagram):
Hình 2-34: Sequence Diagram: Xem thông tin nhà cung cấp dịch vụ
69
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-35: Collaboration Diagram: Xem thông tin nhà cung cấp dịch vụ
70
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.10 Cập nhật các thông tin chung của Khách sạn: Tên lược đồ: Update Hotel Info
Lược đồ tuần tự (Sequence Diagram):
Hình 2-36: Sequence Diagram: Cập nhật thông tin nhà cung cấp dịch vụ
71
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-37: Collaboration Diagram: Cập nhật thông tin
Nhà cung cấp dịch vụ
72
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.11 Cập nhật các thông tin mô tả của Khách sạn: Tên lược đồ: Update Hotel Description
Lược đồ tuần tự (Sequence Diagram):
Hình 2-38: Sequence Diagram: Cậpnhật thông tin mô tả của nhà cung cấp dịch vụ
Lược đồ cộng tác (Collaboration Diagram):
73
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Hình 2-39: Collaboration Diagram: Cập nhật thông tin mô tả của nhà cung cấp dịch vụ
74
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.12 Tìm kiếm Khách sạn: Tên lược đồ: Search Hotels
Lược đồ tuần tự (Sequence Diagram):
Hình 2-40: Sequence Diagram: Tìm kiếm khách sạn
75
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-41: Sequence Diagram: Tìm kiếm khách sạn
76
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.13 Thêm người sử dụng mới (với vai trò Admin): Tên lược đồ: Add New User
Lược đồ tuần tự (Sequence Diagram):
Hình 2-42: Sequence Diagram: Thêm mới người sử dụng
77
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-43: Collaboration Diagram: Thêm mới người sử dụng
78
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.14 Xem danh sách người sử dụng (với vai trò Admin): Tên lược đồ: Show List Users
Lược đồ tuần tự (Sequence Diagram):
Hình 2-44: Sequence Diagram: Xem danh sách người sử dụng
79
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-45: Collaboration Diagram: Xem danh sách người sử dụng
80
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.15 Xem thông tin người sử dụng (với vai trò Admin): Tên lược đồ: Show User Info
Lược đồ tuần tự (Sequence Diagram):
Hình 2-46: Sequence Diagram: Xem thông tin người sử dụng
81
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-47: Collaboration Diagram: Xem thông tin của người sử dụng
82
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.16 Xóa thông tin người sử dụng (với vai trò Admin): Tên lược đồ: Remove User
Lược đồ tuần tự (Sequence Diagram):
Hình 2-48: Sequence Diagram: Xóa người sử dụng
83
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-49: Collaboration Diagram: Xóa người sử dụng
84
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.17 Xem danh sách các Khách sạn: Tên lược đồ: Show List Hotels
Lược đồ tuần tự (Sequence Diagram):
Hình 2-50: Sequence Diagram: Xem danh sách khách sạn
85
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-51: Collaboration Diagram: Xem danh khách sạn
86
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.18 Xem thông tin chi tiết một Khách sạn: Tên lược đồ: Show Hotel Description
Lược đồ tuần tự (Sequence Diagram):
Hình 2-52: Sequence Diagram: Xem thông tin chi tiết của khách sạn
87
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-53: Collaboration Diagram: Xem thông tin chi tiết của khách sạn
88
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.19 Xóa một Khách sạn: Tên lược đồ: Remove Hotel
Lược đồ tuần tự (Sequence Diagram):
Hình 2-54: Sequence Diagram: Xóa một khách sạn
89
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-55: Collaboration Diagram: Xóa một khách sạn
90
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.20 Xem danh sách khách viếng: Tên lược đồ: Show List Visitors
Lược đồ tuần tự (Sequence Diagram):
Hình 2-56: Sequence Diagram: Xem danh sách khách viếng
91
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-57: Collaboration Diagram: Xem danh sách khách viếng
92
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.21 Xem thông tin một khách viếng: Tên lược đồ: Show Visitor Info
Lược đồ tuần tự (Sequence Diagram):
Hình 2-58: Sequence Diagram: Xem thông tin khách viếng
93
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-59: Collaboration Diagram: Xem thông tin khách viếng
94
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
2.7.22 Xóa một khách viếng: Tên lược đồ: Remove Visitor
Lược đồ tuần tự (Sequence Diagram):
Hình 2-60: Sequence Diagram: Xóa một khách viếng
95
KHOA CNTT –
ĐH KHTN
Chương 2. Phân tích
Lược đồ cộng tác (Collaboration Diagram):
Hình 2-61: Collaboration Diagram: Xóa một khách viếng
96
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Chương 3. THIẾT KẾ 3.1 Thiết kế dữ liệu:
Mặc dù trong phần phân tích chúng em đã sử dụng mô hình hướng đối
tượng để thực hiện nhưng do điều kiện khách quan không thể triển khai được cài
đặt theo mô hình này trong thực tế. Do đó, quá trình chuyển tiếp từ phân tích
hướng đối tượng sang thiết kế hướng đối tượng sẽ được thay thế bằng thiết kế
theo mô hình quan hệ tương ứng với cơ sở dữ liệu quan hệ (SQL Server).
97
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
3.1.1 Mô hình dữ liệu logic ở dạng sơ đồ:
Hình 3-1: Sơ đồ mô hình dữ liệu
98
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
3.1.2 Danh sách các bảng dữ liệu:
3.1.2.1 tblHotels:
Mô tả: Lưu trữ thông tin đăng ký của các khách sạn.
Các thành phần lưu trữ: HotelID, LoginID, LoginPwd, QuestionID,
Answer, HotelName, ContactName, ContactTitle, Address, City,
Province, CountryID, PostalCode, Phone, Mobile, Fax, HomePage,
Email, Standard, DateReg, LastLogin, NumOfLogin,
NumOfRooms, Active. Khóa chính là HotelID.
3.1.2.2 tblAirplanes:
Mô tả: Lưu trữ thông tin đăng ký của các hãng hàng không.
Các thành phần lưu trữ: AirplaneID, LoginID, LoginPwd,
QuestionID, Answer, AirplaneName, ContactName, ContactTitle,
Address, City, Province, CountryID, PostalCode, Phone, Mobile,
Fax, HomePage, Email, DateReg, LastLogin, NumOfLogin, Active.
Khóa chính là AirplaneID.
3.1.2.3 tblVisitors:
Mô tả: Lưu trữ thông tin đăng ký của khách viếng.
Các thành phần lưu trữ: VisitorID, LoginID, LoginPwd,
QuestionID, Answer, Dear, FirstName, LastName, Address, City,
Province, CountryID, PostalCode, Phone, Mobile, Fax, Email,
DateReg, LastLogin, NumOfLogin, Active. Khóa chính là
VisitorID.
3.1.2.4 tblAdmin:
Mô tả: Lưu trữ thông tin của người quản trị Website.
99
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Các thành phần lưu trữ: AdminID, LoginID, LoginPwd,
QuestionID, Answer, Dear, FirstName, LastName, Address, Phone,
Mobile, Fax, Email, DateReg, LastLogin, NumOfLogin, Active,
UserType. Khóa chính là AdminID.
3.1.2.5 tblRoomInfo:
Mô tả: Lưu trữ thông tin các loại phòng của các khách sạn.
Các thành phần lưu trữ: HotelID, RoomType, NumOfRooms,
SingleRoom, DoubleRoom, AddGuest, ExtraBed, Currency,
Breakfast, Smoking, OtherNotes. Khóa chính bao gồm HotelID,
RoomTypeID.
3.1.2.6 tblFlightInfo:
Mô tả: Lưu trữ thông tin các tuyến bay của các hãng hàng không.
Các thành phần lưu trữ: AirplaneID, FlightName, TakeofTime,
Departure, Destination, Description, SpendTime, Oneway,
Roundtrip, Currency, Notes. Khóa chính bao gồm AirplaneID,
FlightName, TakeoffTime.
3.1.2.7 tblBookInfo:
Mô tả: Lưu trữ thông tin đặt phòng của khách viếng.
Các thành phần lưu trữ: BookingID, VisitorID, HotelType,
CheckInDate, CheckOutDate, CountryID, Province, City,
GuestName, NumOfGuest, Status. Khóa chính là BookingID.
3.1.2.8 tblBookDetail:
Mô tả: Lưu trữ thông tin chi tiết đặt phòng của khách viếng.
Các thành phần lưu trữ: BookingID, RoomTypeID, NumOfRoom.
Khóa chính là BookingID.
100
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
3.1.2.9 tblBookResult:
Mô tả: Lưu trữ kết quả đặt phòng của khách viếng.
Các thành phần lưu trữ: BookingID, HotelID, TotalCost,
PaymentID, Status. Khóa chính là BookingID.
3.1.2.10 tblBookTicket:
Mô tả: Lưu trữ thông tin đặt vé máy bay của khách hàng.
Các thành phần lưu trữ: BookTicketID, VisitorID, Departure,
Destination, TicketType, Roundtrip, DateTakeoff, DateReturn,
Passengers, Delivery, SpecialRequest, Statur. Khóa chính là
BookTicketID.
3.1.2.11 tblPassenger:
Mô tả: Lưu trữ thông tin các hành khách đặt vé máy bay.
Các thành phần lưu trữ: BookTicketID, PassengerID,
PassengerType, PassengerName. Khóa chính bao gồm
BookTicketID, PassengerID.
3.1.2.12 tblFlightResult:
Mô tả: Lưu trữ kết quả đặt vé máy bay của khách hàng.
Các thành phần lưu trữ: BookTicketID, AirplaneID, FlightName,
TakeoffTime, TotalCost, PaymentID, Status. Khóa chính là
BookTicketID.
3.1.2.13 tblComments:
Mô tả: Lưu trữ các lời phê bình, đề nghị của các khách viếng
Website. Đây là các thông tin góp ý về Website.
Các thành phần lưu trữ: CommentID, Commentator, Content,
DateRecv, Email. Khóa chính là CommentID.
101
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
3.1.2.14 tblHotelInbox:
Mô tả: Lưu trữ các thông tin trao đổi do các thành viên đăng ký với
hệ thống hoặc người quản trị gửi đến.
Các thành phần lưu trữ: HotelID, MessageID, DateRecv,
SenderName, SenderEmail, Subject, Content. Khóa chính bao gồm
HotelID, MessageID.
3.1.2.15 tblAirplaneInbox:
Mô tả: Lưu trữ các thông tin trao đổi do các thành viên đăng ký với
hệ thống gửi đến.
Các thành phần lưu trữ: AirplaneID, MessageID, DateRecv,
SenderName, SenderEmail, Subject, Content. Khóa chính bao gồm
AirplaneID, MessageID.
3.1.2.16 tblVisitorInbox:
Mô tả: Lưu trữ các thông tin trao đổi do các thành viên đăng ký với
hệ thống hoặc người quản trị gửi đến.
Các thành phần lưu trữ: VisitorID, MessageID, DateRecv,
SenderName, SenderEmail, Subject, Content. Khóa chính bao gồm
VisitorID, MessageID.
3.1.2.17 tblAdminInbox:
Mô tả: Lưu trữ các thông tin trao đổi do các thành viên đăng ký với
hệ thống gửi đến cho người quản trị.
Các thành phần lưu trữ: AdminID, MessageID, DateRecv,
SenderName, SenderEmail, Subject, Content. Khóa chính bao gồm
AdminID, MessageID.
102
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
3.1.2.18 tblCountries:
Mô tả: Lưu trữ tên của các quốc gia.
Các thành phần lưu trữ: CountryID, CountryName_EN,
CountryName_VN, RegionID, Supported. Khóa chính là RegionID.
3.1.2.19 tblProvinces:
Mô tả: Lưu trữ tên các tỉnh, thành.
Các thành phần lưu trữ: ProvinceID, ProvinceName, CountryID,
Supported. Khóa chính là ProvinceID.
3.1.2.20 tblRegions:
Mô tả: Lưu trữ tên các vùng trên thế giới
Các thành phần lưu trữ: RegionID, RegionName_EN,
RegionName_VN, ContinentID. Khóa chính là RegionID.
3.1.2.21 tblContinents:
Mô tả: Lưu trữ tên các lục địa.
Các thành phần lưu trữ: ContinentID, ContinentName_EN,
ContinentName_VN. Khóa chính là ContinentID.
3.1.2.22 tblCities:
Mô tả: Lưu trữ tên các thành phố.
Các thành phần lưu trữ: CityID, CityName, ProvinceID, CountryID,
Supported. Khóa chính là CityID.
3.1.2.23 tblErrorMsg:
Mô tả: Lưu trữ các thông điệp báo lỗi.
Các thành phần lưu trữ: ErrorID, Description_EN, Description_VN.
Khóa chính là ErrorID.
103
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
3.1.2.24 tblCommonMsg:
Mô tả: Lưu trữ các thông điệp, thông báo phổ biến.
Các thành phần lưu trữ: MessageID, MsgDetail_EN,
MsgDetail_VN. Khóa chính là MessageID.
3.1.2.25 tblPayments:
Mô tả: Lưu trữ các loại hình thức thanh toán.
Các thành phần lưu trữ: PaymentID, Description_EN,
Description_VN. Khóa chính là PaymentID.
3.1.2.26 tblCurrencies:
Mô tả: Chứa các loại tiền tệ hỗ trợ.
Các thành phần lưu trữ: CurrencyID, Description_EN,
Description_VN. Khóa chính là CurrencyID.
3.1.2.27 tblQuestions:
Mô tả: Chứa danh sách các câu hỏi được sử dụng trong quá trình
đăng ký của người dùng. Hỗ trợ khi quên mật khẩu.
Các thành phần lưu trữ: QuestionID, Question_EN, Question_VN.
Khóa chính là QuestionID.
3.1.3 Danh sách các thành phần của lược đồ dữ liệu:
STT Tên Loại Ý nghĩa Ghi chú
1 tblHotels Đối tượng Thông tin về khách sạn. Cung cấp dịch vụ cho thuê phòng.
2 tblAirplanes Đối tượng Thông tin về hãng hàng không.
Bán vé máy bay, các dịch vụ về hàng không.
3 tblVisitors Đối tượng Thông tin về khách viếng.
Đối tượng đăng ký phòng khách sạn hoặc/và mua vé máy bay.
104
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
4 tblAdmin Đối tượng Thông tin về người quản trị Website.
Quản trị tất cả các đối tượng và hoạt động của Website.
5 tblRoomInfo Đối tượng Thông tin phòng của các khách sạn.
Bao gồm giá, số lượng phòng của từng loại…
6 tblFlightInfo Đối tượng Thông tin các tuyến bay của các hãng hàng không.
7 tblBookInfo Đối tượng Thông tin đặt phòng.
8 tblBookDetail Đối tượng Thông tin đặt phòng chi tiết.
9 tblBookResult Đối tượng Thông tin kết quả đặt phòng.
10 tblBookTicket Đối tượng Thông tin đặt vé máy bay.
11 tblPassenger Đối tượng Danh sách các hành khách đặt vé máy bay.
12 tblFlightResult Đối tượng Thông tin kết quả đặt vé máy bay.
13 tblComments Đối tượng Các góp ý, phê bình của những người viếng Website.
Cho phép gửi các ý kiến đóng góp để hoàn thiện Website.
14 tblHotelInbox Đối tượng Chứa các thông điệp hay thông báo của phía quản trị Website gửi cho sphía khách sạn.
Các thông báo khi có yêu cầu cập nhật thông tin hay khi có khách đăng ký phòng…
15 tblAirplaneInbox Đối tượng Chứa các thông điệp hay thông báo của phía quản trị Website gửi cho phía hãng hàng không.
Các thông báo khi có yêu cầu cập nhật thông tin hay khi có khách đăng ký vé máy bay.
16 tblVisitorInbox Đối tượng Chứa các thông điệp hay thông báo của phía quản trị Website gửi cho phía khách viếng.
Thông báo về kết quả đăng ký phòng, đặt vé máy bay…
17 tblAdminInbox Đối tượng Chứa các thông điệp hay thông báo của các đối
105
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
tượng khác gửi cho phía quản trị Website.
18 tblCountries Tham số Danh sách các quốc gia.
19 tblProvinces Tham số Tỉnh, bang
20 tblRegions Tham số Các vùng trên thế giới
21 tblContinents Tham số Danh sách các lục địa
22 tblCities Tham số Danh sách các thành phố của các quốc gia.
23 tblErrorMsg Tham số Các thông điệp báo lỗi
24 tblCommonMsg Tham số Các thông điệp phổ biến
25 tblPayments Tham số Danh sách các hình thức thanh toán.
26 tblCurrencies Tham số Danh sách các loại tiền tệ hỗ trợ.
27 tblQuestions Tham số Danh sách các câu hỏi. Dùng trong quá trình đăng ký của người dùng, hỗ trợ khi quên mật khẩu
Bảng 3-1: Danh sách các thành phần của lược đồ dữ liệu
3.1.4 Danh sách các thuộc tính của từng thành phần:
3.1.4.1 Bảng tblHotels:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 HotelID Số 4 Mã khách sạn
2 LoginID Chuỗi 30 Tên đăng nhập
3 LoginPwd Chuỗi 30 Mật khẩu đăng nhập
4 QuestionID Số 4 Mã câu hỏi
5 Answer Chuỗi 50 Câu trả lời
6 HotelName Chuỗi 30 Tên khách sạn
106
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
7 ContactName Chuỗi 30 Tên người đại diện
8 ContactTitle Chuỗi 50 Chức vụ người đại diện
9 Address Chuỗi 50 Địa chỉ khách sạn
10 City Chuỗi 30 Tên thành phố
11 Province Chuỗi 30 Tỉnh, bang
12 CountryID Chuỗi 2 Mã quốc gia
13 PostalCode Chuỗi 10 Mã vùng
14 Phone Chuỗi 24 Điện thoại
15 Mobile Chuỗi 24 Điện thoại di động
16 Fax Chuỗi 24 Fax
17 HomePage Chuỗi 30 Website của khách sạn
18 Email Chuỗi 30 Email của người đại diện
19 Standard Chuỗi 15 Loại khách sạn
20 DateReg Ngày 8 Ngày đăng ký
21 LastLogin Ngày 8 Ngày đăng nhập cuối cùng
22 NumOfLogin Số 4 Số lần đăng nhập
23 NumOfRooms Số 4 Tổng số phòng
22 Active Bool 1 Kích hoạt
Bảng 3-2: Bảng dữ liệu tblHotels
3.1.4.2 Bảng tblAirplanes:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 AirplaneID Số 4 Mã hãng hàng không
2 LoginID Chuỗi 30 Tên đăng nhập
3 LoginPwd Chuỗi 30 Mật khẩu đăng nhập
107
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
4 QuestionID Số 4 Mã câu hỏi
5 Answer Chuỗi 50 Câu trả lời
6 AirplaneName Chuỗi 30 Tên hãng hàng không
7 ContactName Chuỗi 30 Tên người đại diện
8 ContactTitle Chuỗi 30 Chức vụ người đại diện
9 Address Chuỗi 50 Địa chỉ khách sạn
10 City Chuỗi 30 Tên thành phố
11 Province Chuỗi 30 Tỉnh, bang
12 CountryID Chuỗi 2 Mã quốc gia
13 PostalCode Chuỗi 10 Mã vùng
14 Phone Chuỗi 24 Điện thoại
15 Mobile Chuỗi 24 Điện thoại di động
16 Fax Chuỗi 24 Fax
17 HomePage Chuỗi 30 Website của hãng hàng không
18 Email Chuỗi 30 Email của người đại diện
19 DateReg Ngày 8 Ngày đăng ký
20 LastLogin Ngày 8 Ngày đăng nhập cuối cùng
21 NumOfLogin Số 4 Số lần đăng nhập
22 Active Bool 1 Kích hoạt
Bảng 3-3: Bảng dữ liệu tblAirplanes
3.1.4.3 Bảng tblVisitors:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 VisitorID Số 4 Mã khách viếng
108
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
2 LoginID Chuỗi 30 Tên đăng nhập
3 LoginPwd Chuỗi 30 Mật khẩu đăng nhập
4 QuestionID Số 4 Mã câu hỏi
5 Answer Chuỗi 50 Câu trả lời
6 Dear Chuỗi 5 Xưng hô
7 FirstName Chuỗi 30 First name
8 LastName Chuỗi 30 Last name
9 Address Chuỗi 50 Địa chỉ của khách viếng
10 City Chuỗi 30 Tên thành phố
11 Province Chuỗi 30 Tỉnh
12 CountryID Chuỗi 2 Mã quốc gia
13 PostalCode Chuỗi 10 Mã vùng
14 Phone Chuỗi 24 Điện thoại
15 Mobile Chuỗi 24 Điện thoại di động
16 Fax Chuỗi 24 Fax
17 Email Chuỗi 30 Email của khách viếng
18 DateReg Ngày 8 Ngày đăng ký
19 LastLogin Ngày 8 Ngày đăng nhập cuối cùng
20 NumOfLogin Số 4 Số lần đăng nhập
21 Active Bool 1 Kích hoạt
Bảng 3-4: Bảng dữ liệu tblVisitors
3.1.4.4 Bảng tblAdmin:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 AdminID Chuỗi 10 Mã của người quản trị
109
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
2 LoginID Chuỗi 30 Tên đăng nhập
3 LoginPwd Chuỗi 30 Mật khẩu đăng nhập
4 QuestionID Số 4 Mã câu hỏi
5 Answer Chuỗi 50 Câu trả lời
6 Dear Chuỗi 5 Xưng hô
7 FirstName Chuỗi 30 First name
8 LastName Chuỗi 30 Last name
9 Address Chuỗi 50 Địa chỉ
10 Phone Chuỗi 24 Điện thoại
11 Mobile Chuỗi 24 Điện thoại di động
12 Fax Chuỗi 24 Fax
13 Email Chuỗi 30 Email của người quản trị
14 DateReg Ngày 8 Ngày đăng ký
15 LastLogin Ngày 8 Ngày đăng nhập cuối cùng
16 NumOfLogin Số 4 Số lần đăng nhập
17 Active Bool 1 Kích hoạt
18 UserType Chuỗi 1 Loại người dùng
Bảng 3-5: Bảng dữ liệu tblAdmin
3.1.4.5 Bảng tblRoomInfo:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 HotelID Số 4 Mã khách sạn
2 RoomType Chuỗi 30 Loại phòng
3 NumOfRooms Số 4 Số lượng phòng
4 SingleRoom Số 8 Giá phòng đơn
110
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
5 DoubleRoom Số 8 Giá phòng đôi
6 AddGuest Số 8 Giá khi thêm khách
7 ExtraBed Số 8 Giá khi có giường phụ
7 Currency Chuỗi 10 Loại tiền tệ
8 Breakfast Bool 1 Phục vụ ăn sáng
9 Smoking Bool 1 Cho phép hút thuốc
10 OtherNotes Chuỗi 200 Các ghi chú bổ sung
Bảng 3-6: Bảng dữ liệu tblRoomInfo
3.1.4.6 Bảng tblFlightInfo:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 AirplaneID Số 4 Mã hãng hàng không
2 FlightName Chuỗi 50 Tên tuyến bay
3 TakeoffTime Ngày 8 Thời gian cất cánh
4 Departure Chuỗi 50 Nơi khởi hành
5 Destination Chuỗi 50 Nơi đến
6 Description Chuỗi 200 Mô tả
7 SpendTime Số 4 Khoảng thời gian dự kiến của chuyến bay
8 Oneway Số 8 Đơn giá đi một chiều
9 Roundtrip Số 8 Đơn giá đi và về
10 Currency Chuỗi 10 Đơn vị tiền tệ
11 Notes Chuỗi 200 Các ghi chú bổ sung
Bảng 3-7: Bảng dữ liệu tblFlightInfo
3.1.4.7 Bảng tblBookInfo:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
111
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
1 BookingID Số 4 Mã đặt phòng
2 VisitorID Số 4 Mã khách viếng
3 HotelType Chuỗi 15 Loại khách sạn
4 CheckInDate Ngày 8 Ngày đến
5 CheckOutDate Ngày 8 Ngày đi
6 CountryID Chuỗi 2 Mã quốc gia
7 Province Chuỗi 30 Tỉnh
8 City Chuỗi 30 Thành phố
9 GuestName Chuỗi 30 Tên khách ở (đại diện)
10 NumOfGuest Số 4 Số lượng khách
11 Status Chuỗi 10 Trạng thái của bảng đăng ký này
Bảng 3-8: Bảng dữ liệu tblBookInfo
3.1.4.8 Bảng tblBookDetail:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 BookingID Số 4 Mã đặt phòng
2 RoomType Chuỗi 30 Mã loại phòng
3 NumOfRoom Số 4 Số phòng của từng loại
Bảng 3-9: Bảng dữ liệu tblBookDetail
3.1.4.9 Bảng tblBookResult:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 BookingID Số 4 Mã đặt phòng
2 HotelID Số 4 Mã khách sạn
3 TotalCost Số 8 Tổng chi phí
4 PaymentID Chuỗi 2 Mã hình thức thanh toán
112
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
toán
5 Status Chuỗi 10 Trạng thái của bảng đăng ký này
Bảng 3-10: Bảng dữ liệu tblBookResult
3.1.4.10 Bảng tblBookTicket:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 BookTicketID Số 4 Mã đặt vé máy bay
2 VisitorID Số 4 Mã khách viếng
3 Departure Chuỗi 50 Nơi khởi hành
4 Destination Chuỗi 50 Nơi đến
5 TicketType Chuỗi 30 Loại vé máy bay
6 Roundtrip Bool 1 Có phải là vé khứ hồi
7 DateTakeoff Ngày 8 Ngày cất cánh
8 DateReturn Ngày 8 Ngày quay về
9 Passengers Số 4 Số hành khách đặt vé
10 Delivery Chuỗi 50 Địa chỉ phân phối vé
11 SpecialRequest Chuỗi 200 Các yêu cầu đặc biệt
12 Status Chuỗi 10 Trạng thái của bảng đăng ký này
Bảng 3-11: Bảng dữ liệu tblBookTicket
3.1.4.11 Bảng tblPassenger:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 BookTicketID Số 4 Mã đặt vé máy bay
2 PassengerID Số 4 Mã hành khách
3 PassengerType Chuỗi 10 Loại hành khách
113
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
4 PassengerName Chuỗi 50 Tên hành khách
Bảng 3-12: Bảng dữ liệu tblPassenger
3.1.4.12 Bảng tblFlightResult:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 BookTicketID Số 4 Mã đặt vé máy bay
2 AirplaneID Số 4 Mã hãng hàng không
3 FlightName Chuỗi 50 Tên tuyến bay
4 TakeoffTime Ngày 8 Thời gian khởi hành
5 TotalCost Số 8 Tổng chi phí
6 PaymentID Chuỗi 3 Mã hình thức thanh toán
7 Status Chuỗi 10 Trạng thái của bảng đăng ký hiện tại
Bảng 3-13: Bảng dữ liệu FlightResutl
3.1.4.13 Bảng tblComments:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 CommentID Số 4 Mã lời góp ý
2 Commentator Chuỗi 50 Tên người góp ý
3 Content Chuỗi 1000 Nội dung
4 DateRecv Ngày 8 Ngày nhận
5 Email Chuỗi 50 Email của người góp ý
Bảng 3-14: Bảng dữ liệu tblComments
3.1.4.14 Bảng tblHotelInbox:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 HotelID Số 4 Mã khách sạn
114
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
2 MessageID Số 4 Mã thông điệp
3 DateRecv Ngày 8 Ngày nhận thông điệp
4 SenderName Chuỗi 50 Tên người gửi
5 SenderEmail Chuỗi 50 Email của người gửi
6 Subject Chuỗi 100 Tiêu đề của thông điệp
7 Content Chuỗi 1000 Nội dung thông điệp
Bảng 3-15: Bảng dữ liệu tblHotelInbox
3.1.4.15 Bảng tblAirplaneInbox:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 AirplaneID Số 4 Mã hãng hàng không
2 MessageID Số 4 Mã thông điệp
3 DateRecv Ngày 8 Ngày nhận thông điệp
4 SenderName Chuỗi 50 Tên người gửi
5 SenderEmail Chuỗi 50 Email của người gửi
6 Subject Chuỗi 100 Tiêu đề của thông điệp
7 Content Chuỗi 1000 Nội dung thông điệp
Bảng 3-16: Bảng dữ liệu tblAirplaneInbox
3.1.4.16 Bảng tblVisitorInbox:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 VisitorID Số 4 Mã khách viếng
2 MessageID Số 4 Mã thông điệp
3 DateRecv Ngày 8 Ngày nhận thông điệp
4 SenderName Chuỗi 50 Tên người gửi
5 SenderEmail Chuỗi 50 Email của người gửi
115
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
6 Subject Chuỗi 100 Tiêu đề của thông điệp
7 Content Chuỗi 1000 Nội dung thông điệp
Bảng 3-17: Bảng dữ liệu tblVisitorInbox
3.1.4.17 Bảng tblAdminInbox:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 AdminID Số 4 Mã người quản trị
2 MessageID Số 4 Mã thông điệp
3 DateRecv Ngày 8 Ngày nhận thông điệp
4 SenderName Chuỗi 50 Tên người gửi
5 SenderEmail Chuỗi 50 Email của người gửi
6 Subject Chuỗi 100 Tiêu đề của thông điệp
7 Content Chuỗi 1000 Nội dung thông điệp
Bảng 3-18: Bảng dữ liệu tblAdminInbox
3.1.4.18 Bảng tblCountries:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 CountryID Số 4 Mã quốc gia
2 CountryName_EN Chuỗi 30 Tên theo tiếng Anh
3 CountryName_VN Chuỗi 30 Tên theo tiếng Việt
4 RegionID Chuỗi 5 Mã vùng trên thế giới
5 Supported Bool 1 Có hỗ trợ
Bảng 3-19: Bảng dữ liệu tblCountries
3.1.4.19 Bảng tblProvinces:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 ProvinceID Chuỗi 5 Mã tỉnh, bang
116
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
2 ProvinceName Chuỗi 30 Tên tỉnh, bang
3 CountryID Chuỗi 2 Mã quốc gia
Bảng 3-20: Bảng dữ liệu tblProvinces
3.1.4.20 Bảng tblRegions:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 RegionID Chuỗi 5 Mã vùng
2 RegionName_EN Chuỗi 30 Tên vùng tiếng Anh
3 RegionName_VN Chuỗi 30 Tên vùng tiếng Việt
3 ContinentID Chuỗi 2 Mã châu lục
Bảng 3-21: Bảng dữ liệu tblRegions
3.1.4.21 Bảng tblContinents:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 ContinentID Chuỗi 2 Mã châu lục
2 ContinentName_EN Chuỗi 20 Tên theo tiếng Anh
3 ContinentName_VN Chuỗi 20 Tên theo tiếng Việt
Bảng 3-22: Bảng dữ liệu tblContinents
3.1.4.22 Bảng tblCities:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 CityID Chuỗi 5 Mã thành phố
2 CityName Chuỗi 30 Tên thành phố
3 ProvinceID Chuỗi 5 Mã tỉnh, bang
4 CountryID Chuỗi 2 Mã quốc gia
5 Supported Bool 1 Có hỗ trợ
Bảng 3-23: Bảng dữ liệu tblCities
117
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
3.1.4.23 Bảng tblErrorMsg:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 ErrorID Số 4 Mã lỗi
2 Description_VN Chuỗi 255 Mô tả bằng tiếng Việt
3 Description_EN Chuỗi 255 Mô tả bằng tiếng Anh
Bảng 3-24: Bảng dữ liệu tblErrorMsg
3.1.4.24 Bảng tblCommonMsg:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 MessageID Số 4 Mã thông điệp
2 MsgDetail_VN Chuỗi 255 Mô tả bằng tiếng Việt
3 MsgDetail_EN Chuỗi 255 Mô tả bằng tiếng Anh
Bảng 3-25: Bảng dữ liệu tblCommonMsg
3.1.4.25 Bảng tblPayments:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 PaymentID Chuỗi 2 Mã hình thức thanh toán
2 Description_EN Chuỗi 30 Mô tả bằng tiếng Anh
3 Description_VN Chuỗi 30 Mô tả bằng tiếng Việt
Bảng 3-26: Bảng dữ liệu tblPayments
3.1.4.26 Bảng tblCurrencies:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 CurrencyID Chuỗi 3 Mã tiền tệ
2 Description_EN Chuỗi 20 Mô tả bằng tiếng Anh
3 Description_VN Chuỗi 20 Mô tả bằng tiếng Việt
Bảng 3-27: Bảng dữ liệu tblCurrencies
118
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
3.1.4.27 Bảng tblQuestions:
STT Thuộc tính Kiểu Kích thước Trị định sẳn Ghi chú
1 QuestionID Số 4 Mã câu hỏi
2 Question_EN Chuỗi 50 Câu hỏi tiếng Anh
3 Question_VN Chuỗi 50 Câu hỏi tiếng Việt
Bảng 3-28: Bảng dữ liệu tblQuestions
3.1.5 Danh sách các ràng buộc toàn vẹn:
3.1.5.1 Ràng buộc miền giá trị:
R1:
Phát biểu: Tổng số phòng của một khách sạn phải lớn hơn 0.
Nội dung: ∀h ∈ tblHotels, h.NumOfRooms > 0.
Bối cảnh: tblHotels.
Tầm ảnh hưởng:
Bối cảnh Thêm Xóa Sửa
tblHotels + - + (NumOfRooms)
R2:
Phát biểu: Tổng số khách đăng ký phòng phải lớn hơn hay bằng 1.
Nội dung: ∀b ∈ tblHotels, b.NumOfGuest ≥ 1.
Bối cảnh: tblBookInfo.
Tầm ảnh hưởng:
Bối cảnh Thêm Xóa Sửa
tblBookInfo + - + (NumOfGuest)
R3:
119
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Phát biểu: Số hành khách đặt mua vé phải lớn hơn hay bằng 1.
Nội dung: ∀b ∈ tblBookTicket, b.Passengers ≥ 1.
Bối cảnh: tblBookTicket.
Tầm ảnh hưởng:
Bối cảnh Thêm Xóa Sửa
tblBookTicket + - + (Passengers)
3.1.5.2 Ràng buộc liên bộ:
R1:
Phát biểu: Tên đăng nhập là duy nhất.
Nội dung:
∀a1 ∈ tblAdmin, !∃a2 ∈ tblAdmin : a1.LoginID = a2.LoginID.
∀r1 ∈ tblAirplanes, !∃r2 ∈ tblAirplanes : r1.LoginID =
r2.LoginID.
∀h1 ∈ tblHotels, !∃h2 ∈ tblHotels : h1.LoginID = h2.LoginID.
∀v1 ∈ tblVisitors, !∃v2 ∈ tblVisitors : v1.LoginID = v2.LoginID.
Bối cảnh: tblAdmin, tblAirplanes, tblHotels, tblVisitors.
Tầm ảnh hưởng:
Bối cảnh Thêm Xóa Sửa
tblAdmin + - + (LoginID)
tblAirplanes + - + (LoginID)
tblHotels + - + (LoginID)
tblVisitors + - + (LoginID)
120
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
3.1.5.3 Ràng buộc liên thuộc tính:
R1:
Phát biểu: Ngày đến ở phải nhỏ hơn hoặc bằng ngày đi.
Nội dung: ∀b ∈ tblBookInfo, b.CheckInDate ≤ b.CheckOutDate.
Bối cảnh: tblBookInfo.
Tầm ảnh hưởng:
Bối cảnh Thêm Xóa Sửa
tblBookInfo + - + (CheckInDate, CheckOutDate)
R2:
Phát biểu: Ngày khởi hành phải nhỏ hơn hoặc bằng ngày trở về.
Nội dung: ∀b ∈ tblBookTicket, b.DateTakeoff ≤ b.DateReturn.
Bối cảnh: tblBookTicket.
Tầm ảnh hưởng:
Bối cảnh Thêm Xóa Sửa
tblBookTicket + - + (DateTakeoff, DateReturn)
R3:
Phát biểu: Ngày đăng ký phải luôn nhỏ hơn hoặc bằng ngày đăng
nhập cuối cùng.
Nội dung:
∀d1 ∈ tblAdmin, d1.DateReg ≤ d1.LastLogin.
∀d2 ∈ tblAirplanes, d2.DateReg ≤ d2.LastLogin.
∀d3 ∈ tblHotels, d3.DateReg ≤ d3.LastLogin.
∀d4 ∈ tblVisitors, d4.DateReg ≤ d4.LastLogin.s
Bối cảnh: tblAdmin, tblAirplanes, tblHotels, tblVisitors.
121
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Tầm ảnh hưởng:
Bối cảnh Thêm Xóa Sửa
tblAdmin + - + (DateReg, LastLogin)
tblAirplanes + - + (DateReg, LastLogin)
tblHotels + - + (DateReg, LastLogin)
tblVisitors + - + (DateReg, LastLogin)
3.1.5.4 Ràng buộc khóa ngoại:
R1:
Phát biểu: Mỗi thông điệp đều phải thuộc một người dùng nào đó.
Nội dung: ∀a ∈ tblAdminInbox, ∃b ∈ tblAdmin | b.AdminID =
a.AdminID.
Bối cảnh: tblAdminInbox, tblAdmin.
Tầm ảnh hưởng:
Bối cảnh Thêm Xóa Sửa
tblAdminInbox + - + (AdminID)
tblAdmin - + + (AdminID)
3.1.5.5 Ràng buộc liên bộ, liên quan hệ:
R1:
Phát biểu: Mỗi khách viếng muốn đặt phòng khách sạn phải có
thông tin cá nhân trước (đăng ký làm thành viên).
Nội dung: ∀b ∈ tblBookInfo, ∃v ∈ tblVisitors | b.VisitorID =
v.VisitorID.
Bối cảnh: tblBookInfo, tblVisitors.
122
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Tầm ảnh hưởng:
Bối cảnh Thêm Xóa Sửa
tblBookInfo + - + (VisitorID)
tblVisitor - + + (VisitorID)
R2:
Phát biểu: Mỗi khách viếng muốn đặt vé máy bay phải có thông
tin cá nhân trước (đăng ký làm thành viên).
Nội dung: ∀b ∈ tblBookTicket, ∃v ∈ tblVisitors | b.VisitorID =
v.VisitorID.
Bối cảnh: tblBookTicket, tblVisitors.
Tầm ảnh hưởng:
Bối cảnh Thêm Xóa Sửa
tblBookTicket + - + (VisitorID)
tblVisitor - + + (VisitorID)
3.1.5.6 Ràng buộc tổng hợp:
R1:
Phát biểu: Tổng số hành khách của một bảng đặt vé máy bay phải
bằng với tổng số hành khách đã đăng ký.
Nội dung:
∀b ∈ tblBookTicket
SoHanhKhach = 0;
∀p ∈ tblPassenger
if (p.BookTicketID = b.BookTicketID) then
SoHanhKhach += 1;
123
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Cuối ∀p
SoHanhKhach = b.NumOfGuest
Cuối ∀b.
Bối cảnh:
Tầm ảnh hưởng:
Bối cảnh Thêm Xóa Sửa
tblBookTicket + - + (BookTickID, NumOfGuest)
tblPassenger + + +
3.2 Thiết kế kiến trúc: Xây dựng cấu trúc cây phân nhóm:
Hình 3-2: Cấu trúc cây phân nhóm - Cấp 1
124
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Hình 3-3: Cấu trúc cây phân nhóm - Cấp 2: Admin
Hình 3-4: Cấu trúc cây phân nhóm - Cấp 2: Hãng hàng không
Hình 3-5: Cấu trúc cây phân nhóm - Cấp 2: Khách sạn
125
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Hình 3-6: Cấu trúc cây phân nhóm - Cấp 2: Khách viếng
Bảng tổng hợp nhóm:
STT Nhóm Xử lý Bảng dữ liệu
1 Quản trị
Xem danh sách khách sạn
Xem danh sách hãng hàng không.
Xem danh sách khách viếng.
Xeam danh sách người dùng.
Xem thông tin chi tiết của một khách sạn.
Xem thông tin chi tiết của một hãng hàng không.
Xem thông tin chi tiết của một khách viếng.
Xem thông tin chi tiết của một người dùng.
Tạo người dùng mới.
Xóa một khách viếng.
Xóa một khách sạn.
tblHotels
tblAirplanes
tblVisitors
tblAdmin
tblBookInfo
tblBookTicket
tblAdminInbox
tblBookDetail
tblBookResult
tblFlightInfo
tblFlightResult
126
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Xóa một hãng hàng không.
Xóa một người dùng.
Quản lý thông tin đặt phòng của khách viếng.
Quản lý thông tin đặt vé máy bay của khách viếng.
Quản lý thông điệp.
2 Khách sạn
Nhập mô tả khách sạn.
Điều chỉnh thông tin.
Quản lý thông điệp
tblHotels
tblRoomInfo
tblHotelInbox
3 Hãng hàng không
Nhập mô tả các tuyến bay.
Điều chỉnh thông tin.
Quản lý thông điệp
tbAirplanes
tblFlightInfo
tblAirplaneInbox
4 Khách viếng
Đặt phòng khách sạn.
Đặt vé máy bay.
Tìm kiếm khách sạn.
Xem thông tin khách sạn.
Điều chỉnh thông tin.
Quản lý thông điệp.
Tìm kiếm hãng hàng không.
Xem thông tin các tuyến bay.
tblVisitors
tblBookInfo
tbBookDetail
tblBookResult
tblBookTicket
tblFlightResult
tblHotels
tblRoomInfo
tblFlightInfo
Bảng 3-29: Bảng tổng hợp nhóm
3.3 Thiết kế chức năng: 3.3.1 Bảng mô tả các hàm và thủ tục:
127
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Mã số: F01
Tên: Register (Đăng ký thành viên)
Kiểu trả về: Bool
Tham số:
STT Tên Tham số Kiểu DL In/Out
1 connString Connection In
2 Visitor tblVisitors In
3 TableName String Out
Thuật giải:
Tạo Connection đến cơ sở dữ liệu
Tạo chuỗi truy xuất dữ liệu.
Kiểm tra các thông tin của đối số Visitor.
Tạo ra một mã khách viếng ngẫu nhiên và kiêm tra với cơ sở dữ liệu tồn tại.
Tạo một Transaction để thực hiện thao tác Insert.
Thông báo kết quả thành công hay thất bại vào giá trị trả về.
128
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
3.3.2 Bảng mô tả module:
Tên nhóm/Module: Database Access
Mô tả: Truy xuất dữ liệu
Danh sách thủ tục, hàm:
STT Tên Thủ tục, hàm Mô tả Kiểu DL trả về
Phạm vi
1 CheckUser Kiểm tra thông tin người dùng khi mở một trang web.
Bool Public
2 GetTable Lấy về một bảng dữ liệu với đối số truyền vào là tên bảng.
DataTable Public
3 RunSelect Thực thi một câu lệnh Select. Giá trị trả về là một bảng.
DataTable Public
4 RunUpdate Thực thi một câu lệnh Update. Giá trị trả về là số dòng được update.
Int Public
5 RunDelete Thực thi một câu lệnh Delete. Giá trị trả về là số dòng được delete.
Int Public
6 AddVisitor Thêm một khách viếng vào CSDL.
Int Public
7 AddAdmin Thêm một người sử dụng vào CSDL.
Int Public
8 AddHotel Thêm một khách sạn vào CSDL.
Int Public
9 AddAirplane Thêm một hãng hàng không vào CSDL.
Int Public
10 AddRoomInfo Thêm thông tin mô tả các loại phòng của khách sạn.
Int Public
11 AddFlightInfo Thêm thông tin mô tả các tuyến bay của các hãng hàng không.
Int Public
129
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
12 AddBookRoom Thêm bảng đăng ký đặt phòng khách sạn.
Int Public
13 AddBookTicket Thêm bảng đăng ký đặt vé máy bay.
Int Public
14 AddMessage Thêm một thông điệp trao đổi thông tin vào cơ sở dữ liệu của từng đối tượng.
Int Public
15 DelAdmin Xóa một người sử dụng. Int Public
16 DelVisitor Xóa một khách viếng. Int Public
17 DelHotel Xóa một khách sạn. Int Public
18 DelAirplane Xóa một hãng hàng không Int Public
Bảng 3-30: Bảng mô tả Module
3.4 Thiết kế giao diện: Dưới đây là một số hình ảnh về thiết kế giao diện của ứng dụng.
130
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Hình 3-7: Trang chủ
131
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Hình 3-8: Đăng ký thành viên
132
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Hình 3-9: Đăng nhập
133
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Hình 3-10: Mô tả khách sạn
134
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Hình 3-11: Mô tả hãng hàng không
135
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Hình 3-12: Xem danh sách khách viếng
136
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Hình 3-13: Thêm người dùng
137
KHOA CNTT –
ĐH KHTN
Chương 3. Thiết kế
Hình 3-14: Quản lý
138
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Chương 4. CÀI ĐẶT VÀ TRIỂN KHAI 4.1 Cài đặt: 4.1.1 Lựa chọn môi trường cài đặt:
Hiện tại có rất nhiều công cụ hỗ trợ cho việc xây dựng một ứng dụng
Web chẳng hạn như: MS Frontpage, Macromedia Dreamweaver MX, Xara
Webstyle… Các bộ công cụ này thường được tích hợp sẵn các templates cho
phép tạo ra một trang web nhanh chóng và dễ dàng. Tuy nhiên, một trong các
công nghệ tiên tiến và mạnh mẽ nhất được nhắc đến nhiều nhất hiện nay phải
kể đến là ASP.NET dựa trên nền tảng công nghệ .NET của Microsoft. Công
nghệ ASP.NET mang đến cho các trang web được tạo ra từ nó có thể chạy
nhanh hơn do dùng cơ chế chỉ biên dịch ra tập tin DLL lần đầu tiên triệu gọi
(khác với ASP 3.0 mỗi lần triệu gọi là mỗi lần biên dịch trang ASP); ngoài ra
ASP.NET còn hỗ trợ nhiều công cụ lập trình và cho phép sử dụng các tài
nguyên đang sử dụng, tự động dò tìm và khắc phục lỗi phát sinh (sử dụng cấu
trúc try… catch), quản lý trạng thái giao dịch (Session State) trên nhiều
Server, sử dụng bộ nhớ truy cập nhanh, sử dụng ngôn ngữ biên dịch trang
ASP.NET thay vì thông dịch như đã sử dụng trong ASP 3.0, xây dựng và
triển khai các ứng dụng Web services dễ dàng… Với các đặc điểm nêu trên,
chúng em quyết định chọn ASP.NET làm môi trường để xây dựng ứng dụng
và quản lý cơ sở dữ liệu sẽ dùng SQL Server 2000.
4.1.2 Lựa chọn mô hình cài đặt: Một trong những mô hình cài đặt có thể được lựa chọn đầu tiên để cài
đặt các ứng dụng ngày nay là kiến trúc đa tầng n-tier. Mô hình của kiến trúc
n-tier (với 3-tier) được mô tả như hình sau:
139
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Hình 4-1: Kiến trúc n-tier
Các thuận lợi mà kiến trúc này có thể mang lại là: Việc thay đổi các xử lý ở tầng truy xuất dữ liệu sẽ không ảnh hưởng
và làm thay đổi tầng giao diện người dùng.
Tất cả các thủ tục truy xuất dữ liệu sẽ được đóng gói vào các đối
tượng thay vì dùng các lời gọi hàm.
SQL sẽ được loại trừ ra khỏi code phía client. Client chỉ còn quan
tâm đến các phương thức và các thuộc tính.
Tên của các bảng và cột sẽ được loại trừ ra khỏi code phía client.
Các datasets được định kiểu có thể mô tả các bảng và cột dữ liệu
như là các thuộc tính, cung cấp một danh sách IntellliSense.
140
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Code phía client sẽ không quan tâm đến việc dữ liệu có từ đâu. Nó
chỉ quan tâm rằng nó có thể nhận và điều chỉnh dữ liệu trong các đối
tượng và đối tượng này sẽ quan tâm đến các chi tiết.
Code phía client sẽ được đơn giản hóa, thay vì sử dụng nhiều hàm
(functions) thì các ứng dụng nên sử dụng các đối tượng với các
thuộc tính (properties) và phương thức (methods).
Việc tạo và sử dụng các đối tượng sẽ dễ dàng hơn là dùng các lời
gọi hàm.
Việc thêm và thay đổi các chức năng của ứng dụng cũng sẽ dễ dàng
hơn do không làm thay đổi code phía client.
Mặc dù có những thuận lợi như vậy, kiến trúc n-tier cũng gặp phải một
số bất lợi như sau:
Phải tạo nhiều classes hơn, điều này có thể sẽ ảnh hưởng đến vấn đề
bảo trì và vấn đề hiệu suất vì nó sẽ mất thời gian để tạo một class
mới vào thời điểm run time.
N-tier sẽ không làm việc tốt khi chúng ta không biết cấu trúc của
các bảng mà dữ liệu sẽ được nhận từ nó.
Tóm lại, mặc dù có một vài bất lợi trong kiến trúc n-tier nhưng những lợi
thế do nó mang lại lớn hơn nhiều, và vì vậy ứng dụng này sẽ cố gắng xây
dựng theo tinh thần của kiến trúc n-tier (cụ thể là 3-tier).
4.1.3 Xây dựng các lớp xử lý chính: Với mỗi tầng trong kiến trúc 3-tier sẽ có các lớp đối tượng riêng chịu các
trách nhiệm tương ứng khác nhau. Ở tầng giao diện người dùng, các trang
141
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
.aspx với các web forms sẽ trình bày nội dung của website cho phía client.
Tầng giữa là các xử lý trung gian liên kết hai tầng còn lại (tầng giao diện và
tầng dữ liệu). Và tầng dữ liệu sẽ đảm bảo cho vấn đề truy xuất và cập nhật dữ
liệu. Sẽ có các lớp đối tượng riêng biệt cho từng nhiệm vụ của các tầng nêu
trên.
Trong ứng dụng này mỗi đối tượng phục vụ của hệ thống (đã nêu trong
Chương 2) sẽ được đóng gói trong các namespace khác nhau, và như vậy ở
tầng giao diện và xử lý các đối tượng này sẽ được xây dựng độc lập. Trong
tầng dữ liệu sẽ tập trung xử lý cho tất cả các yêu cầu truy xuất dữ liệu của tất
cả các đối tượng. Do đó ta có thể thấy sự tách biệt khá rõ ràng trong việc xây
dựng các lớp xử lý của từng tầng theo kiến trúc 3-tier.
142
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Dưới đây là danh sách các lớp xử lý chính đã được xây dựng:
STT Tên lớp Namespace Mô tả Các xử lý chính
1 DetailAirplane Admin Quản lý thông tin chi tiết của các hãng hàng không.
Xem thông tin chi tiết.
Kích hoạt một hãng hàng không (nếu đăng ký mới)
Xóa một hãng hàng không.
2 DetailHotel Admin Quản lý thông tin chi tiết của các khách sạn.
Xem thông tin chi tiết.
Kích hoạt một khách sạn (nếu đăng ký mới).
Xóa một khách sạn.
3 DetailVisitor Admin Quản lý thông tin chi tiết của các khách viếng.
Xem thông tin chi tiết.
Kích hoạt một khách viếng (nếu đăng ký mới).
Xóa một khách viếng.
4 DetailUser Admin Quản lý thông tin chi tiết của người sử dụng (admin).
Xem thông tin chi tiết.
Kích hoạt một người dùng
Xóa một người dùng.
5 ListAirplaness Admin Liệt kê danh sách hãng hàng không.
Khởi tạo danh sách.
Hiển thị danh sách.
Chọn một item trong danh sách để xem chi tiết.
Xóa một item trong danh sách khỏi cơ sở dữ liệu.
6 ListHotels Admin Liệt kê danh sách khách sạn.
Khởi tạo danh sách.
Hiển thị danh sách.
Chọn một item trong danh sách để xem chi tiết.
Xóa một item trong danh sách khỏi cơ sở dữ liệu.
7 ListVisitors Admin Liệt kê danh sách các khách viếng.
Khởi tạo danh sách.
Hiển thị danh sách.
Chọn một item trong danh sách
143
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
để xem chi tiết.
Xóa một item trong danh sách khỏi cơ sở dữ liệu.
8 ListUsers Admin Liệt kê danh sách người dùng (vai trò admin).
Khởi tạo danh sách.
Hiển thị danh sách.
Chọn một item trong danh sách để xem chi tiết.
Xóa một item trong danh sách khỏi cơ sở dữ liệu.
9 Login Admin Đăng nhập vào hệ thống với vai trò admin.
Xử lý đăng nhập.
Cho phép tìm password khi quên password.
10 ManageBookRoom Admin Quản lý thông tin đặt phòng khách sạn của khách viếng.
Xem danh sách đặt phòng mới nhất (tất cả, thành công, thất bại).
Xử lý thông tin đặt phòng.
11 ManageBookTicket Admin Quản lý thông tin đặt vé máy bay của khách viếng.
Xem danh sách đặt vé máy bay mới nhất (tất cả, thành công, thất bại).
Xử lý thông tin đặt vé.
12 NewUser Admin Thêm người sử dụng mới vào cơ sở dữ liệu.
Thêm người sử dụng vào cơ sở dữ liệu.
13 SendMessage Admin Gửi thông điệp đến các đối tượng
Gửi thông điệp.
14 ShowMessage Admin Xem nội dung của thông điệp.
Xem nội dung của thông điệp.
Xóa thông điệp.
15 Register Airplane Hãng hàng không đăng ký làm nhà cung cấp dịch vụ.
Đăng ký.
16 Login Airplane Hãng hàng không đăng nhập vào hệ thống.
Kiểm tra thông tin đăng nhập.
Tìm password khi quên password.
17 Register Hotel Khách sạn đăng ký làm nhà cung
Đăng ký.
144
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
cấp dịch vụ.
18 Login Hotel Khách sạn đăng nhập vào hệ thống.
Kiểm tra thông tin đăng nhập.
Tìm password khi quên password.
19 Booking Visitor Cho phép đặt phòng khách sạn
Đặt phòng.
20 FlightTicket Visitor Cho phép đặt vé máy bay.
Đặt vé máy bay.
21 Login Visitor Khách viếng đăng nhập vào hệ thống.
Kiểm tra thông tin đăng nhập.
Tìm password khi quên password.
22 ListHotels Visitor Liệt kê danh sách các khách sạn.
Xem danh sách khách sạn.
23 Regiser Visitor Khách viếng đăng ký làm thành viên.
Đăng ký.
24 Search Visitor Tìm kiếm các khách sạn theo các tiêu chí.
Tìm kiếm.
Hiển thị danh sách.
Chọn một item.
25 DBAdmin DataServices Truy xuất cơ sở dữ liệu của Admin
26 DBAirplane DataServices Truy xuất cơ sở dữ liệu của Hãng hàng không.
27 DBHotel DataServices Truy xuất cơ sở dữ liệu của khách sạn.
28 DBVisitor DataServices Truye xuất cơ sở dữ liệu của khách viếng.
29 DBCommon DataServices Truy xuất các cơ sở dữ liệu chung và các thủ tục xử lý khác liên quan đến CSDL.
Thêm người sử dụng.
Thêm khách sạn.
Thêm khách viếng.
Thêm hãng hàng không.
145
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Kiểm tra thông tin người dùng hiện hành.
Lấy về bảng dữ liệu.
Các xử lý cập nhật CSDL.
Các thủ tục thực thi câu lệnh SQL.
…
Bảng 4-1: Danh sách các lớp xử lý chính
Và dưới đây là danh sách các lớp đóng vai trò như các bảng dữ liệu được
đóng gói vào các lớp đối tượng.
STT Tên lớp Namespace Mô tả
1 tblAdmin DataServices Tương ứng với bảng tblAdmin trong cơ sở dữ liệu.
2 tblAdminInbox DataServices Tương ứng với bảng tblAdminInbox trong cơ sở dữ liệu.
3 tblAirplanes DataServices Tương ứng với bảng tblAirplanes trong cơ sở dữ liệu.
4 tblAirplaneInbox DataServices Tương ứng với bảng tblAirplaneInbox trong cơ sở dữ liệu.
5 tblBookDetail DataServices Tương ứng với bảng tblBookDetail trong cơ sở dữ liệu.
6 tblBookInfo DataServices Tương ứng với bảng tblBookInfo trong cơ sở dữ liệu.
7 tblBookResult DataServices Tương ứng với bảng tblBookResult trong cơ sở dữ liệu.
8 tblBookTicket DataServices Tương ứng với bảng tblBookTicket trong cơ sở dữ liệu.
9 tblComments DataServices Tương ứng với bảng tblComments trong cơ sở dữ liệu.
10 tblCountries DataServices Tương ứng với bảng tblCountries trong cơ sở dữ liệu.
11 tblCurrencies DataServices Tương ứng với bảng tblCurrencies trong cơ sở dữ liệu.
12 tblFlightInfo DataServices Tương ứng với bảng tblFlightInfo trong cơ sở dữ liệu.
13 tblFlightResult DataServices Tương ứng với bảng tblFlightResult trong cơ sở dữ liệu.
14 tblHotels DataServices Tương ứng với bảng tblHotels trong cơ sở dữ liệu.
15 tblHotelInbox DataServices Tương ứng với bảng tblHotelInbox trong cơ sở dữ liệu.
146
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
16 tblPassenger DataServices Tương ứng với bảng tblPassenger trong cơ sở dữ liệu.
17 tblPayments DataServices Tương ứng với bảng tblPayments trong cơ sở dữ liệu.
18 tblQuestions DataServices Tương ứng với bảng tblQuestions trong cơ sở dữ liệu.
19 tblRoomInfo DataServices Tương ứng với bảng tblRoomInfo trong cơ sở dữ liệu.
20 tblVisitors DataServices Tương ứng với bảng tblVisitor trong cơ sở dữ liệu.
21 tblVisitorInbox DataServices Tương ứng với bảng tblVisitorInbox trong cơ sở dữ liệu.
Bảng 4-2: Danh sách các lớp đối tượng dữ liệu
4.1.4 Cài đặt các hàm xử lý chủ yếu: Phần này trình bày về cách cài đặt các hàm xử lý chủ yếu trong ứng
dụng. Hầu hết đều được thể hiện dưới dạng thuật giải chứ không trình bày chi
tiết cài đặt.
4.1.4.1 Thủ tục kiểm tra thông tin người dùng:
Tên phương thức: CheckUser(int UserID, string UserType)
Giá trị trả về: Bool
Mô tả: Kiểm tra người dùng trong Session hiện tại có phải đã đăng
nhập vào hệ thống đúng với chức năng và quyền hạn truy cập một
trang nào đó hay không.
Thuật giải:
Kiểm tra UserType
Nếu (UserType = “Admin”)
Truy xuất cơ sở dữ liệu Admin
Lấy về danh sách AdminID
So sánh UserID với các AdminID
Nếu tồn tại một AdminID = UserID
147
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Thì giá trị trả về = True
Ngược lại giá trị trả về = False
Nếu (UserType = “Visitor”)
Truy xuất cơ sở dữ liệu Visitors
Lấy về danh sách VisitorID
So sánh UserID với các VisitorID
Nếu tồn tại một VisitorID = UserID
Thì giá trị trả về = True
Ngược lại giá trị trả về = False
Nếu (UserType = “Hotel”)
Truy xuất cơ sở dữ liệu Hotels
Lấy về danh sách HotelID
So sánh UserID với các HotelID
Nếu tồn tại một HotelID = UserID
Thì giá trị trả về = True
Ngược lại giá trị trả về = False
Nếu (UserType = “Airplane”)
Truy xuất cơ sở dữ liệu Airplanes
Lấy về danh sách AirplaneID
So sánh UserID với các AirplaneID
Nếu tồn tại một AirplaneID = UserID
Thì giá trị trả về = True
Ngược lại giá trị trả về = False.
148
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
4.1.4.2 Thủ tục thêm người dùng:
Tên phương thức: AddUser(ConnectionString conn, tblAdmin
admin).
Giá trị trả về: Int
Mô tả: Thêm một người dùng vào cơ sở dữ liệu.
Thuật giải:
1. Tạo một UserID cho đối tượng mới một cách ngẫu nhiên và
kiểm tra với các đối tượng đang có.
2. Mở kết nối đến cơ sở dữ liệu.
3. Tạo mới một Transaction.
4. Tạo câu lệnh SQL.
5. Thực thi câu lệnh SQL.
6. Kết thúc Transaction.
7. Đóng kết nối.
8. Kết quả trả về.
Lưu ý: Thủ tục thêm các đối tượng khác như Visitor, Hotel, Airplane tương
tự.
4.1.4.3 Thủ tục xóa người dùng:
Tên phương thức: DelUser(ConnectionString conn, int AdminID)
Giá trị trả về: Int
Mô tả: Xóa một người dùng khỏi cơ sở dữ liệu.
Thuật giải:
149
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
1. Mở kết nối đến cơ sở dữ liệu.
2. Tạo mới một Transaction.
3. Tạo câu lệnh SQL thực hiện việc Delete.
4. Thực thi câu lệnh SQL.
5. Kết thúc Transaction.
6. Đóng kết nối.
7. Kết quả trả về.
Lưu ý: Các thủ tục xóa các đối tượng khác tương tự.
4.1.4.4 Thủ tục thực thi câu lệnh SQL:
Tên phương thức: RunCommand(ConnectionString conn, string
commandString, string TableName)
Giá trị trả về: Int
Mô tả: Thực thi một câu lệnh SQL (Select).
Thuật giải:
1. Mở kết nối đến cơ sở dữ liệu.
2. Tạo một đối tượng Command thực hiện quá trình Select.
3. Thực thi câu lệnh trên.
4. Đóng kết nối.
Lưu ý: Các thủ tục thực thi câu lệnh Update, Delete tương tự.
4.1.4.5 Thủ tục đăng nhập của Admin:
Tên phương thức: Login(string UserID, string Password)
Giá trị trả về: Bool
150
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Mô tả: Kiểm tra thông tin đăng nhập và thực hiện đăng nhập cho
người dùng.
Thuật giải:
1. Kết nối đến cơ sở dữ liệu.
2. Truy xuất bảng Admin để lấy về danh sách các LoginID và
Password.
3. Kiểm tra thông tin đăng nhập (LoginID và Password) với thông
tin trong bảng kết quả trên.
4. Nếu tìm thấy thì cho kết quả đăng nhập thành công.
5. Ngược lại, đăng nhập thất bại.
Lưu ý: Các thủ tục đăng nhập của các đối tượng khác tương tự.
4.1.4.6 Thủ tục đặt phòng khách sạn:
Tên phương thức: BookRoom(int VisitorID, int HotelID,…)
Giá trị trả về: Int
Mô tả: Khách viếng sau khi điền đầy đủ thông tin vào form đặt
phòng khách sạn thì sẽ gọi thủ tục này để thực hiện quá trình đặt
phòng.
Thuật giải:
1. Kết nối đến cơ sở dữ liệu.
2. Tạo một bảng chứa các thông tin đăng ký.
3. Tạo mới một Transaction.
4. Tạo câu lệnh SQL để thêm các thông tin đăng ký.
5. Thêm các tham số cho câu lệnh SQL.
151
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
6. Thực thi câu lệnh SQL để thực hiện quá trình đăng ký.
7. Kết thúc Transaction.
8. Đóng kết nối.
9. Thông báo kết quả đăng ký.
4.1.4.7 Thủ tục đặt vé máy bay:
Tên phương thức: BookTicket(int VisitorID, int AirplaneID, string
TicketType, int NumOfPassenger,…)
Giá trị trả về: Int
Mô tả: Khách viếng sau khi điền đầy đủ thông tin vào form đặt vé
máy bay thì sẽ gọi thủ tục này để thực hiện quá trình đặt vé.
Thuật giải:
1. Kết nối đến cơ sở dữ liệu.
2. Tạo một bảng chứa các thông tin đăng ký.
3. Tạo mới một Transaction.
4. Tạo câu lệnh SQL để thêm các thông tin đăng ký.
5. Thêm các tham số cho câu lệnh SQL.
6. Thực thi câu lệnh SQL để thực hiện quá trình đăng ký.
7. Kết thúc Transaction.
8. Đóng kết nối.
9. Thông báo kết quả đăng ký.
4.1.4.8 Thủ tục tìm kiếm khách sạn:
Tên phương thức: SearchHotel(string Standard, string City, string
Country)
152
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Giá trị trả về: DataTable
Mô tả: Tìm kiếm các khách sạn thỏa mãn các điều kiện đưa ra. Kết
quả tìm kiếm là một bảng chứa danh sách các khách sạn tìm thấy.
Thuật giải:
1. Kết nối đến cơ sở dữ liệu.
2. Tạo câu lệnh SQL để lấy về bảng dữ liệu chứa các khách sạn
theo các tiêu chí: Loại khách sạn, Thành phố, Quốc gia).
3. Thêm các tham số cho câu lệnh SQL.
4. Truy xuất cơ sở dữ liệu lấy về bảng dữ liệu theo câu lệnh SQL
trên.
5. Đóng kết nối.
6. Trả về kết quả tìm kiếm.
4.1.5 Tiếp cận với công nghệ lập trình Web mới – ASP.NET: Ghi chú: Những phần trình bày sau đây được tham khảo trong các
tài liệu sau:
1. .NET Framework SDK Documentation: Phần Building
Applications Creating ASP.NET Web Applications.
2. Phạm Hữu Khang (Chủ biên), Xây dựng và triển khai ứng dụng
Thương Mại Điện Tử - Tập 2: Với công cụ ASP.NET, Visual
Basic.NET, SQL Server, NXB Thống Kê, 2003. (Các chương 1,
19, 20, 22).
4.1.5.1 Giới thiệu ASP.NET:
ASP.NET là một platform phát triển các ứng dụng Web hợp nhất
cung cấp các dịch vụ cần thiết cho việc xây dựng các ứng dụng enterprise-
153
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
class Web. ASP.NET được thiết kế tương thích với các phiên bản ASP
trước đó, cho nên chúng ta có thể triển khai các ứng dụng phát triển bằng
ASP.NET chung với các ứng dụng ASP 3.0 trên cùng một máy chủ
Windows 200 mà không cần thay đổi cấu hình của ứng dụng ASP.
ASP.NET được biên dịch, dựa trên môi trường .NET; cho phép tạo
ra các ứng dụng trong bất kỳ ngôn ngữ lập trình nào tương thích với .NET
chẳng hạn như: C#, Visual Basic.NET, và Jscript.NET. Ngoài ra, toàn bộ
.NET Framework sẵn sàng cho bất kỳ ứng dụng ASP.NET nào, các nhà
phát triển có thể có được các lợi ích từ những kỹ thuật sau bao gồm:
managed common language runtime environment, an toàn kiểu v.v…
ASP.NET được thiết kế tương tự như các trình soạn thảo HTML với
WYSIWYG và các công cụ lập trình khác, bao gồm Microsoft Visual
Studio.NET. Không chỉ là cho việc phát triển Web dễ dàng hơn mà còn
cung cấp tất cả các lợi ích mà các công cụ này mang lại, bao gồm một
GUI cho phép các nhà phát triển có thể thực hiện việc kéo-thả các controls
vào trang Web và sự hỗ trợ debug được tích hợp đầy đủ.
Các nhà phát triển có thể sử dụng Web Forms hoặc XML Web
Services khi tạo một ứng dụng Web hoặc kết hợp chúng lại theo bất kỳ
cách nào thấy hợp lý nhất.
Một số đặc tính của ASP.NET: Độc lập ngôn ngữ: ASP.NET cho phép bạn biên dịch không phụ
thuộc ngôn ngữ, thực hiện tối ưu việc kết hợp các ngôn ngữ khác
nhau. Chúng ta có thể sử dụng VB.NET, C# hay kể cả C++ để xây
dựng trang ASP.NET.
Dễ phát triển: ASP.NET cho phép khai báo và viết mã đơn giản.
154
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Tách mã và nội dung thành hai phần khác nhau: Sử dụng trang Code
Behide (.vb, .cs) chứa mã và trang .aspx chứa giao diện người dùng.
Tính mềm dẻo và khả năng nâng cấp.
Hỗ trợ nhiều trình khách.
Các Web Form Controls ngoài việc có thể xuất mã trên trình duyệt
còn cho phép xuất ra tất cả các điều khiển của các Platform khác
như: Wireless phone, palm, pilots, pager…
Xử lý phía trình chủ sử dụng phát biểu Runat=”server”.
Thay vì sử dụng mô hình tích hợp DLL, COM, DCOM trước đây,
với công nghệ ASP.NET ta có thể sử dụng dịch vụ đơn giản hơn đó
là Web Services.
4.1.5.2 Các yêu cầu phần cứng và phần mềm khi làm việc với
ASP.NET:
ASP.NET được hỗ trợ trên Windows 2000 (Professional, Server và
Advanced Server), Windows XP Professional và họ Windows Server 2003
cho các ứng trên cả client và server. Ngoài ra, để phát triển server
ASP.NET, còn yêu cầu thêm các phần mềm sau:
Windows 2000 Server hay Advanced Server với Service Pack 2 trở
lên, Windows XP Professional hay 64-Bit Edition, hoặc một trong
các sản phẩm thuộc họ Windows Server 2003.
MPAC 2.7 cho Data.
Internet Information Services.
155
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Ghi chú: Xem thêm chi tiết trong .Net Framework SDK Documentation.
4.1.5.3 Các đặc điểm mới của ASP.NET:
Đối tượng Page: Page sử dụng các thành phần điều khiển có khả
năng hoạt động và tương tác với nhau ngay trên trình chủ Web
Server.
HTML Server Side Controls: Các HtmlControl có khả năng xử lý
ngay trên trình chủ dựa vào thuộc tính và phương thức tương tự các
hoạt động của chúng phía trình khách (sử dụng thuộc tính
runat=”server”).
Rich Control: Là tập các thành phần điều khiển đa năng, chúng
hchạy trên Server và có thể tạo ra các phần tử cũng như đối
tượngHTML phức hợp cho trình khách.
Web Services: Có thể được dùng để thay thế cho DLL, COM,
DCOM trước đây. Trang ASP.NET có thể không cần hiển thị kết
xuất cho trình khách. Chúng hoạt động như những chương trình xử
lý ở hậu cảnh.
Cấu hình và phân phối: File cấu hình đơn giản và dễ dàng với các
tập tin theo định dạng văn bản XML (web.config). Các thành phần
đối tượng không còn phải đăng ký với hệ thống trước khi sử dụng
nữa.
Trạng thái Session: Tự động quản lý trạng thái của đối tượng
Session và Application, có thể lưu nội dung của Session hay
156
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Application của một ứng dụng đặc thù nào đó xuống file trên đĩa để
sử dụng lại.
Xử lý lỗi: Các công cụ debug và trace được nâng cấp và đáng tin cậy
hơn.
Quản lý bảo mật: Chúng ta có thể tận dụng các dịch vụ đăng nhập
tùy biến cho trang tài liệu ASP.NET theo phong cách của Web hoặc
cơ chế đăng nhập và kiểm tra quyền truy xuất dựa trên hệ thống bảo
mật của hệ điều hành.
Tùy biến vùng đệm trên trình chủ.
Một tập các đối tượng phong phú: ASP.NET hỗ trợ một tập phong
phú các thư viện, lớp và đối tượng, nhằm phục vụ cho hầu hết
những gì mà các nhà phát triển ứng dụng cần đến khi làm việc với
ASP.NET. Lưu ý rằng, các đối tượng nội tại khác nhau như:
Request, Response, Form, Cookies, Server Variables đầu được giữ
lại và hoàn toàn tương thích với ASP. Tuy nhiên, ASP.NET đã cung
cấp thêm cho các đối tượng này rất nhiều thuộc tính và phương thức
mới giúp nâng cao khả năng xử lý cho ứng dụng.
4.1.5.4 Vấn đế bảo mật:
Bảo mật là một khía cạnh cực kỳ quan trọng trong các ứng dụng
Web. Bước đầu tiên trong việc tạo một ứng dụng an toàn là phải hiểu được
vấn đề bảo mật thuộc loại nào trong các ứng dụng Web. Chúng ta cũng
cần phải biết các chiến lược cơ bản được sử dụng để bảo vệ ứng dụng và
hệ thống của mình.
157
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Hầu hết các ứng dụng Web đều hạn chế sự truy cập vào một vài
phần của site. Chẳng hạn, khi một site lưu trữ thông tin về credit card của
khách hàng vào cơ sở dữ liệu thì cơ sở dữ liệu phải được đảm bảo an toàn
trước các truy cập công cộng. Việc bảo mật của ASP.NET nhắm vào điều
này và các vấn đề bảo mật khác.
ASP.NET cùng với Microsoft Internet Information Services (IIS) có
thể chứng thực khả năng của người dùng chẳng hạn như thông qua tên
đăng nhập và mật khẩu theo bất kỳ phương thức chứng thực nào sau đây:
Windows: Basic, digest, hay Integrated Windows Authentication.
Microsoft Passport authentication.
Form authentication.
Client Certificate authentication.
Các điều khiển ASP.NET truy xuất tới thông tin của site bằng việc
so sánh credentials được chứng thực, hoặc là mô tả chúng sử dụng các
permissions của hệ thống file NTFS, hoặc là sử dụng một file cấu hình
dạng XML liệt kê danh sách authorized users, các authorized roles
(group), hay authorized HTML verbs.
Cách ASP.NET Security làm việc:
Việc bảo vệ các Web site là một vấn đề cực kỳ quan trọng và phức
tạp đối với các nhà phát triển ứng dụng Web. Một hệ thống bảo mật yêu
cầu phải có việc hoạch định cẩn thận, và Web site Administrators cùng với
những người lập trình phải hiểu một cách sâu sắc các tùy chọn cho việc
bảo vệ site của họ.
158
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
ASP.NET làm việc phối hợp với Microsoft .NET Framework và
Microsoft Internet Information Services (IIS) để cung cấp sự bảo mật cho
ứng dụng Web. Để bảo vệ một ứng dụng ASP.NET, bạn phải thực hiện hai
chức năng cơ bản sau:
Authentication (Sự chứng thực): Để giới hạn quyền truy cập đối với
một số người chỉ định, chúng ta cần nhận dạng chúng. Chẳng hạn,
mỗi khi người sử dụng nhập vào Username và Password của họ để
đăng nhập vào hệ thống, nếu đăng nhập thành công thì những tài
nguyên mà bạn cho phép có thể xử lý ứng với quyền họ có.
Authorization (Sự phân quyền): Hạn chế quyền truy cập bằng việc
cấp quyền hoặc từ chối (granting or denying) các quyền cụ thể cho
một người dùng đã được chứng thực.
IIS cũng có thể cấp quyền hay từ chối truy cập dựa trên host name
hay địa chỉ IP của người dùng.
Kiến trúc ASP.NET:
Hình sau mô tả mối liên hệ giữa các hệ thống bảo mật trong
ASP.NET:
Hình 4-2: ASP.NET Architecture
159
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Như mô tả hình trên cho thấy, tất cả các Web clients truyền thông
với các ứng dụng ASP.NET thông qua IIS. IIS giải mã và xác nhận một
cách tùy ý các request. Nếu Allow Anonymous được đặt là true, thì sẽ
không có việc chứng thực. IIS cũng tìm kiếm các tài nguyên được yêu cầu
(chẳng hạn như một ứng dụng ASP.NET), và nếu như client được cấp
quyền thì sẽ trả về tài nguyên tương ứng.
Ngoài ra với các đặc điểm bảo mật được xây dựng sẵn của
ASP.NET, một ứng dụng ASP.NET có thể sử dụng các đặc điểm bảo mật
mức thấp của .NET Framework.
Tích hợp với IIS: Khi xem xét sự chứng thực ASP.NET, chúng ta
nên hiểu sự tương tác với các dịch vụ chứng thực IIS. IIS luôn giả
sử rằng một tập các credentials maps tới một tài khoản Microsoft
Windows NT và sử dụng chúng để chứng thực một người dùng. Có
3 loại chứng thực khác nhau có sẵn trong IIS 5.0 tới IIS 6.0: basic,
digest, và Integrated Windows Authentication (NTLM or Kerberos).
Chúng ta có thể chọn kiểu chứng thực được sử dụng trong các dịch
vụ IIS administrative. Nếu bạn yêu cầu một URL chứa một ứng
dụng ASP.NET, thì request và thông tin chứng thực được chuyển
giao cho ứng dụng. ASP.NET cung cấp thêm hai kiểu chứng thực
bổ sung sau: Forms authentication và Passport authentication.
Sử dụng các files cấu hình của ASP.NET: Cấu hình ASP.NET, phần
bảo mật, có một kiến trúc phân lớp. Tất cả các thông tin cấu hình
cho ASP.NET được chứa trong các files Web.config và
Machine.config. Web.config có thể được đặt trong cùng thư mục
với các files ứng dụng. File Machine.config ở trong thư mục Config
160
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
của thư mục cài đặt gốc. Các thư mục con kế thừa các cài đặt từ một
thư mục trừ phi nó được ghi chồng lên bởi một file Web.config
trong thư mục con đó. Trong một file Web.config sẽ có các phần
cho từng loại chức năng của ASP.NET.Có 3 phần con chính trong
file Web.config liên quan đến vấn đề bảo mật: authentication,
authorization, va identity. Các giá trị cho mỗi phần tử bảo mật
thường được đặt bằng việc ghi đè lên một phần thuộc file cấu hình
mức máy tính với một phần tương tự trong một file cấu hình ứng
dụng được đặt trong thư mục gốc của ứng dụng. Tất cả các thư mục
con được kế thừa một cách tự động các cài đặt này. Tuy nhiên các
thư mục con cũng có thể có các files cấu hình riêng cho nó mà sẽ
ghi đè lên các cài đặt khác. Lưu ý, cấu hình ASP.NET chỉ áp dụng
cho các tài nguyên ASP.NET (được đăng ký điều khiển bởi
Aspnet_isapi.dll).
4.1.5.5 Thiết kế theo mô hình đa tầng (N-Tier):
Một trong những thay đổi quan trọng khi cài đặt ứng dụng
ASP.NET phía trình chủ là sự phân tầng trong ứng dụng. Các ứng dụng
ngày nay thường áp dụng mô hình đa tầng (Multi-Tier) phân rã chức năng
của từng đơn thể đến mức tối đa.
Trong mô hình phân tầng, các nghiệp vụ xử lý Logic của ứng dụng
được cài đặt thành những đối tượng riêng biệt. Cụ thể chúng bao gồm 3
tầng (3-tiers):
Presentation Tier: Chứa các trang ASP.NET định dạng giao diện và
triệu gọi đối tượng ở tầng xử lý.
161
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Bussiness Tier: Thực hiện chức năng chính của chương trình bao
gồm mã tách rời phần định dạng HTML.
Data Tier: Thực hiện việc kết nối và truy xuất cơ sở dữ liệu.
4.1.5.6 Truy xuất dữ liệu với ASP.NET:
ASP.NET bao gồm các công cụ truy xuất dữ liệu làm cho việc thiết
kế các sites trở nên dễ dàng hơn cho phép người dùng tương tác với cơ sở
dữ liệu thông qua các Web pages.
Để truy cập dữ liệu SQL từ ASP.NET thực hiện các bước sau:
1. Tạo một kết nối đến cơ sở dữ liệu sử dụng lớp SqlConnection.
2. Chọn một tập các records từ cơ sở dữ liệu sử dụng lớp
SqlDataAdapter.
3. Fill một DataSet sử dụng lớp SqlDataAdapter.
4. Nếu việc chọn dữ liệu từ cơ sở dữ liệu chỉ nhằm mục đích chỉ
đọc nên sử dụng lớp SqlDataReader (hoặc OleDbDataReader).
Khi sử dụng SqlDataReader, chọn các records sử dụng truy vấn
SqlCommand và tạo một đối tượng SqlDataReader được trả về
từ phương thức ExecuteReader của đối tượng SqlCommand.
5. Kết buộc (bind) với một server control chẳng hạn như DataGrid,
với một DataSet, DataView, hay SqlDataReader.
4.1.5.7 ASP.NET với Windows Server 2003:
Để xây dựng ứng dụng thương mại điện tử với công nghệ .NET trên
môi trường Microsoft Windows, thay vì sử dụng hệ điều hành Windows
2000 với IIS 5.0 cùng với bộ .NET Framework phiên bản 1.0, chúng ta có
thể cài đặt hệ đìều hành Windows Server 2003 với IIS 6.0.
162
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Với những đặc điểm cập nhật mới nhất và nền tảng hoàn chỉnh, tích
hợp và ổn định, hệ điều hành Windows Server 2003 thiết kế nhằm giúp
cho khách hàng nhằm giảm chi phí và tăng hiệu quả hoạt động kinh
doanh. Cùng với IIS 6.0 và .NET Framework tích hợp trong hệ điều hành,
Microsoft cho phép xây dựng ứng dụng thương mại điện tử với quy mô
lớn và ưu việt hơn.
Sau đây là một số đặc điểm mà Windows Server 2003 hỗ trợ cho
ứng dụng ASP.NET:
Sự hợp nhất .Net Framework.
Hoạt động đáng tin cậy.
Trình điều khiển IIS 6.0 tăng cường khả năng thi hành, tính tin cậy
và khả năng quản lý.
Tính mềm dẻo và dễ dàng nâng cấp.
Sự thi hành tối ưu.
Sự cải tiến COM: COM+ là một mở rộng của COM (Component
Object Model), giờ đây các phiên bản ứng dụng COM+ có thể được
cài đặt và cấu hình trên cùng một máy. Đặc điểm này đã làm giảm
chi phí và thời gian sử dụng nhiều server để điều hành những phiên
bản khác nhau của một ứng dụng.
Sự cải tiến ứng dụng Server: .NET Framework hợp nhất hai kỹ
thuật truyền thông không đồng thời SOAP (Simple Object Access
Protocol) và MSMQ (Microsoft Message Queuing) cho phép nhà
163
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
phát triển xây dựng những ứng dụng thiết thực và có khả năng xử lý
độc lập.
Sự cải tiến hỗ trợ xử lý đa trình đối xứng
Hỗ trợ cấu hình phần cứng 64-Bit.
Ghi chú: Phần này được tham khảo trong tài liệu: Xây dựng và triển khai
ứng dụng Thương Mại Điện Tử - Tập 2: Với công cụ ASP.NET, Visual
Basic.NET, SQL Server, Phạm Hữu Khang (Chủ biên).
4.1.5.8 Làm việc với các tập tin cấu hình:
Khai báo trong Global.asax:
ASP.NET hỗ trợ tập tin toàn cục (global.asax) cho mỗi ứng dụng
Web và nằm trong thư mục gốc của ứng dụng. Tập tin này được sử dụng
để thực hiện các biến cố, đối tượng và biến mang tính toàn cục cho ứng
dụng.
Định dạng tập tin Global.asax: Cấu trúc của tập tin Global.asax bao
gồm các khai báo chỉ mục, biến cố và mã ASP.NET như sau: <%@ [Directive] [attribute] = [value %>
<script runat=”server”>
<Application Event Prototypes]
</script>
Chỉ mục Directive: Khai báo tương tự như các trang ASP.NET. Các
application directives được hỗ trợ trong ASP.NET bao gồm: @Application, @Import, @Assembly.
Các biến cố: Trang global.asax thường sử dụng các biến cố sau:
protected void Application_Start(Object sender, EventArgs e) { // Kích hoạt khi ứng dụng khởi động. }
164
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
protected void Session_Start(Object sender, EventArgs e) { // Kích hoạt khi session khởi động. } protected void Application_BeginRequest(Object sender, EventArgs e) { } protected void Application_EndRequest(Object sender, EventArgs e) { } protected void Application_AuthenticateRequest(Object sender, EventArgs e) { } protected void Application_Error(Object sender, EventArgs e) { } protected void Session_End(Object sender, EventArgs e) { } protected void Application_End(Object sender, EventArgs e) { }
Khai báo trong Web.config:
Web.config được sử dụng để cấu hình ứng dụng. Ngoài các tham số
liên quan đến ứng dụng, bạn cũng có thể khai báo các khóa kết nối cơ sở
dữ liệu SQL Server. Sau đây là nội dung của một trang web.config: <configuration>
<configSections>
<sessionGroup name=”system.web”>
<session name=”sessionState”
type=”System.Web.SessionState.SessionStateSectionHandler,
System.Web, Version=”1.0.0.3300.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a”
allowDefinition=”MachineToApplication” />
</sessionGroup>
</configSections>
<system.web>
<sessionState timeout=”360” />
</system.web>
<system.web>
<compilation debug=”true” />
</system.web>
<system.web>
<customErrors mode=”On”
165
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
defaultRedirect=”sorry.aspx”>
<error statusCode=”404” redirect=”/404.htm” />
</customErrors>
</system.web>
<appSettings>
<add key=”conn”
value="Server=thesis;Integrated
Security=SSPI;Database=Booking;Connection Timeout=15;" />
</aspSettings>
</configuration>
Khai báo trong Machine.config:
Mỗi ứng dụng cấu hình trong IIS đều có nhiều nhất một tập tin
web.config trong thư mục gốc. Nếu như muốn tất cả ứng dụng trong IIS
cùng sử dụng chung một cấu hình thì ta có thể khai báo trong
machine.config. Như vậy, machine.config có tầm vực toàn bộ hệ thống
(Web server), trong khi web.config có tầm vực trong mỗi ứng dụng. Lưu ý
rằng, nếu như trước đây ta phải khởi động lại IIS mỗi khi có thay đổi cấu
hình ứng dụng, thì với hai tập tin cấu hình web.config và machine.config,
IIS không cần phải khởi động mỗi khi có thay đổi, bởi vì sự thay đổi được
thực hiện trong hai tập tin cấu hình này. Chính vì vậy, mỗi khi hệ thống
nhận biết một trong hai tập tin này có thay đổi về cấu trúc lẫn nội dung, thì
ASP.NET sẽ nạp lại cấu hình mới.
4.2 Triển khai và thử nghiệm chương trình: 4.2.1 Triển khai và thử nghiệm ứng dụng:
Trước tiên copy thư mục ứng dụng có tên Booking trong đĩa CD vào
đĩa cứng (chẳng hạn C:\Booking). Sau đó, bằng việc cấu hình trong IIS
cùng với việc cấu hình ASP.NET trong IIS, bạn có thể truy cập vào web
site thông qua địa chỉ sau: http://localhost/booking và trang mặc định sẽ
166
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
được triệu gọi (default.aspx). Cấu bước cấu hình cụ thể như sau: Vào IIS,
chọn Default Web Site New Virtual Directory… Gõ vào ô Alias tên
truy cập (ví dụ: booking) Chọn đường dẫn tới thư mục vừa chép các
files chương trình (C:\Booking) Thiết lập các quyền truy xuất
Finish.
Kế tiếp, bạn cần phải tạo cơ sở dữ liệu cho ứng dụng trong cơ sở dữ
liệu SQL Server 2000 bằng cách sử dụng trình điều khiển SQL Server
Enterprise Manager (EMC) như hình 4-3:
Hình 4-3: SQL Server Enterprise Manager
Kế tiếp, bạn tạo cơ sở dữ liệu có tên Booking bằng cách chọn ngăn
Database Right-Click New Database như hình 4-4, đặt tên cơ sở dữ
liệu là Booking và chọn địa chỉ địa chỉ để lưu trữ cơ sở dữ liệu như hình 4-
5.
167
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Hình 4-4: Tạo cơ sở dữ liệu Booking
168
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Hình 4-5: Chọn chức năng Restore Database
Sau khi tạo thành công cơ sở dữ liệu Booking, tên cơ sở dữ liệu này
sẽ xuất hiện trong danh sách cơ sở dữ liệu của SQL Server. Bước kế tiếp
là copy tập tin backup có tên Booking trong thư mục Database trên CD-
Room vào đĩa cứng.
Trở lại trình điều khiển EMC, bạn phải phục hồi cơ sở dữ liệu từ tập
tin backup. Để làm điều này, bạn chọn tên cơ sở dữ liệu Booking và
Right-Click All Tasks Restore Database, cửa sổ xuất hiện như hình
4-6. Để phục hồi chính xác cấu trúc cơ sở dữ liệu bạn phải chọn tùy chọn
như hình vẽ 4-7. Chọn OK, SQL Server phục hồi thành công cơ sở dữ liệu
169
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Booking. Sau đó, bạn trở lại cơ sở dữ liệu Booking và Refresh, danh sách
đối tượng cơ sở dữ liệu xuất hiện như hình 4-8.
Hình 4-6: Chuẩn bị Restore cơ sở dữ liệu
170
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Hình 4-7: Ghi đè lên tập tin cơ sở dữ liệu
171
KHOA CNTT –
ĐH KHTN
Chương 4. Cài đặt và Triển khai
Hình 4-8: Danh sách đối tượng cơ sở dữ liệu
172
KHOA CNTT –
ĐH KHTN
Chương 5. Tổng kết
Chương 5. TỔNG KẾT 5.1 Kết luận:
Xây dựng một ứng dụng thương mại sử dụng một công nghệ lập trình
mới, hiện đại có những thú vị song cũng không ít thách thức. Thứ nhất, mặc
dù thương mại điện tử không còn mới lạ nữa nhưng đối với chúng em thời
gian được tiếp cận nó không phải là nhiều. Thứ hai, đây là lần đầu tiên
chúng em thật sự làm việc với ASP.NET để xây dựng một ứng dụng Web.
Do đó, quá trình thực hiện luận văn gặp khá nhiều khó khăn, mất khá nhiều
thời gian để có thể hiểu nắm được cách làm việc với ASP.NET, có những
lúc tưởng như không thể hoàn thành kịp tiến độ. Ngoài ra, để xây dựng một
trang web thành công thì giao diện cũng là một yếu tố rất quan trọng, nó
phải là sự kết hợp hài hòa giữa sự hấp dẫn, lôi cuốn người dùng với sự đơn
giản, thân thiện, dễ sử dụng. Về mặt này thì nhóm chúng em thật sự không
có khiếu lắm về thẫm mỹ nên giao diện khá đơn giản.
Sau đây là những phần mà nhóm chúng em đã hoàn thành trong luận
văn này (mặc dù còn rất nhiều ý tưởng, dự định chưa thể thực hiện được do
khả năng và thời gian có hạn, hy vọng rằng có thể hoàn thiện hơn trong thời
gian tới):
1. Giao diện được xây dựng khá hoàn chỉnh, tương ứng với từng đối
tượng người dùng có thanh menu riêng, chứa các khả năng có thể thực
hiện.
2. Với đối tượng người dùng là Quản trị thì có thể thực hiện được các
chức năng sau:
173
KHOA CNTT –
ĐH KHTN
Chương 5. Tổng kết
Đăng nhập và hệ thống (có hỗ trợ chức năng tìm kiếm mật khẩu khi quên mật khẩu) Xem danh sách khách viếng. Xem danh sách khách sạn. Xem danh sách hãng hàng không. Xem danh sách người dùng với vai trò quản trị. Xem thông tin chi tiết của từng khách viếng. Xem thông tin chi tiết của từng khách sạn. Xem thông tin chi tiết của từng hãng hàng không. Xem thông tin chi tiết của từng người dùng với vai trò quản trị. Xóa một khách viếng khỏi cơ sở dữ liệu. Xóa một khách sạn khỏi cơ sở dữ liệu. Xóa một hãng hàng không khỏi cơ sở dữ liệu. Xóa một người dùng khỏi cơ sở dữ liệu. Điều chỉnh thông tin cá nhân. Quản lý thông tin đặt phòng của khách viếng. Quản lý thông tin đặt vé máy bay của khách viếng. Thêm một người sử dụng mới với vai trò quản trị. Xem danh sách thông điệp của các đối tượng khác gửi tới. Xem nội dung thông điệp, gửi và xóa thông điệp trong danh sách. Các chức năng tùy chọn bổ sung khác như: xem và cập nhật các bảng tham số…
3. Với đối tượng người dùng là Khách viếng thì có thể thực hiện được các
chức năng như sau:
Đăng ký để trở thành thành viên. Đăng nhập vào hệ thống (nếu có đăng ký) (có hỗ trợ chức năng tìm kiếm mật khẩu khi quên mật khẩu). Đặt phòng khách sạn.
174
KHOA CNTT –
ĐH KHTN
Chương 5. Tổng kết
Đặt vé máy bay. Tìm kiếm thông tin các khách sạn. Hiệu chỉnh thông tin cá nhân. Xem danh sách các thông điệp do phía quản trị gửi đến. Xem nội dung thông điệp, gửi và xóa thông điệp trong danh sách.
4. Với đối tượng người dùng là Khách sạn và Hãng hàng không thì có thể
thực hiện được các chức năng như sau:
Đăng ký để trở thành nhà cung cấp dịch vụ (cho thuê phòng khách sạn, bán vé máy bay). Đăng nhập vào hệ thống (nếu có đăng ký) (có hỗ trợ chức năng tìm kiếm mật khẩu khi quên mật khẩu). Nhập các thông tin mô tả cho khách sạn hay hãng hàng không. Điều chỉnh thông tin đăng ký. Xem, gửi và xóa các thông điệp cho phía quản trị.
5. Các yêu cầu về bảo mật: Sử dụng kiến trúc bảo mật của ASP.NET.
6. Khả năng tương thích với các trình duyệt khác nhau: Chạy tốt trên các
trình duyệt khác nhau có hỗ trợ kiến trúc bảo mật mới của ASP.NET
như: Internet Explorer 6.0, Netscape 7.1, Mozilla.
5.2 Hướng phát triển: Để tài có thể được mở rộng và phát triển theo các hướng sau:
5.2.1 Xây dựng bổ sung thêm các nhà cung cấp dịch vu khác: Như trên đã trình bày, hệ thống đã xây dựng còn khá nhiều hạn chế
cả về giao diện lẫn chức năng, trong đó là khả năng liên kết với các nhà
cung cấp dịch vụ còn khá ít. Trong tương lai, có thể mở rộng ra liên kết
với các khách sạn, hãng không không và đồng thời cũng phối hợp với các
175
KHOA CNTT –
ĐH KHTN
Chương 5. Tổng kết
dịch vụ liên quan khác như: thuê nhà, thuê xe, kết hợp với các tour du
lịch… Nếu làm được như thế thì website sẽ có thể hoàn thiện hơn.
5.2.2 Liên kết với các hệ thống ngân hàng: Hiện nay, hệ thống ngân hàng ở nước ta chưa hỗ trợ phổ biến hình
thức thanh toán tín dụng qua mạng. Do đó, nếu trong tương lai dịch vụ
phát triển thì việc liên kết với các ngân hàng để thực hiện quá trình thanh
toán trực tuyến được nhanh chóng và hiệu quả hơn.
5.2.3 Liên kết với các đối tác là nhà cung cấp dịch vụ để thực hiện quá trình đăng ký và thanh toán tự động:
Điều này hiện chưa làm được do hai vấn đề sau: thứ nhất, công nghệ
trong nước còn chưa thể đáp ứng được; thứ hai, trình độ có hạn của nhóm
thực hiện đề tài.
5.2.4 Đưa vào triển khai ứng dụng trên thực tế: Luận văn này được hoàn thành khá chậm so với dự kiến nên đã
không thể đưa vào triển khai ứng dụng thực tế kịp. Hy vọng sau khi hoàn
thiện sẽ có thể đưa vào vận hành trên mạng Internet.
176
KHOA CNTT –
ĐH KHTN
TÀI LIỆU THAM KHẢO
1) .NET Framework SDK Documentation.
2) Phạm Hữu Khang (Chủ biên), Xây dựng và triển khai ứng dụng Thương
Mại Điện Tử - Tập 2: Với công cụ ASP.NET, Visual Basic.NET, SQL
Server, NXB Thống Kê, 2003. (Các chương 1, 19, 20, 22).
3) Đặng Văn Đức, Phân tích thiết kế hướng đối tượng bằng UML, NXB Giáo
Dục, 2002.
177