LỜI CAM ĐOAN Em xin cam đoan rằng đây là bài đồ án tốt nghiệp của em, được sự hướng dẫn từ Giáo viên Th.S Phạm Thị Thương – giảng viên trường đại học Công nghệ thông tin và truyền thông
Trang 1Em cũng xin chân thành cảm ơn thầy cô trong trường Đại học Công nghệ thông tin và Truyền thông nói chung và các thầy cô giáo trong khoa Công Nghệ Thông Tin, bộ môn Công Nghệ Phần Mềm nói riêng tận tình giảng dạy, truyền đạt cho em những kiến thức, kinh nghiệm quý báu trong suốt thời gian qua
Mặc dù bản thân đã thực sự nỗ lực, cố gắng thực hiện đề tài nhưng không tránh khỏi nhiều thiếu sót Do vậy, em rất mong nhận được sự đóng góp quý báu của toàn thể thầy cô và các bạn!
Em xin chân thành cảm ơn !
Sinh viên thực hiện
Lê Thị Huế
Trang 2LỜI CAM ĐOAN
Em xin cam đoan rằng đây là bài đồ án tốt nghiệp của em, được sự hướng
dẫn từ Giáo viên Th.S Phạm Thị Thương – giảng viên trường đại học Công
nghệ thông tin và truyền thông Thái Nguyên, Đại học Thái Nguyên, các nội dung nghiên cứu và kết quả trong đề tài này là trung thực và không sao chép từ các báo cáo thực tập và đồ án khác trước đây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính bản thân thu thập từ các nguồn khác nhau được chỉ dẫn trong tài liệu tham khảo
Nếu có bất kỳ sự gian lận nào em xin hoàn toàn chịu trách nhiệm trước Hội đồng
Thái Nguyên, ngày … tháng … năm 2016
Sinh viên
Lê Thị Huế
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỤC LỤC 3
DANH MỤC HÌNH ẢNH 6
DANH MỤC BẢNG 8
LỜI MỞ ĐẦU 9
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ THỰC HIỆN 10
1.1 Giới thiệu về PHP và MySQL 10
1.1.1 PHP? 10
1.1.2 Hệ quản trị cơ sở dữ liệu MySQL 14
1.2 Giới thiệu tổng quan về PHP Framework: CodeIgniter 14
1.2.1 Cài đặt 15
1.2.2 Mô hình MVC trong CodeIgniter 15
1.2.3 Dòng dữ liệu trong CodeIgniter 16
1.2.4 Các Thư viện trong CodeIgniter 17
1.3 Giới thiệu về UML 18
1.3.1 Khái niệm và đặc điểm của UML 18
1.3.2 Mô hình khái niệm của UML 18
CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG 22
2.1 Thực trạng của hệ thống 22
2.1.1 Giới thiệu về công ty 22
2.1.2 Đặt vấn đề 22
2.1.3 Giải pháp 24
2.1.4 Mô tả bài toán 24
2.2 Khảo sát thực trạng 24
2.2.1 Khảo sát hệ thống 24
2.2.2 Quy trình Học viên sử dụng website 26
2.2.3 Quy trình Giáo viên sử dụng website 27
2.2.4 Quy trình thực hiện quản trị hệ thống của quản trị viên 27
Trang 42.3 Thông tin đầu vào, đầu ra của bài toán 27
2.3.1 Các thông tin đầu vào 27
2.3.2 Các thông tin đầu ra 28
2.4 Phân tích hệ thống 28
2.4.1 Biểu đồ UC mức tổng thể 28
2.4.2 Biểu đồ UC mức chi tiết 30
2.5 Đặc tả một số UC chính 32
2.5.1 UC đăng ký thành viên 32
2.5.2 UC đăng nhập hệ thống 33
2.5.3 UC Tìm kiếm 34
2.5.4 UC đăng kí khóa học 35
2.5.5 UC quản lý khóa học 36
2.5.6 UC quản lý bài giảng 37
2.5.7 UC quản lý tin tức 38
2.5.8 UC quản lý thành viên 39
2.5.9 UC quản lý bài kiểm tra 40
2.5.10 UC thống kê báo cáo 41
2.6 Biểu đồ Lớp 42
2.6.1 Biểu đồ lớp ca sử dụng đăng nhập 42
2.6.2 Biểu đồ lớp ca sử dụng tìm kiếm 42
2.6.3 Biểu đồ lớp sử dụng quản lý khóa học 43
2.6.4 Biểu đồ lớp sử dụng quản lý bài giảng 43
2.6.5 Biểu đồ lớp sử dụng quản lý bài kiểm tra 44
2.6.6 Biểu đồ lớp sử dụng quản lý tin tức 44
2.6.7 Biểu đồ lớp sử dụng quản lý thành viên 45
2.7 Quan hệ giữa các bảng 45
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH 52
3.1 Giao diện chính 52
3.2 Giao diện duyệt khóa học 52
3.3 Giao diện đăng ký khóa học 53
Trang 53.4 Giao diện lớp học đã đăng ký 53
3.5 Giao diện bài kiểm tra 54
3.6 Giao diện điểm của học viên 54
3.7 Giao diện đăng nhập quản lý hệ thống 55
3.8 Giao diện quản lý khóa học 55
3.9 Giao diện quản lý bài giảng 56
3.10 Giao diện quản lý thi trực tuyến 56
KÊT LUẬN 58
TÀI LIỆU THAM KHẢO 60
Trang 6DANH MỤC HÌNH ẢNH
Hình 1.1: Mô hình MVC trong CodeIgniter 15
Hình 1.2: Dòng dữ liệu trong CodeIgniter 16
Hình 1.3: Các thư viện trong CodeIgniter 17
Hình 2.1: Biểu đồ UC mức tổng thể 30
Hình 2.2: Biểu đồ UC chi tiết tác nhân quản trị hệ thống 30
Hình 2.3: Biểu đồ UC chi tiết tác nhân giáo viên 31
Hình 2.4: Biểu đồ UC chi tiết tác nhân học viên 31
Hình 2.5: Biểu đồ Trình tự UC đăng kí thành viên 32
Hình 2.6: Biểu đồ Trình tự UC đăng nhập hệ thống 33
Hình 2.7: Biểu đồ trình tự UC tìm kiếm 34
Hình 2.8: Biểu đồ trình tự UC đăng ký khóa học 35
Hình 2.9: Biểu đồ trình tự UC quản lý khóa học 36
Hình 2.10: Biểu đồ trình tự UC quản lý bài giảng 37
Hình 2.11: Biểu đồ trình tự UC quản lý tin tức 38
Hình 2.12: Biểu đồ Trình tự cho tác vụ quản lý thành viên 39
Hình 2.13: Biểu đồ Trình tự cho tác vụ quản lý thành viên 40
Hình 2.14: Biểu đồ trình tự UC thống kê báo cáo 41
Hình 2.15: Biểu đồ lớp ca sử dụng đăng nhập 42
Hình 2.16: Biểu đồ lớp ca sử dụng tìm kiếm 42
Hình 2.17: Biểu đồ lớp ca sử dụng quản lý khóa học 43
Hình 2.18: Biểu đồ lớp ca sử dụng quản lý bài giảng 43
Hình 2.19: Biểu đồ lớp ca sử dụng quản lý bài kiểm tra 44
Hình 2.20: Biểu đồ lớp ca sử dụng quản lý tin tức 44
Hình 2.21: Biểu đồ lớp ca sử dụng quản lý thành viên 45
Hình 2.22: Quan hệ giữa các bảng 51
Hình 3.1: Màn hình trang chủ 52
Hình 3.2: Giao diện khóa học 52
Hình 3.3: Giao diện đăng ký khóa học 53
Hình 3.4: Giao diện lớp học đã đăng ký 53
Trang 7Hình 3.5: Giao diện bài kiểm tra 54
Hình 3.6: Giao diện điểm 54
Hình 3.7: Giao diện đăng nhập quản lý hệ thống 55
Hình 3.8: Giao diện quản lý khóa học 55
Hình 3.9: Giao diện quản lý bài giảng 56
Hình 3.10: Giao diện thêm mới bài kiểm tra 56
Hình 3.11: Giao diện thêm mới câu hỏi 57
Hình 3.12: Giao diện danh sách đề thi 57
Trang 8DANH MỤC BẢNG
Bảng 2.1: Mô tả dữ liệu bảng comment 45
Bảng 2.2: Mô tả dữ liệu bảng enrollment 46
Bảng 2.3: Mô tả dữ liệu bảng post 46
Bảng 2.4: Mô tả dữ liệu bảng post_meta 47
Bảng 2.5: Mô tả dữ liệu bảng tits 47
Bảng 2.6: Mô tả dữ liệu bảng user 47
Bảng 2.7: Mô tả dữ liệu bảng answer 48
Bảng 2.8: Mô tả dữ liệu bảng qbank 48
Bảng 2.9: Mô tả dữ liệu bảng result 49
Bảng 2.10: Mô tả dữ liệu bảng quiz 50
Bảng 2.11: Mô tả dữ liệu bảng level_quiz 50
Bảng 2.12: Mô tả dữ liệu bảng group 50
Bảng 2.13: Mô tả dữ liệu bảng options 50
Trang 9Học trực tuyến là một hình thức học mới được chú ý trong thời gian gần đây, nó đáp ứng nhu cầu học hỏi của những người không có nhiều thời gian và tiền bạc để tham gia các khóa học trực tuyến khác Vì vậy lợi ích đầu tiên có thể
kể đến đó là giảm thiểu chi phí Nếu như tham gia một khóa học trực tiếp với giáo viên tại lớp học bạn phải bỏ ra 3 triệu đồng thì với khóa học trực tuyến bạn
có thể tiết kiệm cho mình 2.7 triệu đồng Quả là một con số lý tưởng cho những
ai eo hẹp về tài chính Nội dung khóa học như nhau, kiến thức được truyền đạt giống nhau chỉ cần bạn chăm chỉ và học thật sự thì hiệu quả của học trực tuyến
có khi còn tốt hơn so với việc bạn đến lớp Lợi ích thứ hai mà khóa học trực tuyến mang đến đó là tiết kiệm thời gian Nếu bình thường bạn mất đến 1h30 phút thì với khóa học này bạn có thể sử dụng thời gian đó để làm những việc bạn chưa hoàn thành trong ngày Học trực tuyến đang dần trở thành một trào lưu trong cuộc sống năng động, tuy nhiên không phải lúc nào bạn cũng có thể đạt hiệu quả cao nhất Vì không có sự quản lý giám sát của thầy cô có thể làm cho bạn lơ là học tập Thế nên, nếu chọn cho mình khóa học trực tuyến hãy trung thực với chính mình để quyết tâm theo đuổi đến cùng
Nhận thấy những lợi ích và tầm quan trọng mà các khóa học trực tuyến mang lại, em đã lựa chọn và thực hiện đề tài “XÂY DỰNG WEBSITE HỌC LẬP TRÌNH TRỰC TUYẾN CHO CÔNG TY PHẦN MỀM TRỰC TUYẾN MINH ĐỨC” Nội dung đề được chia làm 3 chương:
Chương 1: Cơ sở lý thuyết và công cụ thực hiện
Chương 2: Khảo sát và phân tích thiết kế hệ thống
Chương 3: Xây dựng website
Trang 10CHƯƠNG 1:
CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ THỰC HIỆN
1.1 Giới thiệu về PHP và MySQL
1.1.1 PHP?
PHP(Hypertext Preprocessor) là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới
Cặp thẻ <?php ?> sẽ đánh đấu sự bắt đầu và sự kết thúc của phần mã PHP qua đó máy chủ biết để xử lý và dịch mã cho đúng Đây là một điểm khá tiện lợi của PHP giúp cho việc viết mã PHP trở nên khá trực quan và dễ dàng trong việc xây dựng phần giao diện ứng dụng HTTP
Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng và có sự đóng góp rất lớn của Zend Inc., công ty do các nhà phát triển lõi của PHP lập nên nhằm tạo ra một môi trường chuyên nghiệp để đưa PHP phát triển ở quy mô doanh nghiệp
Lịch sử phát triển của PHP
PHP được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI do Rasmus Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page Tools' Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sử dụng phát triển các ứng dụng web đơn giản Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi có trong nó đồng thời cải tiến mã nguồn
Trang 11PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một
số các chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay Nó có các biến kiểu như Perl, thông dịch tự động các biến của form và cú pháp HTML nhúng Cú pháp này giống như của Perl, mặc dù hạn chế hơn nhiều, đơn giản và
có phần thiếu nhất quán
Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút được hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã được ghi nhận là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạng Internet Tuy đã có tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh mã nguồn của dự án này thì vào thời đó nó vẫn chủ yếu chỉ là dự án của một người
PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời gian khá dài chỉ được công bố dưới dạng các bản beta Nhưng không lâu sau đó,
nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0
PHP 3
PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các phiên bản PHP mà chúng ta được biết ngày nay Nó đã được Andi Gutmans
và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước
đó Lý do chính mà họ đã tạo ra phiên bản này là do nhận họ thấy PHP/FI 2.0 hết sức yếu kém trong việc phát triển các ứng dụng thương mại điện tử mà họ đang xúc tiến trong một dự án của trường đại học Trong một nỗ lực hợp tác và bắt đầu xây dựng dựa trên cơ sở người dùng đã có của PHP/FI, Andi, Rasmus và Zeev đã quyết định hợp tác và công bố PHP 3.0 như là phiên bản thế hệ kế tiếp của PHP/FI 2.0 và chấm dứt phát triển PHP/FI 2.0
Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộng mạnh mẽ của nó Ngoài khả năng cung cấp cho người dùng cuối một cơ sở hạ tầng chặt chẽ dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các tính năng mở rộng của PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và đề xuất các mô đun mở rộng mới Hoàn toàn có thể kết luận được rằng đây chính là điểm mấu chốt dẫn đến thành công vang dội của PHP 3.0 Các tính năng khác được
Trang 12giới thiệu trong PHP 3.0 gồm có hỗ trợ cú pháp hướng đối tượng và nhiều cú pháp ngôn ngữ nhất quán khác
Ngôn ngữ hoàn toàn mới đã được công bố dưới một cái tên mới, xóa bỏ mối liên hệ với việc sử dụng vào mục đích cá nhân hạn hẹp mà cái tên PHP/FI 2.0 gợi nhắc Nó đã được đặt tên ngắn gọn là 'PHP', một kiểu viết tắt hồi quy của
"PHP: Hypertext Preprocessor"
Vào cuối năm 1998, PHP đã phát triển được con số cài đặt lên tới hàng chục ngàn người sử dụng và hàng chục ngàn Website báo cáo là đã cài nó Vào thời kì đỉnh cao, PHP 3.0 đã được cài đặt cho xấp xỉ 10% số máy chủ Web có trên mạng Internet
PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian
9 tháng được cộng đồng kiểm nghiệm
PHP 4
Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố, Andi Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của PHP Mục đích thiết kế là nhằm cải tiến tốc độ xử lý các ứng dụng phức tạp, và cải tiến tính mô đun của cơ sở mã PHP Những ứng dụng như vậy đã chạy được trên PHP 3.0 dựa trên các tính năng mới và sự hỗ trợ khá nhiều các cơ sở dữ liệu
và API của bên thứ ba, nhưng PHP 3.0 đã không được thiết kế để xử lý các ứng dụng phức tạp như thế này một cách có hiệu quả
Một động cơ mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của Zeev và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công và lần đầu tiên được giới thiệu vào giữa năm 1999 PHP 4.0, dựa trên động cơ này
và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời Ngoài tốc độ xử lý được cải thiện rất nhiều, PHP 4.0 đem đến các tính năng chủ yếu khác gồm có sự
hỗ trợ nhiều máy chủ Web hơn, hỗ trợ phiên làm việc HTTP, tạo bộ đệm thông tin đầu ra, nhiều cách xử lý thông tin người sử dụng nhập vào bảo mật hơn và cung cấp một vài các cấu trúc ngôn ngữ mới
Trang 13Với PHP 4, 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ảng 20% số tên miền trên mạng Internet
Nhóm phát triển PHP cũng đã lên tới con số hàng nghìn người và nhiều nghìn người khác tham gia vào các dự án có liên quan đến PHP như PEAR, PECL và tài liệu kĩ thuật cho PHP
PHP 5
Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển PHP tự mãn Cộng đồng PHP đã nhanh chóng giúp họ nhận ra những yếu kém củ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 Engine 2.0, lõi của PHP 5.0 Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức được công bố để cộng đồng kiểm nghiệm Đó cũng là phiên bản đầu tiên của Zend Engine 2.0 Phiên bản Beta 2 sau đó đã ra mắt vào tháng 10 năm 2003 với sự xuất hiện của hai tính năng rất được chờ đợi: Iterators, Reflection nhưng namespaces một tính năng gây tranh cãi khác đã bị loại khỏi mã nguồn Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công bố để kiểm tra với việc phân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả năng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều hàm mới PHP 5 bản chính thức đã
ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3 Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP
Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bố đánh dấu sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo ra một hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện các câu truy vấn Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục
có những cải tiến trong nhân Zend Engine 2, nâng cấp modun PCRE lên bản PCRE 5.0 cùng những tính năng và cải tiến mới trong SOAP, streams và SPL
Trang 14PHP 6
Hiện nay phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản sử dụng thử đã có thể được download tại địa chỉ http://snaps.php.net Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại, ví dụ: hỗ trợ namespace (hiện tại các nhà phát triển vẫn chưa công bố rõ ràng
về vấn đề này), hỗ trợ Unicode, sử dụng PDO làm API chuẩn cho việc truy cập
cơ sở dữ liệu, các API cũ sẽ bị đưa ra thành thư viện PECL
1.1.2 Hệ quản trị cơ sở dữ liệu MySQL
MySQL là hệ quản trị cơ sở dữ liệu tự do 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, 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ất mạ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 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ên bả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…
1.2 Giới thiệu tổng quan về PHP Framework: CodeIgniter
CodeIgniter là một nền tảng ứng dụng web nguồn mở được viết bằng ngôn ngữ PHP bởi Rick Ellis(CEO của EllisLab, Inc) Phiên bản đầu tiên được phát hành ngày 28.02.2006, phiên bản hiện tại: 1.7.2 (phát hành ngày 11.09.2009) Ý tưởng xây dựng CodeIgniter được dựa trên Ruby on Rails, một nền tảng ứng dụng web được viết bằng ngôn ngữ Ruby Hiện tại, CodeIgniter đang được phát triển bởi ExpressionEngine Development Team thuộc EllisLab, Inc
Trang 15 Nếu ứng dụng có tương tác với cơ sở dữ liệu, thiết lập các giá trị cần thiết trong tập tin application/config/database.php
Upload tất cả thư mục và tập tin của CodeIgniter lên server
Để nâng cao tính bảo mật hệ thống, người dùng có thể đổi tên thư mục system củaCodeIgniter Sau khi đổi tên, người dùng phải thay đổi giá trị biến
$system_folder trong tập tin index.php
1.2.2 Mô hình MVC trong CodeIgniter
Model-View-Control (MVC) là một kiến trúc phần mềm, hiện đang được xem là một mẫu thiết kế trong công nghệ phần mềm Mô hình MVC tách biệt phần xử lý dữ liệu ra khỏi phần giao diện, cho phép phát triển, kiểm tra và bảo trì các thành phần một cách độc lập
Hình 1.1: Mô hình MVC trong CodeIgniter
Theo đó:
Model thể hiện các cấu trúc dữ liệu Các lớp thuộc thành phần Model
thường thực hiện các tác vụ như truy vấn, thêm, xóa, cập nhật dữ liệu Khi dữ liệu trong Model thay đổi, thành phần View sẽ được cập nhật lại
View là thành phần thể hiện dữ liệu trong Model thành các giao diện
tương tác với người sử dụng Một Model có thể có nhiều View tùy thuộc vào các mục đích khác nhau
Trang 16 Controller đóng vai trò trung gian giữa Model và View Thông tin
người dùng từ View được gửi cho Controller xử lý, sau đó Controller tương tác với Model để lấy dữ liệu được yêu cầu, sau cùng Controller trả dữ liệu này về cho View
Mô hình MVC thường được sử dụng trong các ứng dụng web, vì thành phần View (mã HTML/XHTML) được sinh ra từ các ngôn ngữ lập trình web
Model sẽ trả dữ liệu về phía Controller, sau đó Controller sinh mã HTML/XHTML để thể hiện trên View
1.2.3 Dòng dữ liệu trong CodeIgniter
Hình 1.2: Dòng dữ liệu trong CodeIgniter
Tập tin index.php đóng vai trò làm controller đầu vào, thiết lập các tài nguyên cần thiết cho hệ thống
Routing: Quy trình điều hướng giúp xác định các yêu cầu và hướng xử lý
đối với chúng
Caching: Nếu dữ liệu được yêu cầu đã được lưu trong bộ đệm,
CodeIgniter sẽ trả dữ liệu trong bộ đệm về phía client Quá trình xử lý kết thúc
Security: Dữ liệu trước khi được chuyển đến các Controller sẽ được lọc để
phòng chống XXS hoặc SQL Injection
Application Controller: Controller xử lý dữliệu nhận được bằng cách gọi
đến các Models, Libraries, Helpers, Plugins…có liên quan
View: Dữ liệu được chuyển qua View để hiển thị cho người dùng Nếu
chức năng caching được bật, dữ liệu sẽ được lưu trong cache cho những lần yêu cầu tiếp theo
Trang 171.2.4 Các Thư viện trong CodeIgniter
Sức mạnh của CodeIgniter nằm ở các thư viện xây dựng sẵn Hiện tại, CodeIgniter hỗ trợ người dùng 26 thư viện sau:
Hình 1.3: Các thư viện trong CodeIgniter
Trang 181.3 Giới thiệu về UML
1.3.1 Khái niệm và đặc điểm của UML
UML là ngôn ngữ mô hình hóa thống nhất(Unified Modeling Language), trước hết nó là mô tả ký pháp thống nhất, ngữ nghĩa và các định nghĩa về metamodel(mô tả định nghĩa chính ngôn ngữ mô hình hóa), nó không mô tả phương pháp phát triển UML được sử dụng để hiển thị, đặc tả, xây dựng và làm tài liệu các vật phẩm của quá trình phân tích xây dựng hệ thống phần mềm theo hướng đối tượng UML được sử dụng cho mọi tiến trình phát triển phần mềm, xuyên suốt vòng đời phát triển và độc lập với các công nghệ cài đặt hệ thống
UML là ngôn ngữ chuẩn để viết các kế hoạch chi tiết phần mềm Nó phù hợp cho việc mô hình hóa các hệ thông tin doanh nghiệp, các ứng dụng phân tán trên nền Web, hệ thống nhúng thời gian thực… Các khung nhìn của ngôn ngữ được quan sát từ góc độ phát triển và triển khai hệ thống, nó không khó sử dụng
và dễ hiểu UML là ngôn ngữ mô hình được cả con người và máy sử dụng
Đặc điểm của UML
UML là ngôn ngữ
UML là ngôn ngữ để hiển thị
UML làm ngôn ngữ đặc tả
UML là ngôn ngữ dễ xây dựng
UML là ngôn ngữ tài liệu
1.3.2 Mô hình khái niệm của UML
Phần tử mô hình UML
Các khối hình thành mô hình UML gồm ba loại như sau: phần tử, quan hệ
và biểu đồ Phần tử là trừu tượng căn bản trong mô hình, các quan hệ gắn các phần tử này lại với nhau, còn biểu đồ nhóm tập hợp các phần tử Trong UML có bốn loại phần tử mô hình, đó là cấu trúc, hành vi, nhóm và chú thích Các phần tử này là các khối để xây dựng hướng đối tượng cơ bản của UML
Phần tử cấu trúc là các danh từ trong mô hình UML Chúng là bộ phận tĩnh của mô hình để biểu diễn các thành phần khái niệm hay vật lý Có bảy loại
Trang 19phần tử cấu trúc, đó là: lớp, giao diện, phần tử cộng tác, trường hợp sử dụng(Use Case), lớp tích cực(active class), thành phần, nút(node)
Phần tử hành vi là bộ phận động của mô hình UML Chúng là các động
từ của mô hình, biểu diễn hành vi theo thời gian và không gian Có hai loại chính
là tương tác và máy trạng thái
Phần tử nhóm là bộ phận tổ chúc của mô hình UML Chỉ có một phần
tử thuộc nhóm này có tên là gói(package) Gói là cơ chế đa năng để tổ chức các phần tử của nhóm Các phần tử cấu trúc, hành vi và ngay cả phần tử nhóm có thể cho vào gói
Các quan hệ trong UML
Có bốn loại quan hệ trong UML, bao gồm quan hệ phụ thuộc, kết hợp, khái quát và hiện thực hóa.Chúng là cơ sở để xây dựng mọi quan hệ trong UML
Phụ thuộc(dependency): Phụ thuộc là quan hệ ngữ nghĩa hai phần tử trong đó thay đổi phần tử độc lập sẽ tác động đến ngữ nghĩa của phần tử phụ thuộc
Kết hợp(association): Kết hợp là quan hệ cấu trúc để mô tả tập liên kết Khi đối tượng của lớp này gửi/nhận thông điệp đến/từ đối tượng của lớp kia thì gọi đó là quan hệ kết hợp
Khái quát hóa(generalization): Khái quát hóa là quan hệ đặc biệt khái quát hóa mà trong đó đối tượng cụ thể sẽ kế thừa các thuộc tính và phương pháp của đối tượng tổng quát
Hiện thực hóa(realization): Hiện thực hóa là quan hệ ngữ nghĩa giữa giao diện và lớp(hay thành phần) hiện thực lớp, giữa UC và hợp tác hiện thực UC
Kiểu dữ liệu
Kiểu dữ liệu không phải là phần tử mô hình trong UML Kiểu dữ liệu cơ
sở là kiểu dữ liệu không có cấu trúc UML có các kiểu dữ liệu sau:
Boolean: là kiểu đếm với hai giá trị True và False
Biểu thức(Expression): là xâu ký tự có cú pháp
Tính nhiều (Multiplicity): là tập không rỗng của các số nguyên dương
và ký tự * (để biểu thị tính nhiều vô hạn)
Trang 20 Tên(Name): là xâu ký tự cho khả năng đặc tả phần tử
Số nguyên(Integer): là kiểu cơ bản và là phần tử của tập vô hạn các số nguyên âm và dương
Xâu(String): là trật tự của các ký tự, được sử dụng là tên
Thời gian(Time): xâu ký tự biểu dirn giá trị tuyệt đối hay khoảng tương tương đối
Không lý giải(Uninterpreted): là ‘cái gì đó’ mà ý nghĩa của nó phụ thuộc và lĩnh vực
Biểu đồ UML
Biểu đồ UML là biểu diễn đồ họa tập hợp các phần tử mô hình Vẽ biểu
đồ để biểu diễn hệ thống đang xây dựng dưới các góc độ quan sát khác nhau Có thể hiểu biểu đồ là ánh xạ của hệ thống Một phần tử có thể xuất hiện trong một hay nhiều biểu đồ Về lý thuyết thì biểu đồ có thể bao gồm tổ hợp vô số phần tử
đồ họa và quan hệ vừa mô tả trên UML cho khả năng xây dựng một vài kiểu biểu đồ trực quan để biểu diễn các khía cạnh khác nhau của hệ thống, bao gồm biểu đồ trường hợp sử dụng, biểu đồ trình tự, biểu đồ cộng tác, biểu đồ lớp, biểu
đồ biến đổi trạng thái, biểu đồ thành phần, biểu đồ triển khai
Biểu đồ trường hợp sử dụng(Use case- UC)
Biểu đồ này chỉ ra tương tác giữa UC và tác nhân UC biểu diễn các chức năng hệ thống Tác nhân con người hay hệ thống khác cung cấp hay thu nhận thông tin từ hệ thống đang được xây dựng Biểu đồ UC tập trung vào quan sát trạng thái tĩnh của các UC trong hệ thống Biểu đồ loại này chỉ ra tác nhân nào khởi động UC và khi nào tác nhân nhận thông tin từ hệ thống
Biểu đồ trình tự(Sequence)
Biểu đồ trình tự chỉ ra các luồng chức năng xuyên qua các UC, nó là biểu
đồ mô tả tương tác giữa các đối tượng và tập trung vào mô tả trật tự các thông điệp thời gian
Biểu đồ cộng tác (Collabaration)
Biểu đồ cộng tác chỉ ra các thông tin như biểu đồ trình tự theo cách khác,
Trang 21đồ cộng tác và biểu đồ trình tự thuộc loại biểu đồ tương tác và chúng có thể biến đổi qua lại
Biểu đồ lớp(Class)
Biểu đồ lớp chỉ ra tương tác giữa các lớp trong hệ thống Các lớp được xem như kế hoạch chi tiết của từng đối tượng Mỗi lớp trong biểu đồ lớp được tạo ra cho mỗi loại đối tượng trong biểu đồ trinh tự và cộng tác
Biểu đồ chuyển trạng thái(State transition)
Biểu đồ chuyển trạng thái mô tả vòng đời của đối tượng, từ khi nó được sinh ra đến khi bị phá hủy Biểu đồ chuyển trạng thái cung cấp cách thức mô hình hóa các trạng thái khác nhau của đối tượng Trong khi biểu đồ lớp cung cấp bức tranh tĩnh về các lớp và quan hệ của chúng thì biểu đồ chuyển trạng thái được sử dụng để mô hình hóa các hành vi động của hệ thống
Biểu đồ thành phần(Component)
Biểu đồ thành phần cho ta cái nhìn vật lý của mô hình Biểu diễn thành phần cho ta thấy được các thành phần mềm trong hệ thống và quan hệ giữa chúng Hai loại thành phần trong biểu diển đồ, đó là thành phần khả thực và thành phần thư viện Bất kỳ ai có trách nhiệm dịch chương trình đều quan tâm đến biểu đồ loại này Biểu đồ cho ta thấy trình tự dịch của các modun trong hệ thống Đồng thời nó cũng cho biết rõ thành phần nào được tạo ra khi chạy chương trình
Biểu đồ triển khai(Deployment)
Biểu đồ triển khai chỉ ra bố trí vật lý của mạng và các thành phần hệ thống
sẽ đặt ở đây Thông qua biểu đồ triển khai mà người quản lý dự án, người sử dụng, kiến trúc sư và đội ngũ triển khai hiểu phân bổ vật lý của hệ thống và các
hệ thống con sẽ được đặt ra ở đâu
Trang 22CHƯƠNG 2:
KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Thực trạng của hệ thống
2.1.1 Giới thiệu về công ty
Tên Trường: Công ty phần mềm trực tuyến Minh Đức
Địa Chỉ: P18 - B20, tập thể Nghĩa Tân - Phường Nghĩa Tân - Quận Cầu Giấy - Hà Nội
Điện thoại: 0904.376.633
Email: minhduc@gmail.com
Sau 2 năm xây dựng và phát triển, Công ty phần mềm trực tuyến Minh Đức vẫn là một công ty trẻ đã và đang tiếp tục khai thác những tiềm năng của công nghệ Internet, tri thức và nội lực sáng tạo để tạo nên những sản phẩm và dịch vụ phần mềm chất lượng cao phục vụ cho nền kinh tế quốc dân Minh Đức
đã và đang tự tin đem đến cho khách hàng: Sản phẩm và giải pháp CNTT chất lượng cao, các thiết kế ấn tượng và giải pháp hoàn hảo cho website thương mại điện tử chuyên nghiệp, các dịch vụ tư vấn, hỗ trợ khách hàng hoàn hảo về CNTT Các dịch vụ bảo trì và chăm sóc khách hàng cũng được công ty thực hiện thường xuyên và kịp thời để đảm bảo cho khách hàng có một công cụ quản lý ổn định và hiệu quả
cũ về nội dung không còn đáp ứng được yêu cầu của bất cứ một nền giáo dục hiện đại nào
Để hòa nhập và tăng khả năng cạnh tranh trong thời đại của kinh tế tri thức, các quốc gia trên thế giới đều chú trọng đến các thay đổi nhằm nâng cao
Trang 23Một điều dễ nhận thấy là không tồn tại một mô hình giáo dục thống nhất cho tất cả các quốc gia Tuy nhiên, tất cả các nền giáo dục hiện đại đều hướng tới mục tiêu giúp các cá nhận nhận thấy được khả năng, năng lực của bản thân mình, tìm cách khuyến khích phát huy tiềm năng cá nhân để tham gia một cách thích ứng vào các hoạt động kinh tế xã hội
Để đạt được mục tiêu này, phương pháp giáo dục tích cực trong đó giáo viên là người thiết kế, tổ chức, hướng dẫn các hoạt động cho người học, đối thoại với người học từ đó giúp người học tìm kiếm kiến thức Giáo viên có thể là người khẳng định những ý kiến của học sinh, sinh viên hay đưa những ý kiến đó thành nội dung bàn luận trong một tập thể người học Cũng chính bằng cách này
mà hoạt động dạy-học có thể đạt được mục đích khuyến khích phát triển tư duy thông qua hình thức tự học – hình thức thu nạp kiến thức quan trọng nhất cho bất
cứ ai tại bất kỳ nơi đâu
Để bồi dưỡng và tạo điều kiện nâng cao khả năng tự học, khả năng tổ chức và làm việc theo nhóm thì yêu cầu về tài liệu hay nói rộng hơn là các nguồn tài nguyên trong giáo dục đóng vai trò vô cùng quan trọng
Tuy nhiên, nguồn tài nguyên giáo dục của chúng ta còn quá thiếu Cho đến thời điểm này, chủ yếu ta vẫn trông chờ vào số các giáo trình, bài giảng, sách giáo khoa, tài liệu tham khảo với một số lượng hạn chế Có rất nhiều nguyên nhân khác nhau dẫn đến sự "khan hiếm" tài nguyên giáo dục và điều này làm cho
số người tiếp cận được với tri thức xã hội ngày một ít, học sinh sinh viên (HSSV)
ít tiếp cận được với kiến thức mới Tăng quy mô đào tạo cộng với sự thiếu hụt tài nguyên giáo dục sẽ làm giảm lượng kiến thức thu nhận trung bình của mỗi người Nếu đưa tốc độ gia tăng về lượng kiến thức mới của nhân loại vào phép tính này thì tốc độ giảm lượng kiến thức thu nhận sẽ còn tăng hơn nữa
Hiện nay, cùng với tốc độ phát triển của Internet, số lượng người người dùng mạng (trong số đó đa phần là HSSV) tại Việt nam ngày một tăng HSSV truy cập mạng với nhiều mục đích trong đó có việc học tập và nghiên cứu khoa học Vậy giải pháp cho vấn đề này là gì? Sự xuất hiện của các website dạy học
Trang 24trực truyến đã giúp HSSV bù đắp một phần cho sự thiếu hụt này Sự ra đời của học trực tuyến cũng không nằm ngoài mục tiêu đó
2.1.3 Giải pháp
Để hoàn thành được phương pháp tiếp cận với hình thức học tập tiên tiến sau khi thực tập và tiến hành khảo sát tại công ty, em đã đưa ra giải pháp xây dựng website học lập trình trưc tuyến cho công ty phần mềm trực tuyến Minh Đức nhằm mang đến một phương thức học tập mới, một mô hình học tập mới,
một phương pháp thu nhận kiến thức hiện đại
2.1.4 Mô tả bài toán
Xây dựng một Website giới thiệu, cung cấp các khóa học cho tất cả mọi người ham mê về lập trình Đây là website mang tính chất giáo dục nên các bài viết, tài liệu đăng tải lên dành cho mọi sinh viên, ở bất cứ đâu Với mục tiêu cung cấp một phương pháp học mới, cũng như tạo ra nguồn tài nguyên cho mọi thành viên được học hỏi và tích lũy thêm kiến thức, kiểm tra được khả năng học tập của mình
2.2 Khảo sát thực trạng
2.2.1 Khảo sát hệ thống
Những lợi ích mà khóa học trực tuyến mang lại:
- Tiết kiệm chi phí
Chi phí để mở một lớp học trực tuyến cho bằng 1/10 so với chi phí mở một lớp học thông thường Do đó, học phí của một lớp học truyến cũng thấp hơn
Rẻ hơn, tiết kiệm hơn là những đặc tính mà công nghệ thông tin trong thế giới
“phẳng” đem lại cho con người và School_online đã tận dụng được triệt để đặc tính này để đưa ra dịch vụ chung phù hợp với tất cả mọi người
Mặc dù học phí rẻ hơn nhưng tất cả những bài giảng trên School_online đều được kiểm duyệt kĩ lưỡng bởi những chuyên gia có kinh nghiệm trong lĩnh vực đó Học phí thấp nhưng chất lượng luôn ở mức tốt Các ưu điểm được nhắc đến là:
- Tự định hướng:
Trang 25Khả năng tự định hướng ở đây chính là việc người học hoàn toàn tự lựa chọn được lớp học, khoá học phù hợp nhất với trình độ, sở thích, mục tiêu của bản thân mà không bị các yếu tố bên ngoài như lớp học xa nhà, thời khoá biểu bị trùng với lịch môn học khác hoặc không thể đến lớp học đúng giờ quy định
-Tự điều chỉnh:
Trong thời gian vào một khoá học, học viên có thể điều chỉnh nhịp điệu khoá học của mình cho phù hợp với kiến thức và khung thời gian hiện tại của học viên Những học viên có nhu cầu học trực tuyến hoặc đang theo học các lớp học trực tuyến đa số là những người có khả năng tự học cao, có tinh thần cầu tiến, ham hiểu biết… nên trong cùng 1 thời gian học viên có thể vừa làm vừa học nhiều hoạt động khác nhau Khả năng tự điều chỉnh nhịp điều lớp học giúp học viên có thể rút ngắn hoặc kéo dài thời gian tham khoá học mà vẫn đảm bảo được các hoạt động khác
-Tính linh hoạt:
Lợi ích đầu tiên mà mọi người nói đến đầu tiên khi nhắc đến dạy và học trực tuyến chính là tính linh hoạt Học viên có tự sắp xếp thời khoá biểu của mình, tự điều chỉnh được thời khoá biểu mà mình đã đặt ra… để tham gia vào buổi học tại bất cứ đâu và vào bất cứ thời gian nào Bởi School_online hoàn toàn không bị khống chế bởi yếu tố thời gian và không gian
-Hiệu quả:
Học trực tuyến giúp học viên là các nhân, tổ chức, doanh nghiệp vừa tiết kiệm được chi phí vừa đáp ứng được nhu cầu bản thân Đồng thời giáo viên có thêm không gian để đưa những bài giảng tâm đắc đến cho nhiều người có nhu cầu học mà chưa có điều kiện đến các lớp học tập trung thông thường
-Tự đánh giá:
Học trực tuyến giúp học viên có thể tự kiểm tra để đánh giá mức độ hiểu biết của bản thân với vấn đề đang cần tìm hiểu qua các bài kiểm tra để đưa ra cách phương pháp học tập thật hiệu quả
Từ những lợi ích của việc học trực tuyến trên, em xây dựng được website bao gồm những chức năng sau:
Trang 26+ Cho phép người dùng đăng ký làm thành viên của hệ thống và đăng nhập khi đã có tài khoản
+ Phân loại và hiện thị khóa học theo từng khóa học
+ Cho phép người dùng tìm kiếm theo tên khóa học
+ Người dùng lựa chọn khóa học mà mình mong muốn, xem các bài học
và xem chi tiết bài học đó
+ Cho phép học viên thực hiện các bài kiểm tra theo từng khóa học
+ Đối với quản trị viên hệ thống thì có thể thêm, xóa và cập nhật thông tin về: người dùng, khóa học, bài học, bài kiểm tra
+ Giao diện Web thân thiện và dễ sử dụng
2.2.2 Quy trình Học viên sử dụng website
- Học viên duyệt ứng dụng trên trình duyệt Web
- Trình duyệt sẽ hiển thị các khóa học Học viên có thể duyệt khóa học đã được liệt kê sẵn hoặc có thể sử dụng chức năng tìm kiếm để tìm kiếm theo tên khóa học
- Sau khi tìm kiếm, tham khảo các thông tin về khóa học Học viên có thể
đi đến quyết định là có học khóa học đó không Để làm điều này Học viên cần click vào khóa học đó và xem các bài học Các khóa học là do các Giáo viên của website tự đăng lên sau khi đã qua kiểm duyệt của người quản trị Sau khi đăng
ký để học khóa học Học viên sẽ được làm các bài kiểm tra Bài kiểm tra sẽ được giáo viên đăng lên sau khi đã qua kiểm duyệt của người quản trị Sau mỗi bài kiểm tra Học viên được thông báo điểm và theo dõi quá trình học tập trong suốt khóa học
- Các thông tin cần hiển thị trên trang chủ của ứng dụng: Danh mục loại khóa học mà website cung cấp một vài chức năng như: tìm kiếm, đăng ký, đăng nhập
- Các thông tin về tài khoản của người dùng bao gồm: điạ chỉ email, mật khẩu truy nhập, tên người dùng, địa chỉ nơi ở, số điện thoại người dùng
- Mỗi khóa học có các thông tin sau: tên khóa học, khóa học thuộc loại khóa học nào
Trang 27- Muốn học các khóa học Học viên cần thanh toán: thanh toán bằng tiền mặt, thanh toán bằng thẻ tín dụng
- Sau khi đăng ký khóa học Học viên sẽ được theo dõi quá trình học tập thông qua bài kiểm tra
2.2.3 Quy trình Giáo viên sử dụng website
Để truy cập vào giáo viên cần có một tài khoản để truy nhập Sau khi truy nhập Giáo viên có thể thực hiện các chức năng sau:
- Quản lý khóa học: Thêm, xóa và sửa thông tin về mỗi khóa học
- Quản lý bài học: Thêm, xóa và sửa thông tin về mỗi bài học
- Quản lý bài kiểm tra: Thêm, xóa và sửa thông tin về mỗi bài kiểm tra
- Quản lý điểm: Xem thông tin điểm của các Học viên
2.2.4 Quy trình thực hiện quản trị hệ thống của quản trị viên
Để truy cập vào chức năng quản trị hệ thống Quản trị viên cần có một tài khoản để truy nhập Sau khi truy nhập quản trị viên có thể thực hiện các chức năng sau:
- Quản lý khóa học: Thêm, xóa và sửa thông tin về mỗi khóa học
- Quản lý bài giảng: Thêm, xóa và sửa thông tin về mỗi bài học
- Quản lý thành viên: Thêm, xoá, sửa thông tin về thành viên
- Quản lý tin tức: Thêm, xoá, sửa thông tin về tin tức
- Quản lý bài kiểm tra: Thêm, sửa, xóa thông tin về mỗi bài kiểm tra
- Quản lý điểm: Xem thông tin điểm của Học viên
2.3 Thông tin đầu vào, đầu ra của bài toán
2.3.1 Các thông tin đầu vào
Người quản trị nhập thông tin về khóa học, bài học, loại khóa học, các bài kiểm tra, thông tin tin tức mà website hiện có, các khóa học, bài kiểm tra cập nhật thường xuyên Còn các thành viên cung cấp thông tin cá nhân, đăng ký khóa học, bài học cho website giúp website ngày càng hoàn thiện hơn Cụ thể gồm các thông tin sau:
Trang 28- Các thông tin giới thiệu về hệ thống
- Các khóa học
- Các bài học
- Nội dung bài học
- Các bài kiểm tra
- Các thông tin về người dùng
- Các bài viết, tin tức
2.3.2 Các thông tin đầu ra
- Đưa ra các thông tin cần thiết cho người dùng ở mọi khía cạnh mà người
dùng quan tâm đến khóa học của website
- Đưa ra khóa học người dùng yêu cầu tìm kiếm, đưa ra khóa học nổi bật nhất
- Đưa ra bảng điểm của mỗi Học viên
Cụ thể bao gồm:
+ Cho phép tra cứu, xem thông tin về từng khóa học
+ Cho phép học viên lựa chọn khóa học, xem các bài học và học các bài học thuộc khóa học nào đó
+ Cho phép ban quản trị cập nhật các tin tức, bài viết, trả lời các ý kiến hỏi đáp của người dùng
+ Cho phép ban quản trị cập nhật thông tin từng khóa học
+ Cho phép ban quản trị theo dõi thành Học viên
+ Cho phép ban quản trị theo dõi điểm của Học viên
2.4 Phân tích hệ thống
2.4.1 Biểu đồ UC mức tổng thể
Nhận diện Tác nhân và Use Case
Hệ thống được chia làm hai phần: một phần dành cho giáo viên, học viên
và một phần dành cho nhân viên quản trị quản lý và cập nhật thông tin cho website
Trang 29Danh mục khóa học các tác nhân và Use Case:
- Quản lý bài giảng
- Quản lý bài kiểm tra