Tải bản đầy đủ (.doc) (85 trang)

Xây dựng website quản lý đặt vé xe của DNVT cúc tư

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

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

















TpHCM, ngày … tháng …… năm ……
Giáo viên hướng dẫn
[Ký tên và ghi rõ họ tên]
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN


















TpHCM, ngày … tháng …… năm ……
Giáo viên hướng dẫn
[Ký tên và ghi rõ họ tên]
LỜI CẢM ƠN
Chúng tôi xin chân thành cảm ơn Khoa Công nghệ Thông Tin Trường Đại
Học Giao Thông Vận Tải TP.Hồ Chí Minh đã tạo điều kiện cho chúng tôi thực
hiện đề tài luận văn này.
Chúng tôi xin chân thành cảm ơn ThS Bùi Trọng Hiếu đã tận tình hướng dẫn,
chỉ bảo chúng tôi trong suốt thời gian thực hiện đồ án. Chúng tôi cũng xin cảm ơn
quý Thầy Cô đã tận tình giảng dạy, trang bị cho chúng tôi những kiến thức cần thiết
trong suốt quá trình học tập tại trường.
Mặc dù đã cố gắng hoàn thành đồ án với tất cả nổ lực của bản thân, nhưng đồ
án chắc chắn không tránh khỏi những thiếu sót nhất định, kính mong sự cảm thông
và tận tình chỉ bảo của quý Thầy Cô.
Nhóm thực hiện
Mai Thị Lai & Lê Thị Thanh Hương
Khoa Công Nghệ Thông Tin
Bộ môn Hệ Thống Thông Tin
ĐỀ CƯƠNG CHI TIẾT
Tên Đề Tài: XÂY DỰNG WEBSITE QUẢN LÝ ĐẶT VÉ XE CỦA DNVT CÚC TƯ
Giáo viên hướng dẫn: ThS. Bùi Trọng Hiếu
Thời gian thực hiện: 13/09/2013 đến 27/12/2013

Sinh viên thực hiện:
- Mai Thị Lai - MSV: 11L1120034
- Lê Thị Thanh Hương – MSV: 11L1120029
Loại đề tài: Xây dựng ứng dụng web
Nội Dung Đề Tài: Xây dựng Website Đặt vé xe Online với các phân hệ chính như sau:
Phân hệ đặt vé; phân hệ quản lý, điều hành; phân hệ báo cáo thống kê.
Kế Hoạch Thực Hiện:
- Ngày 13/09/2013: Nhận đề tài
- Ngày 15 – 18/09/2013: Thảo luận đề tài và khảo sát thực tế
- Ngày 19 – 26/09/2013: Tìm hiểu mô hình MVC; Tìm hiểu về ASP.NET và C#
- Ngày 27/09 – 16/10/2013: Phân tích thiết kế hệ thống và xây dựng cơ sở dữ liệu
- Ngày 17/10 – 03/11/2013: Viết code xây dựng website.
- Ngày 04/11/2013: Báo cáo giữa kỳ
- Ngày 05 – 17/11/2013: Hoàn thiện website
- Ngày 18/11 – 05/12/2013: Viết báo cáo đề tài
- Ngày 06 – 25/12/2013: Tiếp tục hoàn chỉnh đề tài
- Ngày 26/12/2013: In báo cáo
- Ngày 27/12/2013: Nộp đề tài
- Ngày 03/01/2014: Bảo vệ đề tài
Xác nhận của GVHD Ngày……tháng……năm 2013
SV Thực hiện
Mai Thị Lai Lê Thị Thanh Hương
MỤC LỤC
MỤC LỤC i
DANH MỤC HÌNH iv
DANH MỤC CÁC TỪ VIẾT TẮT vi
CHƯƠNG I: TỔNG QUAN 1
1. Đặt vấn đề 1
2. Nhiệm vụ đồ án 2
3. Cấu trúc đồ án 3

