Đăng ký Đăng nhập
Trang chủ Xây dựng website học lập trình trực tuyến cho công ty phần mền trực tuyến minh đ...

Tài liệu Xây dựng website học lập trình trực tuyến cho công ty phần mền trực tuyến minh đức

.PDF
61
43
69

Mô tả:

LỜI CẢM ƠN Đầu tiên cho em gửi lời biết ơn sâu sắc đến cô giáo Th.S Phạm Thị Thương đã định hướng, cung cấp tài liệu và tận tình giúp đỡ, động viên em trong quá trình thực hiện đồ án. Cô đã dành nhiều thời gian và tâm huyết theo sát, chỉ bảo em những mặt được và chưa được để em có thể hoàn thành đồ án một cách tốt nhất. Em xin chân thành cảm ơn cô! Em 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ế 1 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 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ế 2 MỤ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 3 2.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 4 3.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 5 DANH 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 6 Hì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 7 DANH 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 8 LỜI MỞ ĐẦU Ngày nay ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức, doanh nghiệp, cũng như các trường đại học, cao đẳng, các trang thông tin, giải trí, nó đóng vai trò hết sức quan trọng có thể tạo ra những bước đột phá mạnh mẽ. Họ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. 9 CHƯƠ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ẻ 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. 10 PHP/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 11 giớ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. 12 Vớ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. 13 PHP 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. 14 1.2.1 Cài đặt Hướng dẫn cài đặt:  Download bộ nguồn CodeIgniter tại website http://codeigniter.com/, phiên bản hiện tại: CodeIgniter-3.0.  Mở tập tin application/config/config.php bằng một chương trình soạn thảo, thay đổi giá trị $config['base_url']. Đây là đường dẫn tuyệt đối đến thư mục CodeIgniter trên server.  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. 15  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. 16 1.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 17 1.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 18 phầ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). 19  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, nó tập trung vào tổ chức cấu trúc của các đối tượng gửi và nhận thông điệp. Biểu 20
- Xem thêm -

Tài liệu liên quan