TRƢỜNG ĐẠI HỌC CẦN THƠ
KHOA KHOA HỌC TỰ NHIÊN
BỘ MÔN TIN HỌC ỨNG DỤNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
XÂY DỰNG HỆ THỐNG THÔNG TIN
QUẢN LÝ NIÊN LUẬN, LUẬN VĂN
Sinh viên thực hiện
Cán bộ hƣớng dẫn
Phan Hoàng Huy
ThS. Hồ Văn Tú
MSSV: 1108015
Cần Thơ, 2014
TRƢỜNG ĐẠI HỌC CẦN THƠ
KHOA KHOA HỌC TỰ NHIÊN
BỘ MÔN TIN HỌC ỨNG DỤNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
XÂY DỰNG HỆ THỐNG THÔNG TIN
QUẢN LÝ NIÊN LUẬN, LUẬN VĂN
Sinh viên thực hiện
Cán bộ hƣớng dẫn
Phan Hoàng Huy
ThS. Hồ Văn Tú
MSSV: 1108015
Cán bộ phản biện
TS. Nguyễn Hữu Hòa
ThS. Lê Thị Diễm
Luận văn đƣợc bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ môn Tin học Ứng
dụng Khoa Khoa học Tự nhiên, Trƣờng Đại học Cần Thơ vào ngày 19 tháng 05 năm
2014
Mã số đề tài:
Có thể tìm hiểu luận văn tại:
-Trung tâm Học liệu, Trƣờng Đại học Cần Thơ
-Website: http://www.lrc.ctu.edu.vn/
Cần Thơ, 2014
LỜI CẢM ƠN
Trong khoảng thời gian học tập và nghiên cứu thực hiện luận văn em đã gặp rất
nhiều khó khăn và trở ngại, nhƣng nhờ sự giúp đỡ của của gia đình, bạn bè và sự
hƣớng dẫn nhiệt tình của thầy hƣớng dẫn cùng với sự cố gắng và nỗ lực của bản thân
đã giúp em hoàn thành luận văn này. Em xin gửi lời cám ơn chân thành đến:
Cha mẹ, những ngƣời luôn bên cạnh em trên mỗi chặng đƣờng em đã đi qua, luôn
động viên em để em an tâm học tập, nghiên cứu và thực hiện luận văn.
Giáo viên hƣớng dẫn ThS. Hồ Văn Tú đã tận tình hƣớng dẫn em về mặt chuyên
môn cũng nhƣ khích lệ cho em rất nhiều về mặt tinh thần trong việc hoàn thành luận
văn này.
Quý thầy cô Bộ môn Tin Học Ứng Dụng – Khoa Khoa Học Tự Nhiên đã tận tâm
truyền đạt kiến thức trong suốt quá trình em học tập tại trƣờng Đại học Cần Thơ, giúp
em có nền tảng kiến thức để thực hiện luận văn này.
Các bạn đã hỗ trợ, chia sẽ và đóng góp ý kiến cho em để hoàn thành tốt luận văn.
Em xin chân thành cảm ơn!
Cần Thơ, ngày 28 tháng 04 năm 2014
Phan Hoàng Huy
MỤC LỤC
DANH MỤC BẢNG ..................................................................................................... iii
DANH MỤC HÌNH .......................................................................................................iv
DANH MỤC KÝ HIỆU VÀ VIẾT TẮT ..................................................................... vii
TÓM TẮT.................................................................................................................... viii
ABSTRACT ...................................................................................................................ix
CHƢƠNG 1: TỔNG QUAN ........................................................................................... 1
1.1 Đặt vấn đề ..................................................................................................................1
1.2 Lịch sử giải quyết vấn đề ........................................................................................... 1
1.3 Phạm vi đề tài ............................................................................................................2
1.4 Phƣơng pháp nghiên cứu ........................................................................................... 2
CHƢƠNG 2: CƠ SỞ LÝ THUYẾT ................................................................................4
2.1 Mô hình MODEL-VIEW-CONTROLLER (MVC) ..................................................4
2.1.1 Khái niệm mô hình MVC .......................................................................................4
2.1.2 Các thành phần của mô hình MVC.........................................................................4
2.1.3 Cách thức hoạt động của mô hình MVC ................................................................ 5
2.1.4 Ƣu điểm và nhƣợc điểm ......................................................................................... 5
2.2 Zend Framework ........................................................................................................6
2.2.1 Sơ lƣợc về Zend Framework ..................................................................................6
2.2.2 Các thành phần trong Zend Framework .................................................................6
2.3 Mô hình MVC trong Zend framework ......................................................................7
2.4 Cấu trúc thƣ mục của một dự án trong Zend Framework..........................................8
2.5 Tại sao phải sử dụng Zend framework ......................................................................9
CHƢƠNG 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU ..........................................10
3.1 Kết quả điều tra và thu thập thông tin......................................................................10
3.1.1 Khảo sát hiện trạng ............................................................................................... 10
3.1.2 Mô tả yêu cầu ........................................................................................................10
3.2 Phân tích hệ thống ...................................................................................................11
i
3.2.1 Biểu đồ phân rã chức năng Use case ....................................................................11
3.2.2 Mô hình mức quan niệm (CDM) ..........................................................................13
3.2.2.1 Mô hình ..............................................................................................................13
3.2.2.2 Danh sách các thực thể ...................................................................................... 14
3.2.3 Mô hình cơ sở dữ liệu mức vật lý (PDM) ............................................................ 15
3.2.4 Mô hình cơ sở dữ liệu ........................................................................................... 15
3.2.4.1 Mô hình ..............................................................................................................15
3.2.4.2 Mô tả chi tiết các bảng ....................................................................................... 17
3.2.5 Biểu đồ phân cấp chức năng BFD ........................................................................22
3.3 Thiết kế hệ thống .....................................................................................................23
3.3.1 Giao diện cho khách ............................................................................................. 23
3.3.2 Giao diện cho sinh viên ........................................................................................ 26
3.3.3 Giao diện cho giáo viên ........................................................................................ 35
3.3.4 Giao diện cho cán bộ quản lý ...............................................................................44
3.4 Kết quả và những vấn đề chƣa giải quyết đƣợc....................................................... 48
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ....................................................................49
TÀI LIỆU THAM KHẢO ............................................................................................. 50
ii
DANH MỤC BẢNG
Bảng 3.1 Bảng các thực thể ........................................................................................... 14
Bảng 3.2 Bảng các thuộc tính của bảng Khoa ............................................................... 17
Bảng 3.3 Bảng các thuộc tính của bảng Bộ môn ........................................................... 17
Bảng 3.4 Bảng các thuộc tính của bảng Ngành ............................................................. 17
Bảng 3.5 Bảng các thuộc tính của bảng Chuyên ngành ................................................17
Bảng 3.6 Bảng các thuộc tính của bảng Lớp .................................................................18
Bảng 3.7 Bảng các thuộc tính của bảng Học kỳ niên khóa ...........................................18
Bảng 3.8 Bảng các thuộc tính của bảng Thông báo ...................................................... 18
Bảng 3.9 Bảng các thuộc tính của bảng Trạng thái ....................................................... 18
Bảng 3.10 Bảng các thuộc tính của bảng Môn học ....................................................... 19
Bảng 3.11 Bảng các thuộc tính của bảng Giáo viên ...................................................... 19
Bảng 3.12 Bảng các thuộc tính của bảng Sinh viên ...................................................... 19
Bảng 3.13 Bảng các thuộc tính của bảng Đề tài ............................................................ 20
Bảng 3.14 Bảng các thuộc tính của bảng Danh sách đăng ký .......................................20
Bảng 3.15 Bảng các thuộc tính của bảng Kết quả ......................................................... 21
Bảng 3.16 Bảng các thuộc tính của bảng Tiến độ thực hiện .........................................21
Bảng 3.17 Bảng các thuộc tính của bảng Trao đổi ........................................................ 21
iii
DANH MỤC HÌNH
Hình 2.1 Sơ đồ hoạt động của mô hình MVC .................................................................5
Hình 2.2 Mô hình MVC trong Zend framework ............................................................. 7
Hình 2.3 Cấu trúc cây thƣ mục của một dự án Zend framewrok ....................................8
Hình 3.1 Biểu đồ chức năng Use-case cho Sinh viên ...................................................11
Hình 3.2 Biểu đồ chức năng Use-case cho Giáo viên ...................................................12
Hình 3.3 Biểu đồ chức năng Use-case cho Cán bộ quản lý ..........................................12
Hình 3.4 Mô hình mức quan niệm (CDM) ....................................................................13
Hình 3.5 Mô hình vật lý (PDM) ....................................................................................15
Hình 3.6 Mô hình cơ sở dữ liệu .....................................................................................16
Hình 3.7 Biểu đồ phân cấp chức năng ...........................................................................22
Hình 3.8 Trang chủ ........................................................................................................23
Hình 3.9 Danh sách đề tài cho khách ............................................................................23
Hình 3.10 Tìm đề tài ......................................................................................................24
Hình 3.11 Tìm kiếm đề tài theo tên ...............................................................................24
Hình 3.12 Đăng nhập .....................................................................................................25
Hình 3.13 Đăng nhập sai ............................................................................................... 25
Hình 3.14 Trang chủ dành cho sinh viên .......................................................................26
Hình 3.15 Danh sách đề tài chuyên ngành sinh viên ở trạng thái mới .......................... 26
Hình 3.16 Danh sách các đề tài theo chuyên ngành của sinh viên ................................ 27
Hình 3.17 Danh sách đề tài chuyên ngành khác ............................................................ 27
Hình 3.18 Thông báo không trong thời gian đăng ký đề tài..........................................28
Hình 3.19 Đăng ký đề tài đợt 1 .....................................................................................28
Hình 3.20 Danh sách đề tài đăng ký đợt 1.....................................................................28
Hình 3.21 Đăng ký đề tài đợt 2 .....................................................................................29
Hình 3.22 Danh sách đề tài đăng ký đợt 2.....................................................................29
Hình 3.23 Kết quả đăng ký đề tài ..................................................................................30
Hình 3.24 Thông báo không trong thời gian thực đề tài ...............................................30
iv
Hình 3.25 Sinh viên báo cáo tiến độ lần đầu tiên .......................................................... 31
Hình 3.26 Thông báo yêu cầu nhập đầy đủ dữ liệu ....................................................... 31
Hình 3.27 Báo cáo tiến độ thực hiện đề tài của sinh viên .............................................32
Hình 3.28 Trao đổi của sinh viên ..................................................................................32
Hình 3.29 Đổi mật khẩu sinh viên .................................................................................33
Hình 3.30 Đổi mật khẩu sinh viên 1 ..............................................................................33
Hình 3.31 Đổi mật khẩu sinh viên 2 ..............................................................................34
Hình 3.32 Đổi mật khẩu sinh viên 3 ..............................................................................34
Hình 3.33 Trang chủ dành cho giáo viên ......................................................................35
Hình 3.34 Danh sách đề tài chuyên ngành trạng thái Hoàn thành ................................ 35
Hình 3.35 Danh sách đề tài chuyên khác ......................................................................36
Hình 3.36 Trang cho giáo viên ra đề tài đầu tiên trong học kỳ .....................................36
Hình 3.37 Đề tài của giáo viên ...................................................................................... 37
Hình 3.38 Chức năng thêm đề tài mới...........................................................................37
Hình 3.39 Thông báo lỗi khi thêm đề tài .......................................................................38
Hình 3.40 Thông báo lỗi khi thêm đề tài 2 ....................................................................38
Hình 3.41 Chức năng sửa đề tài ....................................................................................38
Hình 3.42 Thông báo khi xóa đề tài ..............................................................................39
Hình 3.43 Xem danh sách đăng ký đề tài của sinh viên ................................................39
Hình 3.44 Theo dõi tiến độ thực hiện 1 .........................................................................39
Hình 3.45 Theo dõi tiến độ thực hiện 2 .........................................................................40
Hình 3.46 Theo dõi tiến độ thực hiện 3 .........................................................................40
Hình 3.47 Đề xuất của giáo viên ...................................................................................41
Hình 3.48 Đề xuất của giáo viên ...................................................................................41
Hình 3.49 Trao đổi của giáo viên với các sinh viên ...................................................... 42
Hình 3.50 Đổi mật khẩu giáo viên.................................................................................42
Hình 3.51 Đổi mật khẩu giáo viên 1..............................................................................43
Hình 3.52 Đổi mật khẩu giáo viên 2..............................................................................43
v
Hình 3.53 Đổi mật khẩu giáo viên 3..............................................................................43
Hình 3.54 Trang chủ ......................................................................................................44
Hình 3.55 Quản lý Khoa ................................................................................................ 44
Hình 3.56 Quản lý các Giáo viên ..................................................................................45
Hình 3.57 Viết thông báo .............................................................................................. 45
Hình 3.58 Danh sách sinh viên đăng ký đề tài .............................................................. 46
Hình 3.59 Quá trình thực hiện đề tài .............................................................................46
Hình 3.60 Cập nhật kết quả đề tài .................................................................................47
Hình 3.61 Upload các tập tin kết quả ............................................................................47
Hình 3.62 Quản lý kết quả đề tài ...................................................................................48
vi
DANH MỤC KÝ HIỆU VÀ VIẾT TẮT
STT Ký hiệu/Chữ viết tắt
Định nghĩa/Mô tả
1
BFD
Mô hình phân rã chức năng (Business Function
Diagram)
2
CDM
Mô hình mức quan niệm (Conceptual Data Model)
3
MVC
Model-View-Controller
4
PDM
Mô hình mức vật lý (Physical Data Model)
vii
TÓM TẮT
Công nghệ thông tin đƣợc ứng dụng vào đời sống giúp các hoạt động trở nên
nhanh chóng, hiệu quả và chính xác hơn. Một trong các lĩnh vực đó là Giáo dục. Việc
ứng dụng tin học hóa ở các trƣờng Đại học đã và đang đƣợc đƣa vào thực hiện. Một
trong số đó là trƣờng Đại học Cần Thơ.
Niên luận và luận văn là những môn học không thể thiết đối với sinh viên năm ba
và năm cuối. Giáo viên ra đề tài và sinh viên đăng ký đề tài vẫn thực hiện trên giấy tờ,
chƣa có chƣơng trình quản lý và lƣu trữ. Giáo viên gặp nhiều khó khăn trong việc theo
dõi tiến độ thực hiện và trao đổi với sinh viên. Kết quả của các đề tài cần đƣợc quản lý
và lƣu trữ để thuận tiện cho việc tìm kiếm sau này. Từ những vần đề trên, đòi hỏi
chúng ta cần xây dựng một hệ thống thông tin hỗ trợ cho ngƣời dùng, nhằm giúp cho
ngƣời dùng thực hiện những công việc nhanh chóng và hiệu quả hơn.
Hệ thống thông tin Quản lý niên luận, luận văn giúp giải quyết các vần đề của
sinh viên về đăng ký đề tài, báo cáo tiến độ thực hiện, trao đổi với giáo viên; những
vấn đề của giáo viên ra đề tài, theo dõi tiến độ và trao đổi với sinh viên; vần đề quản lý
quá trình thực hiện đề tài, quản lý và lƣu trữ kết quả đề tài của cán bộ quản lý.
Hệ thống đƣợc xây dựng dựa trên các công nghệ nhƣ ngôn ngữ lập trình Zend
framework kết hợp với mô hình MVC. Những công nghệ tiên tiến này có nhiều ƣu
điểm và nhiều lập trình viên sử dụng để xây dựng rất nhiều ứng dụng hiện nay.
Từ khóa: Hệ thống thông tin, luận văn, niên luận, quản lý ứng dụng.
viii
ABSTRACT
Information technology is applied in our life that it helps many activities to
become faster, more efficient and accurate. One of areas is education. The application
of computerization at the University has been put into practice. One of them is Cantho
University.
Project and the thesis are not possible the course for students in the third and
final year. Teachers create to topics and students registrate topics that it has still done
on paper and not program manages and stores them. Teachers have many difficulties
with monitoring implementation progress and communication with students. Results of
topics need to be managed and stored to facilitate the search later. From the above
problems, they required we need to building a information systems to support users in
order to help users perform tasks more quickly and efficiently.
An information system manage project and thesis solves the problems of students
in the registration topics, reportion implementation progress, communicationwith
teachers; problems of the teachers such as creation topics, monitoring progress and
communication with students; problems management process to implement the topics,
management and storage of results of managers.
The system is based on technologies such as Zend framework programming
language combined with the MVC model. The advanced technology has many
advantages and many programmers use to build many applications today.
Key word: Information systems, management applications, project, thesis.
ix
CHƢƠNG 1: TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Việc thực hiện các đề tài niên luận, luận văn là những phần không thể thiếu cho
sinh viên năm ba và năm cuối. Tuy việc đăng ký đề tài đã đƣợc tin học hóa bằng cách
cho sinh viên đăng ký trực tuyến nhƣng vẫn còn nhiều bất cập. Việc chọn đề tài của
sinh viên chƣa thực sự khách quan.
Trong quá trình thực hiện, sinh viên và giáo viên hƣớng dẫn tốn nhiều thời gian
trong việc gặp gỡ trao đổi.
Giáo viên hƣớng dẫn khó theo dõi đƣợc tiến độ thực hiện niên luận, luận văn của
sinh viên hằng tuần, hằng tháng.
Sau khi sinh viên thực hiện xong đề tài niên luận hay luận văn, cần phải lƣu lại
và quản lý để thuận tiện cho việc tìm kiếm sau này.
Vì vậy, chúng ta cần phải xây dựng một hệ thống quản lý theo hƣớng tin học hóa
nhằm đáp ứng những yêu cầu nêu trên. Đề tài: “Xây dựng hệ thống thông tin quản lý
niên luận, luận văn” đƣợc thực hiện với mục tiêu xây dựng một website quản lý niên
luận, luận văn một cách hiệu quả trên nền tảng Zend Framework kết hợp mô hình
MVC.
Với hệ thống này, website sẽ giúp cho ngƣời dùng dễ dàng tìm kiếm các niên
luận, luận văn. Sinh viên có thể dễ dàng và chủ động trong việc đăng ký, trao đổi và
báo cáo tiến độ cho giáo viên hƣớng dẫn. Giáo viên thuận tiện hơn trong việc ra các đề
tài, trao đổi và theo dõi tiến độ thực hiện của sinh viên trong quá trình thực hiện niên
luận, luận văn.
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Ứng dụng công nghệ thông tin nói chung và ứng dụng các ứng dụng Web nói
riêng vào công tác quản lý ở các đơn vị nhƣ trƣờng học, cơ quan, xí nghiệp, … đã trở
nên phổ biến và quen thuộc trong những năm gần đây. Điển hình ở trƣờng Đại Học
Cần Thơ, các hệ thống quản lý của trƣờng ngày càng đƣợc tin học hóa nhƣ các hệ
thống: quản lý sinh viên, quản lý đăng ký học phần, quản lý kết quả học tập của sinh
viên,…Vấn đề quản lý niên luận, luận văn tại đơn vị này lại không phải là một đề tài
mới chƣa đƣợc thực hiện, nhƣng với đề tài “Xây dựng hệ thống thông tin quản lý
niên luận, luận văn” đây là một hƣớng tiếp cận hoàn toàn mới, quản lý cả tiến trình
1
quản lý niên luận, luận văn. Đề tài đƣợc thực hiện trên nền tảng Zend Framework, một
xu hƣớng mới cho việc lập trình web hiện nay.
Do đó việc xây đựng Hệ thống quản lý niên luận, luận văn tại trƣờng Đại học
Cần Thơ trên nền tảng Zend Framework là một đề tài mới, mở ra con đƣờng nghiên
cứu và xây dựng các ứng dụng Web bằng công nghệ Zend Framework. Ở các trƣờng
Đại học, cao đẳng khác nếu cần xây dựng hệ thống tƣơng tự cần phải tìm hiểu việc
quản lý đào tạo của từng trƣờng để có hƣớng xây dựng hệ thống phù hợp.
1.3 PHẠM VI ĐỀ TÀI
Về mặt phân tích và thiết kế hệ thống: Xây dựng website Quản lý niên luận, luận
văn, bƣớc đầu ứng dụng cho khoa Khoa Học Tự Nhiên. Với các đối tƣợng sử dụng:
khách, sinh viên, giáo viên, cán bộ quản lý; tƣơng ứng các chức năng:
- Khách: Xem tên các đề tài, giáo viên hƣớng dẫn: tìm kiếm theo tên bất kỳ, hoặc
tìm kiếm đề tài theo khoa, chuyên ngành, học phần, học kỳ niên khóa.
- Sinh viên: Xem tên đề tài, chi tiết đề tài, tham khảo các đề tài đã hoàn thành,
giáo viên hƣớng dẫn; đăng ký đề tài; báo cáo tiến độ; trao đổi.
- Giáo viên: Xem tên đề tài, chi tiết đề tài, giáo viên hƣớng dẫn; ra đề tài, xóa,
sửa; theo dõi tiến độ; trao đổi.
- Cán bộ quản lý: Quản lý (thêm, xóa, sửa) các khoa, bộ môn, ngành, chuyên
ngành…; viết các thông báo liên quan đến việc ra đề tài, đăng ký đề tài; xem danh
sách sinh viên đăng ký đề tài; cập nhật quá trình thực hiện; cập nhật kết quả của đề tài;
quản lý kết quả đề tài.
Về mặt lập trình: Nghiên cứu và phân tích thiết kế website bằng ngôn ngữ Zend
Framework kết hợp mô hình MVC và hệ quản trị cơ sở dữ liệu mySQL.
1.4 PHƢƠNG PHÁP NGHIÊN CỨU
Tham khảo, tìm hiểu việc đăng ký, thực hiện, quản lý Niên luận, Luận văn
trong thực tế.
Phân tích những yêu cầu của thực tế đặt ra.
Tìm hiểu các tài liệu, giáo trình về phân tích thiết kế hệ thống thông tin; lập
trình web bằng ngôn ngữ Zend Framework kết hợp mô hình MVC.
Xây dựng các mô hình cơ sở dữ liệu cho hệ thống.
2
Thiết kế giao diện phù hợp đáp ứng yêu cầu của ngƣời sử dụng.
Cuối cùng tiến hành viết mã lệnh xây dựng chƣơng trình ứng dụng cho hệ thống
Quản lý Niên luận, Luận văn.
Nội dung quyển luận văn gồm bốn phần: Phần 1 Tổng quan giới thiệu đề tài, lịch sử
giải quyết, phạm vi giải quyết vấn đề và hƣớng nghiên cứu đề tài; phần 2 Cơ sở lý
thuyết trình bài lý thuyết của công nghệ đƣợc sử dụng đề xây dựng chƣơng trình; phần
3 Nội dung và kết quả nghiên cứu trinh bày sản phẩm ứng dụng, kết quả đạt đƣợc của
toàn bộ quá trình nghiên cứu và xây dựng ứng dụng ; Phần 4 Kết luận và hƣớng phát
triển trình bày kết luận về toàn bộ quá trình nghiên cứu và hƣớng phát triển của đề tài.
3
CHƢƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 MÔ HÌNH MODEL-VIEW-CONTROLLER (MVC)
2.1.1 Khái niệm mô hình MVC
Mô hình MVC (Model - View - Controller) [9] là một kiến trúc phần mềm hay
mô hình thiết kế đƣợc sử dụng trong kỹ thuật phần mềm. Nó giúp cho các nhà phát
triển (developer) tách ứng dụng của họ ra 3 thành phần khác nhau Model, View và
Controller. Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần
khác.
2.1.2 Các thành phần của mô hình MVC
Mô hình MVC đƣợc chia thành 3 tầng tƣơng ứng đúng với tên gọi của nó
(Model– View – Controller). Nhiệm vụ cụ thể của mỗi tầng đƣợc phân chia nhƣ sau:
Model (Tầng dữ liệu)
Là một đối tƣợng hoặc một tập hợp các đối tƣợng biểu diễn cho phần dữ liệu của
chƣơng trình. Nó đƣợc giao nhiệm vụ cung cấp dữ liệu cho cơ sở dữ liệu và lƣu dữ
liệu vào các kho chứa dữ liệu. Dữ liệu vào từ ngƣời dùng sẽ thông qua View đến
Controller và đƣợc kiểm tra ở Model trƣớc khi lƣu vào cơ sở dữ liệu. Việc truy xuất,
xác nhận, và lƣu dữ liệu là một phần của Model.
View (Tầng giao diện)
View hiển thị các thông tin cho ngƣời dùng của ứng dụng và đƣợc giao nhiệm vụ
cho việc nhận các dữ liệu vào từ ngƣời dùng, gửi đi các yêu cầu đến controller, sau đó
là nhận lại các phản hồi từ controller và hiển kết quả cho ngƣời dùng. Các trang
HTML, JSP, các thƣ viện thẻ và các tập tin nguồn là một phần của thành phần View.
Trong các web framework, View gồm 2 phần chính:
- Tập tin mẫu định nghĩa cấu trúc và cách thức trình bày dữ liệu cho ngƣời
dùng. Ví dụ nhƣ layout, color, windows…
- Logic xử lý cách áp dụng dữ liệu vào cấu trúc trình bày. Logic này có thể bao
gồm việc kiểm tra định dạng dữ liệu, chuyển đổi định dạng dữ liệu sang một dạng dữ
liệu trung gian, lựa chọn một cấu trúc hiển thị phù hợp.
Controller (Tầng điều khiển)
Controller đảm nhiệm việc cập nhật bộ phận hiển thị (View) khi cần thiết. Bộ
điều khiển này nhận dữ liệu nhập từ ngƣời dùng, truy xuất các thông tin cần thiết từ
mô hình trong (Model), và cập nhật thích hợp phần hiển thị (View). Giao diện với
4
ngƣời sử dụng phần mềm đƣợc thiết lập nhờ sự tƣơng tác qua lại giữa View và
Controller: hai bộ phận này chính là phần trình bày bên ngoài của đối tƣợng biểu diễn
bên trong.
2.1.3 Cách thức hoạt động của mô hình MVC
Hình 2.1 Sơ đồ hoạt động của mô hình MVC
Nhìn lại sơ đồ phía trên, ta thấy có mũi tên nét liền và những mũi tên nét đứt.
Những mũi tên nét đứt đƣợc hình thành trên quan điểm của ngƣời dùng mà không phải
là của những nhà thiết kế phần mềm thực sự. Do đó chúng ta chỉ quan tâm đến những
mũi tên còn lại.
Đây là một cách đơn giản để mô tả lại luồng sự kiện đƣợc xử lý trong MVC:
User tƣơng tác với View, bằng cách click vào button, user gửi yêu cầu đi.
Controller nhận và điều hƣớng chúng đến đúng phƣơng thức xử lý ở Model.
Model nhận thông tin và thực thi các yêu cầu.
Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả từ Model và hiển thị lại
cho ngƣời dùng.
2.1.4 Ƣu điểm và nhƣợc điểm
Mô hình MVC có các ƣu và nhƣợc điểm sau [9]:
5
Ưu điểm:
Phát triển phần mềm: chuyên nghiệp hóa, có thể chia công việc cho nhiều nhóm
chuyên môn khác nhau: nhóm thiết kế, nhóm lập trình, nhóm tổ chức
database... Giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp.
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ễ đƣợ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ế bên của nó, chứ không ảnh hƣởng cả chƣơng trình.
Mở rộng: việc thêm chức năng vào cho từng lớp sẽ dễ dàng.
Nhược điểm:
Đối với dự án nhỏ việc áp dụng mô hình MVC gây cồng kềnh, tốn thời gian
trong quá trình phát triển. Tốn thời gian trung chuyển dữ liệu của các thành phần.
2.2 ZEND FRAMEWORK
2.2.1 Sơ lƣợc về Zend Framework
Zend Framework là PHP Framework đuợc lập trình trên PHP dựa theo mô hình
MVC sẽ giúp tách các phần xử lý riêng biệt cho website, nó giúp cho việc lập trình dễ
quản lý, chỉnh sửa và nâng cấp code [3].
Nền tảng:
Sử dụng PHP 5.
Viết hƣớng đối tƣợng.
Cung cấp mô hình tiên tiến MVC.
Là một phần mềm nguồn mở có sự hỗ trợ cộng đồng.
Cung cấp một loạt các ứng dụng của các nhà cung cấp.
2.2.2 Các thành phần trong Zend Framework
Zend framework có các thành phần nhƣ sau [3]:
Zend_Controller: module này giúp lấy các yêu cầu từ phía Client và thực thi nó
bằng các Action.
Zend_Db: dựa trên đối tƣợng PDO (PHP Data Objects), cung cấp cách thức giao
tiếp với cơ sở dữ liệu.
Zend_View: đây chính là tầng View trong mô hình MVC.
6
Zend_Acl: quản lý phân quyền cho toàn bộ trang web.
Zend_Auth: hỗ trợ chứng thực ngƣời dùng.
Zend_Feed: giúp xử lý các nguồn cung cấp dữ liệu nhƣ Rss và Atom.
Zend_Validate: xác nhận các kiểu dữ liệu ngƣời dùng cung cấp gửi về Server, và
xét xem dữ liệu đó có đúng với yêu cầu hay không.
Zend_Filter: lọc các chuỗi nhập vào xem có hợp lệ với yêu cầu không, ví dụ nhƣ
kiểm tra một chuỗi có phải là email hoặc là các ký tự số hay không.
Zend_Service_*: cung cấp truy cập tới các dịch vụ web APIS của các nhà cung cấp
nhƣ Amazon, Flick, Yahoo,…
Zend_Pdf: tạo và xử lý các tập tin PDF.
Zend_XmlRpc: tạo ra giao tiếp XMLRpc (giao tiếp client-server, các xử lý tập
trung phía server, client chỉ để hiển thị).
Zend_Session: quản lý các session.
Zend_Log: lớp này dùng để hỗ trợ việc ghi log cho ứng dụng, giúp cho ngƣời lập
trình dễ kiểm tra lỗi.
Zend_Cache: hỗ trợ ghi cache cho ứng dụng và làm tăng tốc ứng dụng.
2.3 MÔ HÌNH MVC TRONG ZEND FRAMEWORK
Hình 2.2 Mô hình MVC trong Zend framework
Bất cứ một ứng dụng nào đƣợc xây dựng theo mô hình MVC nào thì cũng điều
phải tuân thủ những nguyên tắc mà mô hình MVC mang lại.Hình 2.2: Mô hình MVC
trong Zend Framework
- Model: Cung cấp tập hợp các lớp đƣợc trừu tƣợng hóa sử dụng cho việc truy
xuất dữ liệu. Lớp phục vụ: Zend_DB, Zend_DB_Table.
7
- View: Định nghĩa các thông tin hiển thị phía ngƣời dụng sau khi đƣợc xử lý và
trả về từ controller. Lớp phục vụ: Zend_View.
- Controller: Kiểm soát dữ liệu vào ra. Xuất thông tin ra tầng View khi đƣợc thực
thi. Lớp phục vụ: Zend_Controller.
Khi có một yêu cầu (request) từ ngƣời dùng. Controller sẽ tiếp nhận yêu cầu,
phân tích yêu cầu, sau đó sẽ phân luồng yêu cầu để gọi đến Model và View tùy vào
yêu cầu mà ngƣời dùng đã gửi. Khi ngƣời dùng gửi một yêu cầu từ trình duyệt thì nơi
đầu tiên tiếp nhận yêu cầu đó đầu tiên là controller. Tùy vào yêu cầu, mà Controller sẽ
phân luồng đến Model và View.
Tóm lại, một ứng dụng đƣợc xây dựng theo mô hình MVC hoạt động tổng quát
nhƣ sau: Tiếp nhận yêu cầu từ trình duyệt dƣới dạng HTML. Sau đó đƣợc biên dịch
thông qua Java Servlet → controller tiếp nhận, phân tích yêu cầu để phân luồng đến
model và view. Cuối cùng trả về trình duyệt dƣới dạng một response HTML.
2.4 CẤU TRÚC THƢ MỤC CỦA MỘT DỰ ÁN TRONG ZEND FRAMEWORK
Hình 2.3 Cấu trúc cây thƣ mục của một dự án Zend framewrok
Thƣ mục config: chứa các tập tin config chính cho hệ thống.
8
- Xem thêm -