CHƯƠNG II: LÝ THUYẾT VỀ MÔ HÌNH MVC 5
1. Giới thiệu 5
1.1. Lịch sử ra đời 5
1.2. Mô hình MVC cơ bản 5
1.3. Một vài đặc tính trong ASP.NET MVC 7
2. Sự khác biệt với WebForm 7
3. URL routing (Định tuyến URL) 9
3.1. Nhiệm vụ của hệ thống định tuyến trong ASP.NET MVC 9
3.2. Các quy tắc định tuyến URL mặc định trong ASP.NET MVC Web
Application 9
4. Các ưu điểm và nhược điểm của ASP.NET MVC 10
4.1. Ưu điểm: 10
4.2. Nhược điểm: 10
CHƯƠNG III: PHÂN TÍCH & THIẾT KẾ 11
1. Danh sách Actor 11
2. Danh sách Use Case 11
3. Sơ đồ Use Case tổng quát 12
4. Mô tả và biểu đồ Use Case 13
USE CASE ĐĂNG NHẬP 13
USE CASE PHỤC HỒI MẬT KHẨU 14
USE CASE ĐĂNG XUẤT 15
i
USE CASE QUẢN LÝ TÀI KHOẢN 15
USE CASE ĐĂNG KÝ TÀI KHOẢN MỚI 17
USE CASE SỬA THÔNG TIN TÀI KHOẢN 18
USE CASE TRA CỨU VÉ 20
USE CASE ĐẶT VÉ XE 21
USE CASE THANH TOÁN 23
USE CASE HỦY VÉ XE 26
USE CASE XÁC NHẬN VÉ ĐÃ THANH TOÁN 27

USE CASE XỬ LÝ KHÁCH CHỜ 29
USE CASE QUẢN LÝ DANH MỤC ĐỊA ĐIỂM 30
USE CASE TẠO MỚI ĐỊA ĐIỂM 31
USE CASE SỬA THÔNG TIN ĐỊA ĐIỂM 32
USE CASE XÓA THÔNG TIN ĐỊA ĐIỂM 33
USE CASE QUẢN LÝ TUYẾN 34
USE CASE TẠO MỚI TUYẾN 35
USE CASE SỬA THÔNG TIN TUYẾN 36
USE CASE XÓA THÔNG TIN TUYẾN 37
USE CASE QUẢN LÝ XE 38
USE CASE TẠO MỚI XE 39
USE CASE SỬA THÔNG TIN XE 40
USE CASE XÓA THÔNG TIN XE 41
USE CASE QUẢN LÝ LỊCH TRÌNH 42
USE CASE TẠO MỚI LỊCH TRÌNH 43
USE CASE SỬA THÔNG TIN LỊCH TRÌNH 44
USE CASE XÓA THÔNG TIN LỊCH TRÌNH 45
USE CASE QUẢN LÝ LOẠI VÉ 46
USE CASE TẠO MỚI LOẠI VÉ 47
USE CASE SỬA THÔNG TIN LOẠI VÉ 48
USE CASE XÓA THÔNG TIN LOẠI VÉ 49
ii
USE CASE QUẢN LÝ LOẠI XE 50
USE CASE TẠO MỚI LOẠI XE 51
USE CASE SỬA THÔNG TIN LOẠI XE 52
USE CASE XÓA THÔNG TIN LOẠI XE 53
USE CASE QUẢN LÝ HÌNH THỨC GIẢM GIÁ 54
USE CASE TẠO MỚI HÌNH THỨC GIẢM GIÁ 55
USE CASE SỬA THÔNG TIN HÌNH THỨC GIẢM GIÁ 56
USE CASE XÓA THÔNG TIN HÌNH THỨC GIẢM GIÁ 57

USE CASE THỐNG KÊ 58
5. Thiết kế Cơ sở dữ liệu: 59
CHƯƠNG IV: HIỆN THỰC 65
1. Cấu trúc website: 65
2. Yêu cầu cài đặt: 66
3. Một số giao diện của Website: 67
CHƯƠNG V: TỔNG KẾT 71
1. Một số kết quả đạt được: 71
2. Hướng phát triển đồ án: 72
TÀI LIỆU THAM KHẢO 73
iii
DANH MỤC HÌNH
Hình 1: Mô hình MVC cơ bản 6
Hình 2: Use case Tổng quát 12
Hình 3: Biểu đồ Tuần tự cho Use case Đăng nhập 13
Hình 4: Biểu đồ Tuần tự cho Use case Phục hồi mật khẩu 14
Hình 5: Use Case Quản Lý Tài khoản 15
Hình 6: Biểu đồ Hoạt động của Use Case Quản lý Tài khoản 16
Hình 7: Biểu đồ Tuần tự cho Use case Đăng ký Tài khoản mới 18
Hình 8: Biểu đồ Tuần tự cho Use case Sửa Thông tin Tài khoản 19
Hình 9: Biểu đồ Tuần tự cho Use case Tra cứu vé 20
Hình 10: Biểu đồ Tuần tự cho Use case Đặt vé xe 22
Hình 11: Biểu đồ Tuần tự cho Use case Thanh toán (Thanh toán trực tiếp) 24
Hình 12: Biểu đồ Tuần tự cho Use case Thanh toán (Thanh toán qua Ngân hàng) 25
Hình 13: Biểu đồ Tuần tự cho Use case Thanh toán (Thanh toán Paypal) 25
Hình 14: Biểu đồ Tuần tự cho Use case Hủy Vé 27
Hình 15: Biểu đồ Tuần tự cho Use case Xác nhận Vé đã Thanh toán 28
Hình 16: Biểu đồ Tuần tự cho Use case Xử lý Khách chờ 29
Hình 17: Biểu đồ Hoạt động của Use case Quản lý Danh mục địa điểm 30
Hình 18: Biểu đồ tuần tự cho Use Case Tạo mới Địa điểm 31

