Với suy nghĩ như vậy, bản thân em muốn đưa ra một giải pháp ứng dụng côngnghệ thông tin trong tầm hiểu biết của mình với nội dụng chính là xây dựng websitebán vé xe trực tuyến, nhằm cung
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Tel (84-511) 736 949, Fax (84-511) 842 771
Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn
LUẬN VĂN TỐT NGHIỆP KỸ SƯ NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH : 05115
ĐỀ TÀI :
TÌM HIỂU YII FRAMEWORK:
ỨNG DỤNG XÂY DỰNG WEBSITE BÁN VÉ XE KHÁCH TRỰC TUYẾN
Mã số : 06T4 – 046 Ngày bảo vệ : 15/06/2011 – 16/06/2011
SINH VIÊN : NGUYỄN THỊ MỸ TÂM LỚP : 06T4
CBHD : PGS.TS VÕ TRUNG HÙNG
ĐÀ NẴNG, 06/2011
Trang 2Tôi xin chân thành cảm ơn các thầy cô giáo trong khoa Công Nghệ Thông Tin cùng toàn thể thầy cô của trường Đại Học Bách Khoa Đà Nẵng
đã truyền đạt cho tôi những kiến thức quý giá trong suốt những năm học vừa qua.
Xin chân thành cảm ơn thầy Võ Trung Hùng đã tận tình chỉ bảo và giúp
đỡ cho tôi hoàn thành luận văn này.
Cuối cùng, tôi cũng xin bày tỏ lòng biết ơn đến đối với các bạn trong khoa công nghệ thông tin, những người đã giúp đỡ, chia sẻ những kiến thức, kinh nghiệm, tài liệu…trong suốt quá trình nghiên cứu thực hiện đề tài.
Đà Nẵng, ngày 04 tháng 06 năm 2011
Sinh viên Nguyễn Thị Mỹ Tâm
Trang 3Tôi xin cam đoan:
1 Những nội dung trong báo cáo này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy Võ Trung Hùng.
2 Mọi tham khảo dùng trong báo cáo này đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm.
Sinh viên thực hiện
Nguyễn Thị Mỹ Tâm
Trang 4
Đà Nẵng ngày … tháng … năm 2011
Cán bộ hướng dẫn
PGS TS Võ Trung Hùng
Trang 5
Đà Nẵng, ngày … tháng … năm
2011
TM Hội đồng phản biện
Trang 61 Tên đề tài :
Tìm hiểu Yii Framework:
Xây dựng website bán vé xe khách trực tuyến
2 Các yêu cầu đặt ra:
2.1.1 Tìm hiểu các công cụ phát triển phần mềm có liên quan: UML, hệquản trị cơ sở dữ liệu MySQL, ngôn ngữ thiết kế web PHP
2.1.2 Tìm hiểu Yii Framework và cách xây dựng ứng dụng với Yii
o Kiểm tra hiện trạng vé đã đặt
o Hiển thị danh sách các đại lý bán vé xe khách trên địa bànthành phố Đà Nẵng
o Hiển thị các thông tin, thông báo từ phía ban quản trị
o Hỗ trợ người dùng ìm kiếm các nội dung thông tin đã đăng
o Cung cấp giao diện quản lý cho những người được phânquyền
o Có chức năng tương tác với người dùng như: nhận xét bài viết,liên lạc phản hồi thông tin
Trang 7TỔNG QUAN VỀ ĐỀ TÀI 3
1.1 Bối cảnh thực hiện đề tài 3
1.2 Mục tiêu, ý nghĩa của đề tài 3
1.3 Công cụ và môi trường thực hiện đề tài 4
CƠ SỞ LÝ THUYẾT 5
2.1 Sơ lược về UML và StarUML 5
2.1.1 Giới thiệu UML 5
2.1.2 Quá trình phát triển của UML 6
2.1.3 Các thành phần của UML 6
2.1.4 Sơ lược về StarUML 12
2.2 Ngôn ngữ PHP và hệ quản trị MySQL 13
2.2.1 Ngôn ngữ PHP 13
2.2.2 Hệ quản trị MySQL 15
2.3 Tìm hiểu Yii Framework 16
2.3.1 Giới thiệu Yii Framework 16
2.4.2 Các tính năng của Yii 18
ĐẶC TẢ CHỨC NĂNG HỆ THỐNG 27
3.1 Khảo sát hiện trạng 27
3.2 Chức năng các Actor tham gia vào hệ thống 28
3.2.1 Người dùng chung (User) 28
3.2.2 Nhân viên chuyên trách (Agent) 29
3.2.3 Quản trị hệ thống (Admin) 30
3.3 Xây dựng kịch cảnh cho các usecase 31
3.3.1 Người dùng chung 31
3.3.2 Nhân viên chuyên trách 36
3.3.3 Người quản trị hệ thống 39
3.4 Sơ đồ use-case 44
PHÂN TÍCH THIẾT KẾ HỆ THỐNG 48
4.1 Mô hình hóa các lớp ứng dụng 48
4.2 Mô hình hóa hành vi 50
4.2.1 Biểu đồ hoạt động 51
4.2.2 Biểu đồ tuần tự 53
4.3 Thiết kế hệ thống 55
4.4.1 Thiết kế cơ sở dữ liệu 55
4.4.2 Lược đồ cơ sở dữ liệu quan hệ 63
XÂY DỰNG VÀ TRIỂN KHAI HỆ THỐNG 65
5.1 Phần front-end 65
5.1.1 Trang chủ 65
5.1.2 Tìm kiếm chuyến xe 65
5.1.3 Giao diện quá trình đặt vé 67
Trang 85.2.2 Nhân viên chuyên trách quản lý tin tức 69
5.3 Thử nghiệm và đánh giá 71
5.3.1 Thử nghiệm 71
5.3.2 Đánh giá 71
KẾT LUẬN 73
Trang 9MỞ ĐẦU
Từ xưa đến nay, giao thông đi lại đã trở thành nhu cầu thiết yếu của conngười Thực tế đã chứng minh rằng nhu cầu ấy không chỉ giải quyết nhu cầu cánhân mà còn góp phần thúc đẩy và cải thiện các lĩnh vực khác của đời sống xã hội.Ngày nay, cùng với sự phát triển không ngừng của xã hội, con người ngàycàng mở rộng phạm vi hoạt động của mình Ở các thành phố lớn của nước ta hiệnnay, kéo theo nhu cầu đi lại tăng cao (đặc biệt là vào dịp lễ, tết) thường xuất hiện sựbất cập và khó khăn cho hành khách khi muốn đặt vé xe, vé tàu Nhiều khi chỉ vìmột chuyến đi mà hành khách phải chạy vạy, liên lạc với rất nhiều công ty lữ hành -vận tải nhưng kết quả vẫn không đặt được vé hoặc đặt được vé nhưng phải ngồituyến xe với những điều kiện không ưng ý, chưa kể là phải tốn nhiều thời gian vàcông sức Mặt khác, tâm lý một bộ phận người dân vẫn có thói quen không đếnđúng bến xe để đi mà lại đón xe dọc đường gây nên cảnh mất trật tự và kém mỹquan
Về phía các công ty vận tải vẫn thường thấy hiện tượng đậu đỗ không đúngnơi đúng bến, đón bắt khách dọc đường, chở nhồi nhét quá số người quy định, chèn
ép giá cả, xuất bến không đúng giờ, … Với cách hoạt động như vậy, ngay bản thâncông ty cũng không dự trù được số khách trên mỗi tuyến xe và chi phí khi thực hiệnmột cuộc hành trình
Trước sự lớn mạnh, tiện dụng và phổ cập của các ứng dụng công nghệ thôngtin đối với nhiều lĩnh vực quản lý và thương mại, một số công ty vận tải đã dùngInternet làm phương tiện quảng bá và tiếp cận cộng đồng Tuy nhiên, số lượng cũngnhư chất lượng những phần mềm này vẫn còn khá hạn chế và vẫn chưa được pháthuy hết sức mạnh của nó Hơn nữa, hầu hết các công ty lữ hành chỉ tập trung vàoviệc chỉ quản lý dữ liệu và cung cấp thông tin chỉ riêng cho công ty mình, dẫn đếnviệc để tìm thông tin về một chuyến xe nào đó, người dùng phải truy cập lần lượtnhiều trang web của các công ty lữ hành khác nhau, thao tác lặp lại nhiều lần gâymất thời gian, chưa kể đến việc sẽ bất tiện khi người dùng muốn so sánh, chọn lọc
Trang 10Với suy nghĩ như vậy, bản thân em muốn đưa ra một giải pháp ứng dụng côngnghệ thông tin trong tầm hiểu biết của mình với nội dụng chính là xây dựng websitebán vé xe trực tuyến, nhằm cung cấp thêm một giải pháp hỗ trợ người dùng trongviệc truy cập và tìm kiếm thông tin về các tuyến xe khách và tiến hành đặt vé xequa mạng.
Chương trình được thiết kế dựa trên những tìm tòi về Yii Framework – là mộtframework rất mới của PHP- một ngôn ngữ rất thịnh hàng trong việc thiết kế webnhất là các trang thương mại điện tử
Bố cục đồ án được chia thành các phần:
Chương 1: Tổng quan đề tài
Nêu tổng quan đề tài, mục đích của đề tài, công cụ và môi trường thực hiện
Chương 2: Cơ sở lý thuyết
Giới thiệu các lý thuyết liên quan đến đề tài
Chương 3: Đặc tả chức năng của hệ thống
Đặc tả các chức năng chính của website cần xây dựng
Chương 4: Phân tích thiết kế hệ thống
Trình bày cách giải quyết yêu cầu đề tài
Chương 5: Xây dựng triển khai hệ thống
Trình bày bố cục của hệ thống, các module của chương trình
Trang 11
CHƯƠNG 1
TỔNG QUAN VỀ ĐỀ TÀI
1.1 Bối cảnh thực hiện đề tài
Trong mấy thập nên gần đây, thương mại điện tử đang là lĩnh vực rất pháttriển và chiếm nhiều ưu thế do tính tiện dụng, nhanh chóng và có tính phổ cập cao
Do đó, lĩnh vực kinh doanh vận tải hành khách cũng sẽ dần chuyển sang hình thứcthương mại điện tử cũng là điều tất yếu
Hơn nữa, xu hướng phát triển của các phần mềm cho các công ty hiện nay đềutập trung vào việc phát triển các ứng dụng hỗ trợ chạy trên nền web nhằm tận dụngtối đa những lợi ích mà Internet mang lại: quảng bá tốt hình ảnh công ty, có thể truycập được mọi lúc mọi nơi, …
Với sự trợ giúp của công nghệ web động với ngôn ngữ PHP, rất nhiều PHPFramework ra đời đã tạo ra một công cụ mới trong giới lập trình web làm cho cácwebsite mang tính mềm dẻo, linh hoạt và có tính kế thừa cao đang là lựa chọn củarất nhiều nhà phát triển các ứng dụng web Các PHP Framework nổi trội có thể kểđến là: Zend Framework, CakePHP, Symfony, Codelgniter … Và gần đây, YiiFramework ra đời đang là một sự tìm tòi và thử nghiệm mới cho giới lập trình webnói chung và những người yêu thích phát triển công nghệ web với PHP nói riêng
1.2 Mục tiêu, ý nghĩa của đề tài
Mục đích của đồ án tốt nghiệp này là muốn tạo ra một website giải quyếtviệc hỗ trợ bán vé xe khách trực tuyến dựa trên những kiến thức về quy trình pháttriển phần mềm, kết hợp với sự tiếp cận và tìm hiểu Yii Framework
Website được xây dựng với những chức năng hỗ trợ cho cả người mua (hànhkhách đi xe) và người bán (công ty xe khách):
Về phía hành khách:
- Có thể tìm hiểu thông tin về các tuyến xe: giá cả, nơi xuất phát, địa điểm đưa
đón, giờ đi – giờ đến, các dịch vụ kèm theo mà không cần phải đến trực tiếp công
ty hoặc các địa điểm bán vé
Trang 12- Cập nhật được các chương trình quảng cáo, khuyến mãi của công ty, tậndụng những điều kiện và thời điểm tốt để mua vé.
- Tìm được địa điểm của các đại lý bán vé nếu muốn liên hệ trực tiếp các đại
ly này
Về phía công ty xe khách:
- Quản lý có hiệu quả các tuyến xe.
- Quản lý việc mua và bán vé, xem thông tin về các giao dịch với khách hàng
- Quảng bá được hình ảnh của công ty và các chương trình khuyến mãi, tạonên ấn tượng tốt cho hành khách
Ngoài ra, mục đích của đề tài còn mong muốn tạo ra một kênh liên lạcchung, một đầu mối thông tin với sự tham gia và phối hợp của các công ty xekhách, tạo nên một cổng thông tin đầy đủ và toàn diện về mạng lưới xe khách, mộtmôi trường cạnh tranh bình đẳng giữa các công ty xe khách và có thể hỗ trợ chonhau trong việc phục vụ hành khách một cách tốt nhất
1.3 Công cụ và môi trường thực hiện đề tài
- Hệ quản trị cơ sở dữ liệu MySQL
- Công cụ mô hình hóa StartUML
- Ngôn ngữ lập trình web PHP trên Yii Framework
Trang 13CHƯƠNG 2
CƠ SỞ LÝ THUYẾT
2.1 Sơ lược về UML và StarUML
2.1.1 Giới thiệu UML
UML (viết tắt của Unifield Modeling Language - ngôn ngữ mô hình hóa hợpnhất) là một ngôn ngữ mô hình hoá thống nhất có phần chính bao gồm những kýhiệu hình học, được các phương pháp hướng đối tượng sử dụng để thể hiện và miêu
tả các thiết kế của một hệ thống Nó là một ngôn ngữ để đặc tả, trực quan hoá, xâydựng và làm sưu liệu cho nhiều khía cạnh khác nhau của một hệ thống có nồng độphần mềm cao UML có thể được sử dụng làm công cụ giao tiếp giữa người dùng,nhà phân tích, nhà thiết kế và nhà phát triển phần mềm
Sự ra đời của UML được đánh dấu bằng sự ra đời các ngôn ngữ hướng đốitượng như Simula, Smalltalk và C++ vào thập niên 1980 Do sự xuất hiện của cácngôn ngữ lập trình hướng đối tượng đã nảy sinh nhu cầu mô hình hoá các hệ thốngphần mềm theo hướng đối tượng Và một vài trong số những ngôn ngữ mô hình hoáxuất hiện những năm đầu thập kỷ 90 được nhiều người dùng là:
- Grady Booch’s Booch Modeling Methodology
- James Rambaugh’s Object Modeling Technique – OMT
- Ivar Jacobson’s OOSE Methodology
- Hewlett- Packard’s Fusion
- Coad and Yordon’s OOA and OOD
Mỗi phương pháp luận và ngôn ngữ trên đều có hệ thống ký hiệu riêng,phương pháp xử lý riêng và công cụ hỗ trợ riêng, khiến nảy ra cuộc tranh luậnphương pháp nào là tốt nhất Đây là cuộc tranh luận khó có câu trả lời, bởi tất cảcác phương pháp trên đều có những điểm mạnh và điểm yếu riêng
Trang 14Trong bối cảnh trên, người ta nhận thấy cần thiết phải cung cấp một phươngpháp tiệm cận được chuẩn hoá và thống nhất cho việc mô hình hoá hướng đốitượng Đã có ba công trình tiên phong nhắm tới mục tiêu đó, chúng được thực hiệndưới sự lãnh đạo của James Rumbaugh, Grady Booch và Ivar Jacobson Chính
những cố gắng này dẫn đến kết quả là xây dựng được một ngôn ngữ mô hình hoá thống nhất (Unifield Modeling Language – UML).
2.1.2 Quá trình phát triển của UML
Từ khi ra đời cho đến nay, UML đã phát triển qua các giai đoạn, và sau mỗi giai đoạn các chức năng, thành phần cũng như mục đích của nó ngày càng được
củng cố và hoàn thiện hơn
Các phiên bản cụ thể của UML được thể hiện dưới đây
Hình 1 - Các giai đoạn phát triển UML
2.1.3 Các thành phần của UML
Ngôn ngữ UML bao gồm một loạt các phần tử đồ họa (graphic element) cóthể được kếp hợp với nhau để tạo ra các biểu đồ Bởi đây là một ngôn ngữ, nênUML cũng có các nguyên tắc để kết hợp các phần tử đó
Một số những thành phần chủ yếu của ngôn ngữ UML:
UML
phiên bản 0
10/1995
UML 0.9
6/1996
UML 1.1 1/1997
IBM & Softeam & UML
đưa ra phiên bản 1.1
UML 1.1 14/11/1997
OMG công nhận chuẩn cho các ngôn ngữ mô hình hóa và trao đặc quyền xét lại cho UML
UML 1.2
6/1998
UML 1.3
10/1998
UML 1.4
5/2001
UML 2.0 2003
Trang 152.1.3.1 Hướng nhìn (view):
Hướng nhìn chỉ ra những khía cạnh khác nhau của hệ thống cần phải được
mô hình hóa Một hướng nhìn không phải là một bản vẽ, mà là một sự trừu tượnghóa bao gồm một loạt các biểu đồ khác nhau Chỉ qua việc định nghĩa của một loạtcác hướng nhìn khác nhau, mỗi hướng nhìn chỉ ra một khía cạnh riêng biệt của hệthống, người ta mới có thể tạo dựng nên một bức tranh hoàn thiện về hệ thống.Cũng chính các hướng nhìn này nối kết ngôn ngữ mô hình hóa với quy trình đượcchọn cho giai đoạn phát triển
Hình 2 - Các View trong UML
- Hướng nhìn Use case (use case view) : đây là hướng nhìn chỉ ra khía cạnhchức năng của một hệ thống, nhìn từ hướng tác nhân bên ngoài
- Hướng nhìn logic (logical view): chỉ ra chức năng sẽ được thiết kế bêntrong hệ thống như thế nào, qua các khái niệm về cấu trúc tĩnh cũng như ứng xửđộng của hệ thống
- Hướng nhìn thành phần (component view): chỉ ra khía cạnh tổ chức của cácthành phần code
- Hướng nhìn song song (concurrency view): chỉ ra sự tồn tại song song,trùng hợp trong hệ thống, hướng đến vấn đề giao tiếp và đồng bộ hóa trong hệthống
Trang 16- Hướng nhìn triển khai (deployment view): chỉ ra khía cạnh triển khai hệthống vào các kiến trúc vật lý (các máy tính hay trang thiết bị được coi là trạm côngtác)
2.1.3.2 Biểu đồ (Diagram)
Biểu đồ là các hình vẽ miêu tả nội dung trong một hướng nhìn UML có tất
cả 9 loại biểu đồ khác nhau được sử dụng trong những sự kết hợp khác nhau đểcung cấp tất cả các hướng nhìn của một hệ thống
Các loại sơ đồ:
Hình 3- Phân loại các biểu đồ trong UML 2.0
2.1.3.3 Phần tử mô hình hóa (model elemens)
Các khái niệm được sử dụng trong các sơ đồ được gọi là các phần tử môhình, ví dụ như lớp, đối tượng, thông điệp, liên kết, phụ thuộc,…Mỗi phần tử môhình được định nghĩa với ngữ nghĩa, đó là một định nghĩa về bản chất phần tử, hay
là một xác định ý nghĩa chính xác xem nó sẽ thể hiện điều gì trong những lời khẳngđịnh rõ ràng Mỗi một phần tử mô hình còn có một sự miêu tả trực quan, một kíhiệu hình học được sử dụng để miêu tả phần tử này trong sơ đồ
Sơ đồ
Sơ đồ cấu trúc
đa hợp
Sơ đồ gói
Sơ đồ
thành
phần
Sơ đồ đối tượng
Sơ đồ use-case
Sơ đồ tương tác
Sơ đồ hành vi
Sơ đồ máy trạng thái
Sơ đồ hoạt động
Sơ đồ bao quát tương tác
Sơ đồ trình tự
Sơ đồ giao tiếp
Sơ đồ thời khắc
Trang 17Mỗi phần tử mô hình được sử dụng trong nhiều sơ đồ khác nhau, nhưng nó luôn chỉ có một ý nghĩa và một kí hiệu.
STT Phần tử mô hình Mô tả
chứa đựng bằng cách đặt các thành phầnkhác vào trong nó
2
Actor
Tác nhân: là một người hoặc một vật,
hoặc một hệ thống khác, tương tác với hệthống, sử dụng hệ thống, bằng cách, tácnhân gởi thông điệp đến hệ thống, hoặcnhận thông điệp xuất phát từ hệ thống,hoặc thay đổi các thông tin cùng với hệthống Ngoài cách biểu diễn này, phần tử
mô hình tác nhân còn có thể được biểudiễn dưới dạng một hình chữ nhật như mộtlớp và khuôn mẫu <<Actor>> cũng phảiđược xác định cùng với lớp đó
3
Note
Ghi chú: được sử dụng khi một phần của
sơ đồ không thể hiện hết ý đồ của nó, vàđược xem như là lời giải thích, nó có thểchứa bất kỳ loại thông tin nào, và sẽ khôngđược UML diễn giải
4
Use case
Use-case: biểu thị cho một chức năng
nguyên vẹn mà một tác nhân nhận được,
nó là một chuỗi hành động mà hệ thốngthực hiện để tạo ra một kết quả có thể quansát được, tức là một giá trị đến với một tácnhân cụ thể
Trang 186 Class
Attributes Operation()
Lớp: mang ý nghĩa của hướng đối tượng,
các thuộc tính và phương thức cũng đượcthể hiện ở đây
Attributes Operation()
Đối tượng: chỉ cái cụ thể của một lớp các
đối tượng Tuy nhiên, nó phải phân biệtvới các thuộc tính cũng như các phươngthức đều cụ thể, và có đường gạch dưới đểphân biệt với lớp
8 Node Nút: đại diện cho các tài nguyên xử lý hệ
thống như các máy tính có bộ xử lý và bộnhớ, v.v…
đối tượng nào đó tại một thời điểm nào đó
13
Activity
Hoạt động: đặc trưng cho khả năng hoạt
động của một quá trình nào đó
14 Quan hệ liên kết: biểu diễn liên hệ giữa
một tác nhân và một use-case, hoặc giữacác lớp
15 Quan hệ phụ thuộc: cho biết sự phụ thuộc
của một phần tử trong một phương thức
Trang 19nào đó với một phần tử khác.
16 Quan hệ kết tập: cho biết một lớp bao gồm
các lớp thành phần khác, không bắt buộcphải đầy đủ
17 Quan hệ khái quát hóa: biểu thị cho khả
năng thừa kế, tức một lớp có thể thừa kế từmột lớp khác về cả thuộc tính và phươngthức
18 Quan hệ nhận thức: biểu thị cho khả năng
nhận biết qua một sự kiện hay thông điệpnào đó Nó biểu thị liên hệ giữa một lớp vàmột giao diện
19 Quan hệ cấu thành: biểu thị cho một lớp
vì nó dễ dàng giao tiếp giữa các bên tham gia
Lý do thứ hai UML là ngôn ngữ mô hình hợp nhất Nó là sản phẩm kết hợp
từ các ý tưởng của ba nhà dẫn đầu trong việc lập mô hình hướng đối tượng và kếthợp chúng thành một ký hiệu duy nhất Từ các phiên bản đầu tiên, một số tổ chứcliên quan đến việc phát triển UML cũng cố gắng hợp tác đặc điểm tốt nhất của cácngôn ngữ lập mô hình khác, vì thế UML có thể được xem là ngô ngữ tốt nhất tronglĩnh vực này
Trang 202.1.4 Sơ lược về StarUML
Các phiên bản của StarUML bắt đầu xuất hiện từ năm 1996 (phiên bản 0.9).Sau đó, từ năm 1997 đến 2005, các version tiếp theo đều được nâng cao và cảithiện, nhiều tính năng mới cũng dần được cập nhật Cho đến nay, phiên bản mớinhất hiện dùng là StarUML 5.0
2.1.4.2 Các chức năng chính
- UML liên tục mở rộng các tiêu chuẩn quản lý bởi OMG (ObjectManagement Group) StarUML được phát hành với khả năng hỗ trợ tốt UML 2.0,với đầy đủ các tính năng để người phát triển phần mềm có thể thiết kế các loại biểu
đồ trong quá trình phân tích và thiết kế hệ thống
- Có thể import được từ các file XML và các file định dạng của RationalRose Đồng thời kết quả mô hình hóa có thể dễ dàng export ra các file ảnh *.JPEGhoặc định dạng Windows Metafiles
- Hỗ trợ công cụ Code Generator để người dùng dễ dàng tạo code mẫu theo
mô hình thiết kế tương ứng đã tạo Hiện StarUMl đang hỗ trợ tốt ngôn ngữ Java, C#
và C++
- Giao diện StarUMl được thiết kế tương thích với người dùng, bộ công cụđược cài đặt tương đối nhẹ và miễn phí bản quyền nên StarUMl là lựa chọn rất tốtcho việc phát triển các phần mềm ứng dụng vừa và nhỏ
2.2 Ngôn ngữ PHP và hệ quản trị MySQL
2.2.1 Ngôn ngữ PHP
2.2.1.1 PHP là gì?
Trang 21PHP là cụm từ viết tắt của cụm từ Personal Home Page được phát triển từ năm
1994 bởi Rasmus Lerdorf
Lúc đầu chỉ là một bộ đặc tả Perl, được sử dụng để lưu dấu vết người dùngtrên các trang web Sau đó, Rasmus Lerdorf đã phát triển PHP như một máy đặc tả(Scripting Engine) Vào giữa năm 1997, PHP đã không còn là dự án cá nhânRasmus Lerdorf nữa mà đã phát triển nhanh chóng với sự yêu thích của nhiều người
và trở thành một công nghệ web quan trọng
Zeev Suraski và Andi Gutman đã hoàn thiện việc phân tích cú pháp cho PHP.Đến tháng 6 -1998, PHP3 ra đời (với phần mở rộng là *.php3) Sau đó, yêu cầu viếtlại bộ đặc tả cho PHP đã được đặt ra dẫn đến sự ra đời của PHP4 (với phần mởrộng là *.php) PHP bây giờ được gọi là PHP Hypertext Preprocessor
PHP4 nhanh hơn PHP3 rất nhiều đã làm cho số nhà phát triển dùng PHP đãlên đến hàng trăm nghìn và hàng triệu site đã công bố cài đặt PHP, chiếm khoảng20% số tên miền trên mạng Internet Cùng với sự thành công vang dội ấy, cộngđồng PHP rộng lớn đã nhanh chóng giúp các nhà phát triển nhận ra những yếu kémcủa PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lýXML, không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ dịch
vụ web yếu Những điểm này chính là mục đích để Zeev và Andi viết Zend Engine2.0, lõi của PHP 5.0 PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004.Hiện nay phiên bản tiếp theo của PHP đang được phát triển và kỳ vọng sẽ lấpđầy những khuyết điểm của PHP ở phiên bản hiện tại
2.2.1.2 Tại sao phải sử dụng PHP?
Ta hãy xem xét cách hoạt động của một trang web được viết bằng ngôn ngữPHP:
Khi một trang PHP được yêu cầu, web server phân tích và thi hành các đoạn
mã PHP để tạo ra trang HTML Điều đó được thực hiện qua 4 bước sau:
Trang 22Hình 4- Cách thức hoạt động của trang web viết bằng PHP
Do các trang *.php được viết bằng các đoạn mã PHP được thực hiện trênmáy chủ Web server nên sẽ tạo cho trang web tính linh động và mềm dẻo
Ngoài ra, PHP còn có rất nhiều điểm mạnh như:
- PHP thực hiện với tốc độ rất nhanh và hiệu quả Một server bình thường cóthể đáp ứng được hàng triệu truy cập tới trong một ngày
- PHP hỗ trợ kết nối tới nhiều cơ sở dữ liệu khác nhau: PostgreSQL, MySQL,Oracle, DBM, filePro, Hyperware, Informix, InterBase, SyBase,… Ngoài ra còn hỗtrợ kết nối với ODBC, thông qua đó có thể kết nối với nhiều ngôn ngữ khác màODBC hỗ trợ
- PHP cung cấp một hệ thống thư viện phong phú: do PHP ngay từ đầu đượcthiết kế nhằm mục đích xây dựng và phát triển các ứng dụng trên web nên PHPcung cấp rất nhiều hàm xây dựng sẵn giúp thực hiện các công việc một cách dễdàng: gửi – nhận mail, làm việc với các cookies, …
Trang 23- PHP có thể sử dụng được trên nhiều hệ điều hành, chúng ta có thể viết chúngtrên Unix, Lunix và các phiên bản của Windows, ta có thể đem mã PHP này chạytrên các hệ điều hành khách mà không phải sửa đổi lại mã.
- Trên hết, PHP là một ngôn ngữ mã nguồn mở Do đó, nó có một cộng đồngphát triển và hỗ trợ đông đảo Từ đó, ta có thể tận dụng tối ưu những tính năng hữuích bổ trợ cho ứng dụng của chính mình
2.2.2 Hệ quản trị MySQL
2.2.2.1 Giới thiệu MySQL
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới và
được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng VìMySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển,hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rấtmạnh.Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng cótruy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải vềMySQL từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiênbản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix,FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu
quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL) MySQL được sử dụng cho
việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
2.2.2.2 Các ưu điểm của MySQL
- MySQL là một hệ quản trị nhỏ, bảo mật và rất dễ sử dụng, thường được sửdụng cho các ứng dụng cỡ nhỏ và trung bình Nó được sử dụng cho các ứng dụngclient/server với máy chủ mạnh
- Ngôn ngữ lập trình sử dụng viết các hàm API để truy cập cơ sở dữ liệuMySQL có thể là C, Perl, PHP …
Trang 24- Các bảng (table) trong cơ sở dữ liệu MySQL có kích thước rất lớn và đượclưu ở thư mục Datas Kích thước lớn nhất của một bảng tối thiểu là 4GB và nó cònphụ thuộc vào kích thước lớn nhất của một file do hệ điều hành quy định.
- Cơ sở dữ liệu MySQL rất dễ quản lý và tốc độ xử lý cao hơn tới ba, bốn lần
so với các hệ quản trị cơ sở dữ liệu khác
- MySQL là hệ quản trị cơ sở dữ liệu mô hình quan hệ mã nguồn mở Đượccung cấp miễn phí trên các máy chủ UNIX, OS/2 và cả trên Windows
2.3 Tìm hiểu Yii Framework
2.3.1 Giới thiệu Yii Framework
2.3.1.1 Yii Framework là gì?
Yii là một PHP framework được xây dựng để phát triển các ứng dụng web quy
mô lớn dựa trên nền tảng component (thành phần sử dụng lại) nó cho phép việc tái
sử dụng tối đa trong lập trình web để có thể tăng tốc đáng kể tiến trình phát triểnweb
Yii được viết bằng PHP5, chủ yếu tập trung vào high-performance,component-based cho phép bạn dễ dàng tạo cũng như bảo trị các ứng dụng web,giúp bạn làm việc hiệu quả hơn
Yii có khả năng cung cấp cho người lập trình nền tảng chung để lập trình vàphát triển hầu như tất cả các loại ứng dựng web Bởi vì Yii rất nhẹ và trang bị bộnhớ đệm cho các giải pháp phức tạp nên nó đặ biệt thích hợp cho việc phát triển cácứng dụng có lưu lượng cao, chẳng hạn như các cổng thông tin, diễn đàn, các hệthống quản lý nội dung (CMS), hệ thống thương mại điện tử, v.v…
Yii bắt đầu do một nhóm các nhà phát triển do Qiang Xue đứng đầu sáng lập
từ năm 2008 trên nền tảng kế thừa các đặc tính của PRADO (cũng là một PHPFramework) Yii 1.0 chính thức được phát hành vào ngày 14 tháng 3 năm 2010.Hiện nay, nó đang có một nhóm phát triển ngày càng tăng và đang dần phổ biếntrong cộng đồng những người sử dụng mã nguồn mở nói chung và các nhà pháttriển web trên ngôn ngữ PHP nói riêng
2.3.1.2 Các đặc tính cơ bản của Yii
Trang 25Các đặc tính của Yii, được thể hiện qua tên gọi của nó (Yii có phiên âm /i:/viết tắt của các chữ cái Easy – Efficient – Extensible).
- Easy (dễ dàng): để phát triển ứng dụng trên Yii bạn cần biết PHP và OOP,ứng dụng được viết và bảo trì dựa trên các PHP class được thừa kế từ core YiiFramework
- Efficient (hiệu quả cao): ứng dụng Yii được viết theo mô hình MVC View-Controller) điều này giúp tăng khả năng tái sử dụng code, dễ dàng bảo trìcũng như nâng cấp sau này mà không ảnh hưởng nhiều đến hệ thống hiện tại Việctách biệt giữa business logic và presentation tăng khả năng tùy biến cho các sitekhác nhau
(Model Extensible (có khả năng mở rộng): hệ thống hỗ trợ sẵn ajax, web service,ADO, Active Record, cache, i18n, RBAC, theme… Ngoài các thư viện được cungcấp kèm theo, chúng ta có thể dễ dàng phát triển các extension theo nhu cầu hoặc sửdụng các thư viện khác như Zend chẳng hạn
Ngoài ra, Yii còn cung cấp các tính năng bảo mật như: tăng cường khả năngbảo mật, tránh các kiểu tấn công như SQL injection, cross-site scripting (XSS),cross-site request forgery (CSRF), and cookie tampering, …
2.3.1.3 Cài đặt và tạo ứng dụng với Yii
a) Những công cụ cần thiết:
Muốn chạy một ứng dụng Yii tối thiểu ta cần một Web server có hỗ trợ PHP5.1.0 trở lên Yii được test với Apache HTTP server trên hệ điều hành Windows vàLinux
b) Cài đặt:
- Download phiên bản mới nhất của Yii từ http://yiiframework.com
- Giải nén gói cài đặt vào thư mục web gốc
Tạo ứng dựng Yii:
- Ta chạy lệnh hệ thống tới thư thư mục hiện hành là WebRoot
Trang 26- Gọi lệnh: YiiRoot\framework\yicc webapp thumuc_ud
Trong đó: WebRoot là thư mục web gốc, YiiRoot là thư mục chứa Yii framework thumuc_ud là thư mục chứa mã nguồn mà ta muốn tạo ra
- Để kiểm tra cài đặt, truy cập: http://hostname/thumuc_ud/index.php
2.4.2 Các tính năng của Yii
2.4.2.1 Mô hình MVC trong Yii Framework
Yii thừa kế mẫu thiết kế model-view-controller (MVC) –là mẫu thiết kế đangđược ứng dụng rộng rãi nhất trong lập trình web Mục đích của mô hình MVC là chia phần xử lý logic tách biệt với giao diện người dùng để người phát triển có thể
dễ dàng thay đổi các phần mà không ảnh hưởng đến các phần còn lại
Một ứng dụng Yii được phát triển dựa trên mô hình MVC tổng quát được mô
tả như sau:
Hình 5– Cấu trúc tĩnh của ứng dụng Yii
Luồng hoạt động của ứng dụng được mô tả như sau:
Trang 271 Người sử dụng tạo một yêu cầu với các URL
http://www.example.com/index.php?r=post/show&id=1 và máy chủ web xử lý cácyêu cầu bằng cách thực thi scrip index.php
2 Các scrip tạo ra một đối tượng của ứng dụng và chạy nó
3 Ứng dụng này chứa các chi tiết thông tin mà người dùng yêu cầu từ một component ứng dụng được gọi là request
4 Ứng dụng quyết định các controller và action tương ứng nhờ vào thànhphần urlManager Trong thí dụ thì controller là post được đặ là lớpPostController, hành ddoongjowr đây là show
5 Ứng dụng này tạo ra một thể hiện của bộ điều khiển yêu cầu để tiếp tục xử
lý các yêu cầu của người dùng để truy cập đến phương thức (action) trongcontroller Hành động này được thực hiện nếu nó được cho phép bởi các bộ lọc(filters)
6 Hành động đọc model Post có ID là 1 từ cơ sở dữ liệu
7 Hành động này thể hiện qua một view được đặt tên là show với model Post
Trang 28Hình 6– Luồng hoạt động của một ứng dựng Yii
8 View đọc và hiển thị các thuộc tính của Post model
9 View thực thi các widgets
10 Kết quả view vẽ được nhúng vào trong layout
11 Hành động hoàn thành việc dựng hình View và hiển thị kết quả cho người dùng
a) Controller:
Một controller là một thể hiện của lớp CController hoặc lớp con của nó Nó
được tạo ra bởi các ứng dụng khi người dùng yêu cầu Khi một controller chạy, nóthực hiện các hành động (action) được yêu cầu và hoàn trả khung nhìn (view) thíchhợp Một hành động được hiểu đơn giản nhất là một phương thức của lớp
Controller có tên bắt đầu bằng chữ “action”.
Trang 29b) Model
Một một mdel là một thể hiện của lớp CModel hoặc lớp con của nó Model cung cấp dữ liệu và các dịch vụ liên quan đến dữ liệu bao gồm cả việc đánh giá tínhhợp lệ của dữ liệu
Một model đại diện cho một đối tượng dữ liệu, nó có thể là một hàng trong một bảng cơ sở dữ liệu hoặc một form nhập liệu của người dùng Mỗi trường của đối tượng dữ liệu sẽ là một thuộc tính của lớp model, mỗi thuộc tính có một nhãn
và được xác nhận dựa vào một tập quy tắc đã được định nghĩa
Yii cung cấp 2 loại model: form model and active record
- Form model: thừa kế từ lớp CCFormModel, dùng để thu thập dữ liệu được
nhập từ người dùng Ví dụ: trên trang đăng nhập chúng ta sử dụng một form để thể hiện thông tin username và password do người dùng nhập vào, như vậy ta cần tạo ramột form model giúp ta thực hiện các xử lý cần thiết trên form này (chi tiết có thể xem mục 2.4.2.2)
- Active Record (AR): là một mẫu thiết kế được dùng để truy cập cơ sở dữ liệu
trừu tượng trong lập trình hướng đối tượng Trong Yii, một model dạng này sẽ kế
thừa lớp CActiveRecord, một lớp AR thể hiện một bảng cơ sở dữ liệu, các thuộc
tính của bảng dữ liệu chính là các thuộc tính của lớp AR còn một đối tượng của ARchính là một dòng của bảng Kết quả là chúng ta có thể truy cập dữ liệu theo cáchhướng đối tượng rất dễ hiểu (Chi tiết xem mục 2.4.2.3)
c) View:
View là một đoạn mã PHP bao gồm chủ yếu là các yếu tố của giao diệnngười dùng Tên của view xác định file script được hiển thị
Trang 30Ví dụ, một view có tên là edit sẽ tham chiếu tới file script có tên là edit.php.
Để thể hiện view này trên trang web ta gọi phương thức CController::render() vớitên của view, phương thức này sẽ tự tìm ra file view tương ứng nằm trong thư mụcprotected/views/ControllerID
Bên trong view script, ta có thể truy cập các thuộc tính của controller bằngcách gọi: $this->propertyName
2.4.2.2 Làm việc với form
Như đã trình bày form dùng để thu thập dữ liệu do người dùng nhập vào.Ngoài việc thiết kế form, người lập trình còn cần tính đến việc xử lý với form cácgiá trị đã tồn tại hoặc giá trị mặc định, xác nhận các giá trị mà người dùng nhậpvào, hiển thị các thông báo lỗi cho đầu vào không hợp lệ và lưu trữ các trường nhậpvào
Các bước để xử lý với form trong Yii:
1 Tạo một lớp model đại diện cho các trường thu thập
Ví dụ: tạo một model cho trang đăng nhập
2 Tạo một controller action đáp lại form submission
Theo ví dụ trên, ta tạo một action có tên là login trong SiteController
public function actionLogin(){
$model=new LoginForm;
Trang 31//code xử lý
// display the login form
$this->render('login',array('model'=>$model));}
3 Tạo form trong view script file liên kết với action đã tạo (Ví dụ trên: ta tạofile login.php trong thư mục protected/view/site
2.4.2.3 Thao tác với cơ sở dữ liệu
Yii cung cấp các công cụ hỗ trợ rất mạnh cho việc lập trình với cơ sở dữ liệu.Được xây dựng dựa trên PHP Data Objects (PDO), Yii Data Access Objects(DAO) cho phép truy cập vào các các hệ quản trị cơ sở dữ liệu (DatabaseManagement Systems - DBMS) khác nhau trong một giao diện thống nhất Các ứngdụng phát triển với Yii có thể dễ dàng bật các DBMS khác nhau mà không cần phảiđiều chỉnh lại các mã truy cập dữ liệu
Muốn kết nối đến một cơ sở dữ liệu cho ứng dụng của mình, người dùng cấuhình lại file main.php nằm trong thư mục WebRoot\thumuc_source\protected\confignhư mã sau:
Khi xây dựng một ứng dụng web có tương tác cơ sở dữ liệu trên nền Yii,người phát triển được hỗ trợ bởi 3 phương pháp sau:
- Yii Query Builder cung cấp một phương pháp hướng đối tượng để xây dựngcác truy vấn SQL, giúp giảm nguy cơ của cuộc tấn công SQL injection
Trang 32- Yii Active Record (AR): thừa kế cách tiếp cận lược đồ quan hệ đối tượng(Object-Relational Mapping ORM) làm đơn giản hóa tối ưu việc lập trình cơ sở dữliệu Yii AR giảm thiểu việc lặp lại các lệnh SQL bằng cách tạo ra bộ vận hànhCRUD (Create, Read, Update và Delete).
- Ngoài ra, mặc dù các tính năng vế cơ sở dữ liệu của Yii có thể xử lý đượchầu hết các nhiệm vụ liên quan đến cơ sở dữ liệu, nhưng người dùng vẫn có thể sửdụng các thư viện cơ sở dữ liệu của chính họ trong các ứng dụng Yii Một sư thật làYii framework được thiết kế rất cẩn thận để có thể sử dụng được các thư viện củabên thứ ba
Với 3 phương pháp trên, ở đây chỉ xin trình bày phương pháp sử dụngActiveRecord:
Như đã trình bày ở trên, mỗi lớp AR đại diện cho một bảng cơ sở dữ liệu duynhất và một thể hiện của nó đại diện cho một hàng trong bảng
Ví dụ: ta có bảng cơ sở dữ liệu tbl_post được tạo ra bằng lệnh SQL như sau:
Để truy cập vào một bảng cơ sở dữ liệu, đầu tiên chúng ta cần phải định nghĩa một lớp (cũng là medel) bằng cách mở rộng CActiveRecord
Trang 33Để chèn một hàng (một bảng ghi) mới vào một bảng cơ sở dữ liệu tbl_post,chúng ta tạo ra một thể hiện mới của lớp AR tương ứng, thiết lập thuộc tính của nókết hợp với các cột của bảng, và gọi phương thức save() để hoàn tất việc chèn:
Để đọc dữ liệu ta có thể dùng một trong các phương thức find:
Trang 342.4.2.4 Khả năng mở rộng của Yii
Mở rộng Yii là một hoạt động phổ biến trong phát triển Ví dụ, khi bạn viếtmột contrller mới có nghĩa là bạn đang mở rộng Yii bằng việc kế thừa lớpCController, khi bạn viết một widget mới tức là bạn đang mở rộng lớp CWidget.Nếu code mở rộng được thiết kế để được tái sử dụng lại bởi các nhà phát triển thứ
ba, ta cũng gọi đó à phần mở rộng
Thực tế là Yii được thiết kế cẩn thận và hầu hết các đoạn mã của nó có thểđược mở rộng và tùy chỉnh để phù hợp cho nhu cầu cá nhân
Trang 35CHƯƠNG 3
ĐẶC TẢ CHỨC NĂNG HỆ THỐNG
3.1 Khảo sát hiện trạng
Hiện nay có rất nhiều các công ty vận tải hành khách hoạt động trải rộng và
có trụ sở ở nhiều tỉnh –thành phố Hầu hết các công ty này đều tổ chức bộ phận bán
vé và hoạt dộng bán vé theo một quy trình gần giống nhau
Bộ phận kế hoạch lập lịch chạy xe cho từng giai đoạn cụ thể Theo đó, họ cóđược số lượng, danh sách các chuyến xe sẽ chạy và dự trù số vé cần được bán ra
Để bán được số vé này, các công ty lập ra bộ phận chuyên chịu trách nhiệmbán vé xe Bộ phận này thường là các quầy vé được đặt ở một số nơi Ngoài ra công
ty còn cho một số tổ chức cá nhân đăng ký bán vé cho công ty để tạo điều kiệnquảng bá cho người dùng có nhu cầu đi lại có thể mua vé cho công ty họ nhằm hạnchế thấp nhất số ghế trống trên một hành trình Như vậy, một công ty xe khách sẽthường có rất nhiều quầy bán vé cùng hoạt động để cung câp vé cho khách hàng
Khi một khách hàng có nhu cầu mua vé xe đường dài, quy trình mua bánthông thường sẽ được thực hiện như sau:
- Khách hàng liên hệ trực tiếp với bộ phận bán vé của công ty hoặc các đại lýbán vé để tìm hiểu các thông tin cần thiết của tuyến xe mình cần đi và chọn một chỗphù hợp với nhu cầu của mình
- Nhân viên phòng vé ghi lại thông tin giao dịch của khách hàng, thu tiền vàtiến hành giao vé
- Khách hàng đến địa điểm đón khách theo đúng lịch trình đã được thỏathuận trên vé, bắt đúng tuyến xe đã mua vé và xuất trình vé xe đã mua để đi
Đối với nhân viên phòng vé, việc quản lý mua bán vé xe khách được thựchiện như sau:
- Nhân viên liên hệ với bộ phận kế hoạch để thu thập thông tin về lịch trìnhcác chuyến xe
Trang 36- Lập vé và thu tiền khách mua vé.
- Thống kê và cập nhật số chỗ trống còn lại của tuyến xe
- Thống kê số tiền bán vé và nộp cho bộ phận quản lý
3.2 Chức năng các Actor tham gia vào hệ thống
Qua quá trình tìm hiểu phân tích quy trình và hệ thống mua bán vé xe ở cáccông ty xe khách, nhận thấy trang web mua bán vé xe cần tất cả bốn Actor có tácđộng đến hệ thống và mỗi Actor có những yêu cầu và chức năng khác nhau:
- Người dùng chung (User): là những người dùng truy cập vào trangweb để xem và tìm kiếm thông tin về lịch trình xe chạy, đặt vé và thanh toánvé
- Nhân viên chuyên trách (Agent): là nhân viên của các công ty xekhách, có trách nhiệm quản lý thông tin và thực hiện các giao dịch liên quanđến công ty của mình
- Người quản trị hệ thống (Administrator): là người có toàn quyền đốivới hệ thống, đặc biệt là các chức năng phân quyền trên toàn hệ thống
3.2.1 Người dùng chung (User)
a) Xem thông tin: chức năng này cung cấp cho người dùng khả năng xem các
thông tin mà người dùng yêu cầu, bao gồm:
- Các thông tin thông báo do người quản trị hoặc do các công ty đưa lên:thông tin về các công ty xe khách, các tin tức, quảng cáo của trang
- Thông tin về lịch trình các tuyến xe: giờ đi, giờ đến, địa điểm đưa đónkhách, nhân viên phục vụ, giá cả và các dịch vụ kèm theo từng chuyến
- Thông tin các đại lý bán vé (tên đại lý, địa chỉ, số điện thoại liên lạc)
- Thông tin về tình trạng vé xe (đã thanh toán hay chưa)
b) Tra cứu và tìm kiếm
Trang 37Chức năng này cho phép người dùng tìm kiếm các chuyến xe tùy theo dữliệu nhập vào.
- Có nhiều phương thức thanh toán:
+ Thanh toán bằng tiền mặt: nhân viên công ty sẽ đến giao vé
d) Liên hệ:
Chức năng để thu thập những góp ý, phản hồi từ phía người dùng
3.2.2 Nhân viên chuyên trách (Agent)
Các nhân viên chuyên trách có chức năng của người dùng chung hoặc thôngthường, ngoài ra họ còn có các chức năng được cungcaaps như sau:
a) Đăng nhập/Đăng xuất hệ thống:
- Để sử dụng các chức năng quản lý, nhân viên chuyên trách phải đăng nhậpvào hệ thống
Trang 38- Nhân viên thoát khỏi các chức năng quản lý bằng việc đăng xuất.
b) Quản lý thông tin
Mỗi nhân viên chuyên trách được phân quản lý các mảng thông tin thuộcmột công ty xe khách cụ thể
+ Quản lý các bài viết nằm trong mục tin tức
+ Thông tin về lịch trình xe chạy: thêm, xóa, sửa…
+ Thông tin các xe: thống kê, thêm, xóa, sửa…
+ Thông tin các nhân viên phục vụ theo từng chuyến xe
+ Thông tin các giao dịch của khách hàng, theo dõi tình trạng đơn hàng.+ Thông tin các đại lý bán vé
3.2.3 Quản trị hệ thống (Admin)
Người quản trị hệ thống có tất cả các quyền mà hai loại người dùng trên cóNgoài ra người quản trị còn có các chức năng sau:
a) Đăng nhập/Đăng xuất
b) Quản lý tài khoản người dùng
Người quản trị hệ thống có quyền phân quyền cho các đối tượng người dùng
hệ thống
c) Phân quyền người dùng
Ở đây chủ yếu phân quyền theo việc quản lý thông tin các hãng xe Mỗinhân viên chuyên trách sẽ chịu trách nhiệm quản lý một hãng xe khách cụ thể nàođó
d) Quản lý thông tin các hãng xe trong hệ thống
e) Cấu hình hệ thống và duy trì hệ thống
Trang 39Hình 7- Sơ đồ khung cảnh của website bán vé xe trực tuyến
3.3 Xây dựng kịch cảnh cho các usecase
Xem thông tin về lịch trình các chuyến xe, giờ đi, giờ đến, địa điểmđưa đón khách, nhân viên phục vụ theo tuyến, bảng giá tuyến và cácdịch vụ kèm theo
yêu cầu xem thông tin chung
Agent
User
hiển thị thông tin
quản lý thông tin
:WEBSITE BÁN VÉ XE TRỰC TUYẾN
Trang 40Xem thông tin các đại lý bán vé (tên đại lý, địa chỉ đại lý, số điện thoạiliên lạc).
Xem và kiểm tra tình trạng vé xe
Hoạt động:
Thao tác với trình duyệt web
Yêu cầu xem các thông báo, tin tức dựa trên các menu và chức năng
mà website cung cấp sẵn
Thông tin vào: click chuột vào vào các menu và các nút tác vụ.
Kiểm tra hợp lệ: không cần
Thông tin ra:
Trả về các trang thông tin mà người dùng yêu cầu
Yêu cầu tìm kiếm
Thông tin vào:
Muốn tìm kiếm các chuyến xe thì người dùng nhập: thông tin đầu vào
là tên địa điểm xuất phát, địa điểm đến và ngày đi