Hình 19: Biểu đồ tuần tự cho Use Case Sửa thông tin Địa điểm 32
Hình 20: Biểu đồ tuần tự cho Use Case Xóa thông tin Địa điểm 33
Hình 21: Biểu đồ hoạt động của Use Case Quản lý Tuyến 34
Hình 22: Biểu đồ tuần tự cho Use Case Tạo mới Tuyến 35
Hình 23: Biểu đồ tuần tự cho Use Case Sửa thông tin Tuyến 36
Hình 24: Biểu đồ tuần tự cho Use Case Xóa thông tin Tuyến 37
Hình 25: Biểu đồ Hoạt động của Use Case Quản lý Xe 38
Hình 26: Biểu đồ Tuần tự cho Use case Tạo mới Xe 39
Hình 27: Biểu đồ Tuần tự cho Use case Sửa thông tin Xe 40
Hình 28: Biểu đồ Tuần tự cho Use case Xóa thông tin Xe 41
iv
Hình 29: Biểu đồ Hoạt động của Use case Quản lý Lịch trình 42
Hình 30: Biểu đồ tuần tự cho Use Case Tạo mới Lịch Trình 43
Hình 31: Biểu đồ tuần tự cho Use Case Sửa thông tin Lịch Trình 44
Hình 32: Biểu đồ tuần tự cho Use Case Xóa thông tin Lịch Trình 45
Hình 33: Biểu đồ Hoạt động của Use Case Quản lý Loại Vé 46
Hình 34: Biểu đồ tuần tự cho Use case Tạo mới Loại vé 47
Hình 35: Biểu đồ Tuần tự cho Use case Sửa thông tin Loại vé 48
Hình 36: Biểu đồ Tuần tự cho Use case Xóa thông tin Loại vé 49
Hình 37: Biểu đồ hoạt động của Use Case Quản lý Loại Xe 50
Hình 38: Biểu đồ Tuần tự cho Use case Tạo mới Loại Xe 51
Hình 39: Biểu đồ Tuần tự cho Use case Sửa Thông tin Loại Xe 52
Hình 40: Biểu đồ Tuần tự cho Use case Xóa Thông tin Loại Xe 53
Hình 41: Biểu đồ hoạt động Use Case Quản lý Hình thức giảm giá 54
Hình 42: Biểu đồ Tuần tự cho Use case Tạo mới Hình thức giảm giá 55
Hình 43: Biểu đồ Tuần tự cho Use case Sửa thông tin Hình thức giảm giá 56
Hình 44: Biểu đồ Tuần tự cho Use case Xóa Hình thức giảm giá 57
Hình 45: Biểu đồ tuần tự cho Use Case Thống kê 58
Hình 46: Database Diagram Đặt Vé 59
Hình 47: Trang chủ 67

Hình 48: Trang Tra cứu vé 67
Hình 49: Trang Sơ đồ chỗ của Xe 68
Hình 50: Trang Chọn Hình thức Thanh toán 69
Hình 51: Trang Quản lý 69
Hình 52: Trang Quản lý Danh mục Lịch trình 70
Hình 53: Báo cáo Doanh thu Tổng hợp theo ngày 70
v
DANH MỤC CÁC TỪ VIẾT TẮT
ASP.NET : Active Server Pages.NET
CSDL : Cơ sở dữ liệu
CSS : Cascading Style Sheets
DTO : Data Transfer Object
HTML : HyperText Markup Language
MVC : Model View Controller
TDD : Test Driven Developer
UML : Unified Modeling Language
URL : Uniform Resource Locator
UI : User Interface
vi
CHƯƠNG I: TỔNG QUAN
1. Đặt vấn đề:
Sau gần 15 năm hoạt động trên tuyến Tp.Tuy Hòa – Tp.Hồ Chí Minh và ngược
lại. Doanh nghiệp Vận tải và Du lịch Cúc Tư (tiền thân là thành viên HTX vận tải cơ
giới đường bộ Phú Yên) chính thức thành lập ngày 25-10-2005 do bà Nguyễn Thị
Kim Cúc làm chủ và là người sáng lập bằng nguồn vốn tích lũy của gia đình.
Hiện nay, do nhu cầu phát triển của Doanh nghiệp, nhằm giúp khách hàng có
thể đặt vé xe khách trực tiếp qua mạng một cách thuận lợi, nhanh chóng và tiết kiệm
hơn mà không cần phải đến phòng vé chờ đợi để đến lượt mua vé xe.
Vì vậy, Doanh nghiệp cần phát triển một ứng dụng online cho phép đặt vé xe
trực tuyến; thanh toán vé trực tuyến; thông tin đặt vé, thông tin khách hàng được

cập nhật liên tục; quản lý và nhân viên có thể theo dõi thông tin khách hàng đặt vé
bất cứ lúc nào cần.
Để đặt vé khách hàng truy cập vào Website của Doanh nghiệp, sau đó chỉ cần
click vào mục đặt vé, nhập thông tin tìm kiếm bao gồm điểm đi, điểm đến và ngày
đi. Hệ thống sẽ hiển thị danh sách các xe, giờ chạy, số lượng chỗ còn trống. Lúc này
khách hàng chọn xe còn chỗ trống có giờ chạy mà mình muốn. Hệ thống sẽ hiển thị
danh sách chỗ ngồi của xe được chọn, khách hàng chọn chỗ và xác nhận để đưa vào
giỏ vé. Khách hàng có thể chọn đặt vé ở nhiều xe khác nhau của cùng một tuyến,
ngày đi và giờ đi.
Nếu khách hàng không chọn được chỗ ở xe có giờ đi mong muốn thì khách
hàng có thể chọn chức năng “Đặt chờ vé” ở xe có giờ chạy mình muốn để khi có
khách hàng nào hủy vé thì khách hàng ở danh sách “Đặt vé chờ” sẽ được ưu tiên đi
xe có giờ như mong muốn.
Bắt buộc khách hàng phải đăng nhập hệ thống mới có thể đặt vé. Vé sau khi
đặt phải được thanh toán với doanh nghiệp qua tài khoản ngân hàng hoặc trực tiếp
tại phòng vé trong khoảng thời gian quy định, nếu quá thời gian quy định thì hệ
thống sẽ tự động hủy thông tin của vé này và chuyển số ghế của vé này về trạng thái
ghế trống. Website còn hỗ trợ chức năng thanh toán trực tuyến bằng tài khoản
1
Paypal. Ngoài ra, khách hàng có thể xem thông tin về những vé mình đã đặt, tra cứu
lịch sử Đặt vé của mình.
Hệ thống cần phải tạo được tính mềm dẻo và các ràng buộc cho việc đặt vé
của khách hàng, chằng hạn hệ thống sẽ hiển thị các ghế còn trống sau khi người
dùng chọn xe muốn đi từ danh sách xe của lịch trình đã chọn. Hệ thống sẽ không
cho phép người dùng đăng ký vào ghế đã được người khác đăng ký trước ….
Về phía nhân viên quản lý được phép cập nhật lịch trình xe chạy. Xem thông
tin của mỗi tuyến xe, ngày giờ để biết ghế nào còn trống, ghế nào đã được đặt chỗ,
hiển thị sơ đồ ghế trên xe.
2. Nhiệm vụ đồ án:
Xây dựng Website Đặt vé xe Online với các phân hệ chính như sau: Phân hệ

đặt vé; phân hệ quản lý, điều hành; phân hệ báo cáo thống kê.
Các phân hệ có thể được sử dụng tập trung hay riêng lẽ tùy vào quyền truy cập
hệ thống của người dùng. Cụ thể như sau:
Phân hệ đặt vé: được sử dụng bởi khách hàng. Có các chức năng:
- Tra cứu vé.
- Đặt vé.
- Đặt chờ.
- Thanh toán trực tuyến.
- Hủy vé.
Phân hệ quản lý, điều hành:
Quản lý dữ liệu danh mục: Các danh mục cần quản lý bao gồm:
- Danh mục Địa điểm.
- Danh mục Hình thức giảm giá.
- Danh mục Loại vé.
- Danh mục Loại xe.
- Danh mục Tuyến.
- Danh mục Xe.
- Quản lý lịch trình: Lập lịch trình xe chạy.
2
- Xác nhận thanh toán.
- Xử lý khách chờ.
Phân hệ báo cáo thống kê:
- Thống kê doanh thu theo ngày.
- Thống kê số lượng vé bán, số lượng vé hủy.
- Báo cáo doanh thu theo xe, tuyến.
3. Cấu trúc đồ án:
Toàn bộ nội dung đồ án được tổ chức thành 5 chương, bao gồm:
Chương 1: Tổng quan.
Bắt đầu bằng việc đặt ra vấn đề của đồ án, nhiệm vụ của đồ án.
Chương 2: Lý thuyết.

Lý thuyết về Mô hình MVC và mô tả tóm tắt các công nghệ được sử dụng
trong đồ án.
Chương 3: Phân tích và Thiết kế.
Chương này tiến hành phân tích và thiết kế hệ thống tập trung vào ba vấn đề
chính, đó là thiết kế tầng dữ liệu, thiết kế tầng xử lý và thiết kế đối tượng giao tiếp
người dùng.
Ứng dụng phương pháp phân tích thiết kế hướng đối tượng để lập ra danh sách
các use case và actor của hệ thống, phân tích thiết kế các lược đồ use case và đặc tả
chi tiết hoạt động của use case.
Phần thiết kế dữ liệu của hệ thống được thực hiện bằng cách ánh xạ các bảng
dữ liệu từ các lớp đối tượng của hệ thống, mô tả chi tiết các bảng.
Phần thiết kế các hoạt động xử lý chính của các đối tượng trong ứng dụng.
Phần này mô tả các hàm xử lý của các lớp đối tượng trong ba tần xử lý của ứng
dụng theo mô hình ba lớp. Tiếp theo là thiết kế các sơ đồ phối hợp hoạt động tổng
thể giữa các đối tượng ở các tầng giao tiếp cơ sở dữ liệu, tầng xử lý và tầng giao
tiếp người dùng.
Phần thiết kế của chương trình chính là cốt lõi chính cho việc cài đặt và thử
nghiệm chương trình trong chương kế tiếp.
3
Chương 4: Hiện thực.
Nội dung chính của chương 3 bao gồm mô tả cách xử lý ba lớp trên môi
trường ASP.NET bằng ngôn ngữ C#.NET. Chương 4 sẽ nói về kết quả cài đặt của
hệ thống thông qua các giao diện người dùng ứng dụng mô hình MVC.
Chương 5: Tổng kết
Cuối cùng, là tổng kết những ưu, khuyết điểm của hệ thống, đề xuất phương
án khắc phục nhược điểm và đề ra hướng phát triển của đề tài, tài liệu tham khảo.
4
CHƯƠNG II: LÝ THUYẾT VỀ MÔ HÌNH MVC
1. Giới thiệu:
1.1. Lịch sử ra đời:

Vào tháng 11 năm 2007, ở hội thảo ALT.NET tại Austine, Texas, giám đốc
điều hành Scott Guthrie của Microsoft đã công bố và mô tả về nền tảng phát triển
web MVC mới, xây dựng trên ASP.NET, rõ ràng được thiết kế như là một lời hồi
đáp thẳng vào các lời chỉ trích trước đây.
ASP.NET MVC cung cấp sự tách biệt rõ ràng giữa các thành phần bất chấp
việc sử dụng lại mô hình MVC mặc dù nó không có gì mới – MVC lần đầu được
công bố vào năm 1978 trong dự án Smalltalk của Xerox PARC – nhưng ngày nay
nó phổ biến như là một kiến trúc cho các ứng dụng web bởi vì các lý do sau:
Người dùng tương tác với ứng dụng MVC tự nhiên sẽ theo một chu trình: user
thực hiện một hành động, và để hồi đáp lại, ứng dụng thay đổi mô hình dữ liệu của
nó và chuyển một trang đã được cập nhật cho người dùng và sau đó vòng xoay lập
lại. Điều này là thích hợp cho một ứng dụng web phải luân chuyển hàng loạt các lời
yêu cầu cũng như hồi đáp.
Những ứng dụng web luôn yêu cầu phải kết hợp một số công nghệ (về cơ sở
dữ liệu, HTML và mã xử lý), luôn chia thành nhiều lớp, và những mẫu đề ra đã nảy
sinh thành các khái niệm trong MVC ASP.NET MVC thực thi một biến thể hiện đại
trên MVC mà đặc biệt thích hợp với các ứng dụng web.
1.2. Mô hình MVC cơ bản:
ASP.NET MVC là 1 framework phát triển ứng dụng web mới của Microsoft,
nó kết hợp tính hiệu quả và nhỏ gọn của mô hình Model – View – Controller
(MVC), những ý tưởng và công nghệ hiện đại nhất, cùng với thành phần tốt nhất
của nền tảng ASP.NET hiện thời. Là một lựa chọn khác bên cạnh nền tảng
WebForm khi phát triển một ứng dụng web sử dụng ASP.NET.
MVC là viết tắt của các chữ cái đầu của Model – View - Controller.
5
Hình 1: Mô hình MVC cơ bản
MVC chia giao diện UI thành 3 phần tương ứng:
Models: trong các ứng dụng dựa trên MVC là những thành phần có nhiệm vụ
lưu trữ thông tin, trạng thái của các đối tượng, thông thường nó là một lớp được ánh
xạ từ một bảng trong cơ sở dữ liệu.

Views: là các thành phần chịu trách nhiệm hiển thị các thông tin lên cho người
dùng thông qua giao diện. Thông thường, các thông tin cần hiển thị được lấy từ
thành phần Models.
Controllers: chịu trách nhiệm xử lý các tác động về mặt giao diện, các thao
tác đối với models, và cuối cùng là chọn một view thích hợp để hiển thị ra màn
hình. Trong kiến trúc MVC, view chỉ có tác dụng hiển thị giao diện mà thôi, còn
điều khiển dòng nhập xuất của người dùng vẫn do Controllers đảm trách.
Lợi ích của việc sử dụng phương pháp MVC là sự phân đoạn rõ ràng giữa
models, views, controllers bên trong ứng dụng. Cấu trúc sạch sẽ giúp cho việc kiểm
tra lỗi ứng dụng trở nên dễ dàng hơn.
6
1.3. Một vài đặc tính trong ASP.NET MVC:
- Tách rõ ràng các mối liên quan, mở rộng khả năng test TDD (test driven
developer). Có thể test unit trong ứng dụng mà không cần phải chạy Controllers
cùng với tiến trình của ASP.NET và có thể dùng bất kỳ một unit testing framework
nào như NUnit, MBUnit, MS Test, ….
- Có khả năng mở rộng, mọi thứ trong MVC được thiết kế cho phép dễ dàng
thay thế/tùy biến (ví dụ: có thể lựa chọn sử dụng engine view riêng, routing policy,
parameter serialization, …)
- Bao gồm một ánh xạ URL mạnh mẽ cho phép xây dựng ứng dụng với những
URL sạch, các URL không cần cs phần mở rộng (ví dụ: có thể ánh xạ địa chỉ
/Products/Edit/4 để thực hiện hành động “Edit” của lớp điều khiển
ProductControllers hoặc ánh xạ địa chỉ /Blog/SomeTopic để thực hiện hành động
“Display Topic” của lớp điều khiển BlogEngineController)
- ASP.NET MVC Framework cũng hỗ trợ những file ASP.NET như
.ASPX, .ASCX và .Master, đánh dấu các tập tin này như một “view template” (có
thể dễ dàng dùng các tính năng của ASP.NET như lồng các trang Master, <%= %>
snippets, mô tả server controls, template, data-binding, localization, …). Tuy nhiên
sẽ không còn postback và interactive back server và thay vào đó là interactive end-
user tới một Controller class (không còn viewstate, page lifecycle)

- ASP.NET MVC Framework hỗ trợ đầy đủ các tính năng bảo mật của
ASP.NET như form/windows authenticate, URL authorization, membership/roles,
output và data caching, session/profile state, configuration system, provider
architecture,…
2. Sự khác biệt với WebForm:
ASP.NET WebForm sử dụng ViewState để quản lý, các trang ASP.NET đều
có lifecycle, postback và dùng các web controls, các events để thực hiện các hành
động cho UI khi có sự tương tác với người dùng nên hầu hết ASP.NET WebForm
xử lý chậm.
7
ASP.NET MVC Framework chia ra thành 3 phần: Models, Views, Controllers.
Mọi tương tác của người dùng với Views sẽ được thực hiện hành động trong
Controllers, không còn postback, không còn lifecycle không còn events.
Việc kiểm tra (test), gỡ lỗi (debug) với ASP.NET đều phải chạy tất cả các tiến
trình của ASP.NET và mọi sự thay đổi ID của bất kỳ controls nào cũng ảnh hưởng
đến ứng dụng. Đối với ASP.NET MVC Framework thì việc có thể sử dụng các unit
test có thể thẩm định rất dễ dàng các Controller thực hiện như thế nào.
Tính năng ASP.NET 2.0 ASP.NET MVC
Kiến trúc
chương trình
Kiến trúc mô hình WebForm ->
Business -> Database.
Kiến trúc sử dụng việc phân chia
chương trình thành Controllers,
Models, Views.
Cú pháp
chương trình
Sử dụng cú pháp của WebForm,
tất cả các sự kiện và controls do
server quản lý.

Các sự kiện được điều khiển bởi
controllers, các controls không
do server quản lý.
Truy cập dữ
liệu
Sử dụng hầu hết các công nghệ
truy cập dữ liệu trong ứng dụng.
Phần lớn dùng LINQ to SQL
class để tạo mô hình truy cập đối
tượng.
Debug
Debug chương trình phải thực hiện
tất cả bao gồm cả lớp truy cập dữ
liệu, sự hiển thị, điều khiển các
controls.
Debug có thể sử dụng các unit
test kiểm tra các phương thức
trong controller.
Tốc độ phân
tải
Tốc độ phân tải chậm khi trong
trang có quá nhiều các controls vì
ViewState quá lớn.
Phân tải nhanh hơn do không
phải quản lý các ViewState để
quản lý các control trong trang.
Tương tác
với
javascript
Tương tác với javascript khó khăn

vì các controls được điều khiển bởi
server.
Tương tác với javascript dễ dàng
vì các đối tượng không do server
quản lý điều khiển.
URL
Address
Cấu trúc địa chỉ URL có dạng
<filename>.aspx?&<các tham số>
Cấu trúc địa chỉ rành mạch theo
dạng Controllers/Action/Id
3. URL routing (Định tuyến URL):
3.1. Nhiệm vụ của hệ thống định tuyến trong ASP.NET MVC:
8
ASP.NET MVC Framework có một hệ thống định tuyến URL (URL Routing
System) linh hoạt cho phép xác định các quy tắc ánh xạ địa chỉ URL bên trong ứng
dụng. Một hệ thống định tuyến có 2 mục đích:
•Xây dựng một tập hợp các URL đi vào ứng dụng và định tuyến chúng tới các
Controller và thực thi các phương thức Action để xử lý.
•Xây dựng các URL gửi đi mà có thể gọi ngược trở lại Controllers/Actions (ví
dụ: form posts, liên kết <a href=“”> và các lời gọi AJAX)
Sử dụng các quy tắc ánh xạ URL để điều khiển URL đi vào và đi ra để tăng tính
mềm dẻo cho việc lập trình ứng dụng, nghĩa là nếu muốn thay đổi cấu trúc URL (ví
dụ /Catalog thành /Products) có thể thay đổi một tập hợp quy tắc ánh xạ mức ứng
dụng mà không cần phải viết lại mã lập trình bên trong Controllers và Views.
3.2. Các quy tắc định tuyến URL mặc định trong ASP.NET MVC Web
Application:
Mặc định khi tạo ứng dụng với ASP.NET MVC Web Application trong Visual
Studio sẽ tạo ra một ASP.NET Application class gọi là Global.asax chứa cấu hình
các quy tắc định tuyến URL. Xây dựng các định tuyến thông qua phương thức

RegisterRoutes (ReouteCollection routes) và khi ứng dụng bắt đầu, phương thức
Application_Start() trong Global.asax.cs sẽ gọi RegisterRoutes để tạo ra bảng định
tuyến.
Mặc định định tuyến URL trong ASP.NET MVC Framework có cấu trúc
dạng: Controllers/ControllerAction/Id
Với ASP.NET MVC Web Application thì mặc định Controllers là
HomeController, mặc định ControllerAction là Index, mặc định Id là rỗng. Nghĩa là
khi gọi trang web được xây dựng thông qua template ASP.NET Web Application
thì mặc định http://localhost/ tương đương với http://localhost/Home/Index/
Khi ứng dụng ASP.NET MVC Web Application nhận được một Url, MVC
Framework sẽ định giá các quy tắc định tuyến trong tập hợp RouteTable.Routes để
quyết định Controller nào sẽ điều khiển request.
9
MVC Framework chọn Controller bằng cách định giá các quy tắc trong bảng
định tuyến theo trật tự đã có sẵn.
4. Các ưu điểm và nhược điểm của ASP.NET MVC:
4.1. Ưu điểm:
•Phát triển phần mềm: Có tính chuyên nghiệp hóa, có thể chia cho nhiều
nhóm được đào tạo nhiều kỹ năng khác nhau, từ thiết kế mỹ thuật cho đến lập trình
đến tổ chức database.
•Bảo trì: Với các lớp được phân chia, các thành phần của một hệ thống dễ
dàng được thay đổi, nhưng sự thay đổi có thể được cô lập trong từng lớp, hoặc chỉ
ảnh hưởng đến lớp ngay gần kề của nó, không phát tán trong cả chương trình.
•Mở rộng: Với các lớp được chia theo ba lớp như đã nói, việc thêm chức năng
vào cho từng lớp sẽ dễ dàng hơn là phân chia theo cách khác.
•Hỗ trợ tốt hơn cho test-driven development cài đặt các unit tests tự động, xác
định và kiểm tra lại các yêu cầu trước khi bắt tay vào viết code.
4.2. Nhược điểm:
•Đối với dự án nhỏ: Cồng kềnh, tốn thời gian phát triển.
•Tốn kém nhiều tài nguyên cho sự cân bằng, do tốn thời gian trung chuyển

DTO (Data Transfer Object) giữa các layers.
10
CHƯƠNG III: PHÂN TÍCH & THIẾT KẾ
1. Danh sách Actor:
STT Actor Mô tả
1 Quản trị Quản trị hệ thống
2 Nhân viên Quản lý Tuyến, Xe, Lịch trình
3 Khách hàng Đặt vé và Quản lý vé của mình
4 Khách viếng thăm Tra cứu Tuyến
2. Danh sách Use Case:
STT Use Case Mô tả
1 Đăng nhập Use case Đăng nhập hệ thống
2 Phục hồi mật khẩu Use case phục hồi lại mật khẩu đăng nhập hệ thống.
3 Đăng xuất Use case Đăng xuất hệ thống.
4 Tra cứu vé Use case cho phép Tra cứu thông tin để Đặt vé.
5 Đặt vé Use case cho phép Đặt vé xe.
6 Thanh toán Use case cho phép thực hiện thanh toán tiền vé.
7 Hủy vé Use case cho phép Hủy vé xe đã đặt.
8
Xác nhận Vé
đã Thanh toán
Use case cho phép Xác nhận Vé đã Thanh toán
9 Xử lý Khách chờ Use case cho phép Xử lý Khách hàng đã đặt chờ vé
10 Quản lý Tài khoản Use case cho phép đăng ký tài khoản mới, sửa thông tin Tài khoản
11
Quản lý Danh
mục địa điểm
Use case cho phép thêm, xóa, sửa, xem thông tin Xe.
12
Quản lý Hình

thức giảm giá
Use case cho phép thêm, xóa, sửa, xem thông tin Tuyến.
13 Quản lý Lịch trình Use case cho phép thêm, xóa, sửa, xem thông tin Lịch trình.
14 Quản lý Loại Vé Use case cho phép thêm, xóa, sửa, xem thông tin Loại Vé.
15 Quản lý Loại Xe Use case cho phép thêm, xóa, sửa, xem thông tin Loại Xe.
16 Quản lý Tuyến
Use case cho phép thêm, xóa, sửa, xem thông tin Hình thức
giảm giá.
17 Quản lý Xe
Use case cho phép thêm, xóa, sửa, xem thông tin Danh mục
địa điểm.
18 Thống kê Use case thực hiện báo cáo thống kê.
11
3. Sơ đồ Use Case tổng quát:
12
Hình 2: Use case Tổng quát
13
4. Mô tả và biểu đồ Use Case:
USE CASE ĐĂNG NHẬP
No. UC01
Name Đăng nhập
Description Cách Actor đăng nhập vào hệ thống thông qua tài khoản của mình.
Actor Quản trị, Nhân viên, Khách hàng.
Preconditions
Actor đã có tài khoản trong hệ thống và chưa đăng nhập vào hệ
thống.
Post
Conditions
Actor đã đăng nhập vào hệ thống.
Main flow

1. Actor nhập vào Tên đăng nhập và Mật khẩu.
2. Actor chọn nút Đăng nhập.
3. Hệ thống kiểm tra Tên đăng nhập và Mật khẩu ở DB.
4. Đăng nhập thành công, hệ thống chuyển về trang chủ.
Exception
3.1. Tên đăng nhập hoặc Mật khẩu sai: hệ thống thông báo đăng
nhập không thành công và yêu cầu nhập lại.
Hình 3: Biểu đồ Tuần tự cho Use case Đăng nhập
USE CASE PHỤC HỒI MẬT KHẨU
No. UC02
14
Name Phục hồi mật khẩu
Description Cách Actor phục hồi mật khẩu của mình.
Actor Khách hàng
Preconditions Actor đã có tài khoản trong hệ thống và chưa đăng nhập.
Post
Conditions
Actor nhận được email chứa mật khẩu mới từ hệ thống.
Main flow
1. Actor nhập Tên đăng nhập hoặc Email.
2. Hệ thống kiểm tra Tên đăng nhập hoặc Email phải được nhập
vào. Tên đăng nhập không chứa ký tự đặc biệt, Email đúng cú
pháp.
3. Hệ thống kiểm tra Tên đăng nhập hoặc Email ở DB.
Exception
3.1 Tên đăng nhập hoặc Email tồn tại trong hệ thống, hệ thống tự
động gửi Email chứa mật khẩu mới tới địa chỉ mail đã đăng ký.
3.2 Tên đăng nhập hoặc Email không tồn tại trong hệ thống,
thông báo không tồn tại tài khoản và kết thúc Use Case.
Hình 4: Biểu đồ Tuần tự cho Use case Phục hồi mật khẩu

USE CASE ĐĂNG XUẤT
No. UC03
Name Đăng xuất
15

×