M ục tiêu nghiên cứu Xây dựng được một hệ thống website Lớp học lập trình trực tuyến với các tiêu chí sau: - Đầy đủ tính năng cơ bản, phù hợp với nhu cầu sử dụng của người quản lý cũng
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ KHOA HỆ THỐNG THÔNG TIN KINH TẾ
L ớp: K47 Tin Học Kinh Tế Niên khóa: 2013 - 2017
Trang 2Lời Cảm Ơn
Để thực hiện khóa luận này, em xin gửi lời cảm ơn chân thành đến Trường Đại Học Kinh Tế - Đại Học Huế, toàn bộ thầy cô giáo, bạn bè đã giúp đỡ em thực hiện đề tài này một cách thuận lợi nhất
Trước tiên, em xin cảm ơn Nhà trường đã tạo điều kiện thuận lợi nhất để em hoàn thành chương trình khóa luận của mình Em cũng xin cảm ơn đến các anh chị và bạn bè ở công ty TNHH Phần mềm FPT tại Đà Nẵng Đây là cơ hội để em có dịp giao lưu, học hỏi những kiến thức, kinh nghiệm quý giá trong chuyên môn và cuộc sống Những hành trang đó là một tài sản vô giá nâng bước cho em tới được với những thành công trong tương lai
Em cũng xin gửi lời cảm ơn chân thành đến Thạc sĩ Trần Thái Hòa, giảng viên Khoa Hệ Thống Thông Tin Kinh Tế đã tận tình hướng dẫn, giúp
đỡ em rất nhiều từ những bước ban đầu cho đến khi khóa luận được hoàn thành tốt nhất có thể Cuối cùng em xin cảm ơn đến tất cả quý thầy cô giáo trong Khoa Hệ Thống Thông Tin Kinh Tế, đến gia đình người thân và tất cả bạn bè đã đóng góp ý kiến và giúp đỡ cho đề tài của em được hoàn thành tốt đẹp
Trong quá trình thực hiện đề tài, do kiến thức và thời gian có hạn nên không tránh khỏi những sai sót Mong quý thầy, cô giáo thông cảm và góp ý để em có thể hoàn thiện đề tài, cũng như có thêm kiến thức, là hành trang vững chắc trên con đường phía trước
Em xin chân thành cảm ơn!
Huế, ngày 11 tháng 5 năm 2017
Trang 3NH ẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Huế, ngày… tháng….năm 2017 GIÁO VIÊN HƯỚNG DẪN (Ký tên và ghi họ tên)
Đạ i h
ọc Kinh
tế Hu
ế
Trang 4NH ẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Huế, ngày… tháng… năm 2017 GIÁO VIÊN HƯỚNG DẪN (Ký tên và ghi họ tên)
Đạ i h
ọc Kinh
tế Hu
ế
Trang 5ỤC LỤC
M Ở ĐẦU 1
1 Lý do lựa chọn đề tài 1
2 Mục tiêu nghiên cứu 1
3 Đối tượng và phạm vi nghiên cứu 2
4 Phương pháp nghiên cứu 2
5 Nội dung khóa luận: 3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 4
1 Giới thiệu về ngôn ngữ lập trình Java 4
1.1.Java là gì? 4
1.2.Lịch sử phát triển của ngôn ngữ lập trình Java 4
1.3.Đặc điểm nổi bật của ngôn ngữ lập trình Java 4
2 Môi trường phát triển tích hợp Eclipse 6
2.1.Eclipse là gì? 6
2.2.Các tính năng mới của Elipse 6
2.3.Ưu điểm, nhược điểm của Eclipse 7
3 Mô hình MVC 8
3.1.Khái niệm mô hình MVC 8
3.2.Các thành phần trong MVC 8
3.3.Sự tương tác giữa các lớp trong mô hình MVC 8
4 Framework Struts 9
4.1.Khái niệm về Framework Struts 9
4.2.Cấu trúc của Framework Struts 9
5 Tổng quan về hệ quản trị cơ sở dữ liệu MS SQL 10
5.1.SQL là ngôn ngữ cơ sở dữ liệu quan hệ 10
5.2.Hệ quản trị cơ sở dữ liệu SQL Server 10
CHƯƠNG 2: PHÂN TÍCH, THIẾT KẾ HỆ WEBSITE LỚP HỌC LẬP TRÌNH TRỰC TUYẾN 11
1 Mô tả hệ thống 11
2 Đặc tả yêu cầu, chức năng của hệ thống 11
Đạ i h
ọc Kinh
tế Hu
ế
Trang 62.2.Yêu cầu về chất lượng 12
2.3.Yêu cầu về đối tượng 12
2.4.Yêu cầu về website 12
3 Biểu đồ Use Case 13
3.1.Chức năng xem trang chủ 13
3.2.Chức năng quản lý Category 14
3.3.Chức năng quản lý Menu 15
3.4.Chức năng quản lý Subject 15
3.5.Chức năng quản lý Problem 16
3.6.Chức năng quản lý Editorial 16
3.7.Chức năng quản lý Tutorial 17
3.8.Chức năng quản lý Testcase 17
3.9.Chức năng quản lý TutorialCode 18
3.10.Chức năng quản lý Submit 18
3.11.Chức năng quản lý User 19
3.12.Chức năng quản lý Code 19
3.13.Chức năng quản lý Status 20
3.14.Chức năng quản lý LeaderBoard 20
3.15.Chức năng thống kê 20
4 Mô hình hóa hệ thống 21
4.1.Biểu đồ tuần tự (sequence diagram) 21
4.1.1.Biểu đồ tuần tự đăng nhập 21
4.1.2.Biểu đồ tuần tự đăng ký thành viên 22
4.1.3.Biểu đồ tuần tự đăng xuất 23
4.1.4.Biểu đồ tuần tự Category 24
4.1.5.Biểu đồ tuần tự Code 24
4.1.6.Biểu đồ tuần tự Editorial 25
4.1.7.Biểu đồ tuần tự LeaderBoard 25
4.1.8.Biểu đồ tuần tự Menu 26
Đạ i h
ọc Kinh
tế Hu
ế
Trang 74.1.10.Biểu đồ tuần tự Status 27
4.1.11.Biểu đồ tuần tự Subject 27
4.1.12.Biểu đồ tuần tự Submit 28
4.1.13.Biểu đồ tuần tự Testcase 28
4.1.14.Biểu đồ tuần tự Tutorial 29
4.1.15.Biểu đồ tuần tự TutorialCode 29
4.1.16.Biểu đồ tuần tự User 30
4.2.Biểu đồ lớp (class diagram) 31
4.2.1.Biểu đồ lớp Category 32
4.2.2.Biểu đồ lớp Editorial 32
4.2.3.Biểu đồ lớp Code 33
4.2.4.Biểu đồ lớp Menu 33
4.2.5.Biểu đồ lớp LeaderBoard 34
4.2.6.Biểu đồ lớp Status 34
4.2.7.Biểu đồ lớp Submit 35
4.2.8.Biểu đồ lớp Subject 35
4.2.9.Biểu đồ lớp Testcase 36
4.2.10 Biểu đồ lớp Tutorial 36
4.2.11 Biểu đồ lớp TutorialCode 37
4.2.12 Biểu đồ lớp User 37
4.2.13 Biểu đồ lớp Problem 38
5 Thiết kế hệ thống 38
5.1.Thiết kế cơ sở dữ liệu 38
5.1.1.Mô tả thực thể 38
5.1.1.1.Thực thể: Menu 38
5.1.1.2.Thực thể: Categories 38
5.1.1.3.Thực thể: Subject 39
5.1.1.4.Thực thể Problem 39
5.1.1.5.Thực thể Tutorial 39
Đạ i h
ọc Kinh
tế Hu
ế
Trang 85.1.1.7.Thực thể Submit 40
5.1.1.8.Thực thể Testcase 40
5.1.1.9.Thực thể TutorialCode 41
5.1.1.10.Thực thể user 41
5.1.1.11.Thực thể Code 41
5.1.1.12.Thực thể Leaderboard 41
5.1.1.13.Thực thể Status 42
5.1.2.Mối liên kết giữa các thực thể 42
5.1.2.1.Menu và Categories 42
5.1.2.2.Categories, Tutorial và Subject 42
5.1.2.3.Tutorial và TutorialCode 43
5.1.2.4.Subject, Editorial, Submit, Testcase, và Problem 44
5.1.2.5.Submit, Code và LeaderBoard 45
5.1.2.6.User, Submit và Status 45
5.1.3.Mô tả các bảng 46
5.1.3.1.Bảng Menu 46
5.1.3.2.Bảng Categories 46
5.1.3.3.Bảng Subject 47
5.1.3.4.Bảng Problem 47
5.1.3.5.Bảng Tutorial 48
5.1.3.6.Bảng Editorial 48
5.1.3.7.Bảng Testcase 48
5.1.3.8.Bảng TutorialCode 49
5.1.3.9.Bảng User 49
5.1.3.10.Bảng Submit 50
5.1.3.11.Bảng Code 50
5.1.3.12.Bảng LeaderBoard 50
5.1.3.13.Bảng Status 50
5.2.Sơ đồ thực thể mối quan hệ 51
Đạ i h
ọc Kinh
tế Hu
ế
Trang 9TUYẾN 52
1 Môi trường cài đặt 52
2.Thiết kế giao diện 53
2.1.Đăng nhập 53
2.2.Đăng ký 53
2.3.Giao diện trang chủ 54
2.4.Giao diện trang quản trị 59
K ẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 64
1 Kết quả đạt được 64
2 Hướng phát triển của đề tài 64
TÀI LIỆU THAM KHẢO 66
Đạ i h
ọc Kinh
tế Hu
ế
Trang 10Bảng 2.1: Bảng Menu 46
Bảng 2.2: Bảng Categories 46
Bảng 2.3: Bảng Subject 47
Bảng 2.4: Bảng Problem 47
Bảng 2.5: Bảng Tutorial 48
Bảng 2.6: Bảng Editorial 48
Bảng 2.7: Bảng Testcase 48
Bảng 2.8: Bảng TutorialCode 49
Bảng 2.9: Bảng User 49
Bảng 2.10: Bảng Submit 50
Bảng 2.11: Bảng Code 50
Bảng 2.12: Bảng LeaderBoard 50
Bảng 2.13: Bảng Status 50
Đạ i h
ọc Kinh
tế Hu
ế
Trang 11Hình 2.1: Chức năng hệ thống Website Lớp học lập trình trực tuyến 13
Hình 2.2: Chức năng xem trang chủ của user khi chưa đăng nhập 13
Hình 2.3: Chức năng xem trang chủ của user khi đã đăng nhập 14
Hình 2.4: Chức năng quản lý Categories 14
Hình 2.5: Chức năng quản lý Menu 15
Hình 2.6: Chức năng quản lý Subject 15
Hình 2.7: Chức năng quản lý Problem 16
Hình 2.8: Chức năng quản lý Editorial 16
Hình 2.9: Chức năng quản lý Tutorial 17
Hình 2.10: Chức năng quản lý Testcase 17
Hình 2.11: Chức năng quản lý TutorialCode 18
Hình 2.12: Chức năng quản lý Submit 18
Hình 2.13: Chức năng quản lý User 19
Hình 2.14: Chức năng quản lý code 19
Hình 2.15: Chức năng quản lý Status 20
Hình 2.16: Chức năng quản lý Leaderboard 20
Hình 2.17: Chức năng thống kê 20
Hình 2.18: Biểu đồ tuần tự đăng nhập 21
Hình 2.19: Biểu đồ tuần tự đăng ký 22
Hình 2.20: Biểu đồ tuần tự đăng xuất 23
Hình 2.21: Biểu đồ tuần tự hiển thị categories 24
Hình 2.22: Biểu đồ tuần tự hiển thị Code 24
Hình 2.23: Biểu đồ tuần tự hiển thị editorial 25
Hình 2.24: Biểu đồ tuần tự hiển thị Leaderboard 25
Hình 2.25: Biểu đồ tuần tự hiển thị Menu 26
Hình 2.26: Biểu đồ tuần tự hiển thị Problem 26
Hình 2.27: Biểu đồ tuần tự hiển thị Status 27
Hình 2.28: Biểu đồ tuần tự hiển thị Subject 27
Hình 2.29: Biểu đồ tuần tự hiển thị Submit 28
Đạ i h
ọc Kinh
tế Hu
ế
Trang 12Hình 2.31: Biểu đồ tuần tự hiển thị Tutorial 29
Hình 2.32: Biểu đồ tuần tự hiển thị TutorialCode 29
Hình 2.33: Biểu đồ tuần tự hiển thị User 30
Hình 2.34: Biểu đồ hệ thống website lớp học lập trình trực tuyến 31
Hình 2.35: Biểu đồ lớp Categories 32
Hình 2.36: Biểu đồ lớp Editorial 32
Hình 2.37: Biểu đồ lớp Code 33
Hình 2.38: Biểu đồ lớp Menu 33
Hình 2.40: Biểu đồ lớp Status 34
Hình 2.41: Biểu đồ lớp Submit 35
Hình 2.42: Biểu đồ lớp Subject 35
Hình 2.43: Biểu đồ lớp Testcase 36
Hình 2.44: Biểu đồ lớp Tutorial 36
Hình 2.45: Biểu đồ lớp TutorialCode 37
Hình 2.46: Biểu đồ lớp User 37
Hình 2.47: Biểu đồ lớp Problem 38
Hình 2.48: Liên kết giữa Menu và Categories 42
Hình 2.49: Liên kết giữa Categories với Subject và Tutorial 43
Hình 2.50: Liên kết giữa Tutorial và TutorialCode 43
Hình 2.51: Liên kết giữa Subject với Editorial, Submit, Testcase và Problem 44
Hình 2.52: Liên kết giữa Submit với Code và Leaderboard 45
Hình 2.53: Liên kết giữa User với Code và Status 46
Hình 2.54: Sơ đồ thực thể mối quan hệ 51
Hình 3.1: Giao diện form đăng nhập 53
Hình 3.2: Giao diện form đăng ký 53
Hình 3.3: Giao diện trang menu ngang và slide 54
Hình 3.4: Giao diện trang danh sách bài học 54
Hình 3.5: Giao diện trang chạy code 55
Hình 3.6: Giao diện trang danh sách bài viết 55
Đạ i h
ọc Kinh
tế Hu
ế
Trang 13Hình 3.8: Giao diện trang nộp bài thi 56
Hình 3.9: Giao diện trang xếp hạn điểm của môt đề thi 57
Hình 3.10: Giao diện trang gợi ý bài thi 57
Hình 3.11: Giao diện xếp hạng điểm của các thành viên 58
Hình 3.12: Giao diện số lần nộp bài của tài khoản đó 58
Hình 3.13: Giao diện quản lý user 59
Hình 3.14: Giao diện quản lý Categories 59
Hình 3.15: Giao diện quản lý Menu 60
Hình 3.16: Giao diện quản lý Subject 60
Hình 3.17: Giao diện quản lý Problem 61
Hình 3.18: Giao diện quản lý Editrorial 61
Hình 3.19: Giao diện quản lý Tutorial 62
Hình 3.20: Giao diện quản lý Testcase 62
Hình 3.21: Giao diện quản lý TutorialCode 63
Hình 3.22: Giao diện quản lý Submit 63
Đạ i h
ọc Kinh
tế Hu
ế
Trang 14MỞ ĐẦU
1 Lý do l ựa chọn đề tài
Trong bối cảnh nền kinh tế Việt Nam hội nhập với nền kinh tế quốc tế, cùng
với sự phát triển mạnh mẽ của công nghệ thông tin đã trở thành một phần tất yếu trong
xã hội hiện đại Trong đó, giáo dục cũng chịu mọi sự tác động mạnh mẽ của công nghệ thông tin Sự phát triển của công nghệ thông tin làm cho lượng tri thức của nhân loại tăng lên rất nhiều Chính vì vậy, các phương pháp giáo dục truyền thống không thể nào truyền đạt được hết nội dung tri thức Do đó việc thay đổi phương pháp dạy và học cho phù hợp với xu hướng phát triển của xã hội là rất cần và cấp thiết
Trong bối cảnh đó, nền giáo dục nước ta cần được đổi mới phương pháp dạy
học theo xu hướng vận dụng công nghệ thông tin và các thiết bị dạy học nhằm phát huy kỹ năng thực hành và tăng hứng thú học tập của học sinh, sinh viên nằm nâng cao
học sinh sinh viên
Vì thế mô hình học lập trình trực tuyến đã ra đời và dễ dàng thu hút sự quan tâm của cộng đồng mạng, từ đây mọi người có thể dễ dàng tìm được ngôn ngữ lập trình phù hợp với nhu cầu của mình và nâng cao kiến thức thông qua những bài học và bài thi của ngôn ngữ đó
Chính vì những lý do đó, tôi chọn “ Xây dựng website lớp học lập trình trực tuyến” làm hướng nghiên cứu cho đề tài
2 M ục tiêu nghiên cứu
Xây dựng được một hệ thống website Lớp học lập trình trực tuyến với các tiêu chí sau:
- Đầy đủ tính năng cơ bản, phù hợp với nhu cầu sử dụng của người quản lý cũng như tiện dụng cho việc học và thi của người dùng
Đạ i h
ọc Kinh
tế Hu
ế
Trang 15- Website giúp cho người học nắm được những kiến thức cơ bản của ngôn ngữ lập trình mà họ quan tâm theo cách tương tác, trực quan và thú vị
- Có khả năng bảo mật, phân quyền truy cập, mỗi loại người dùng chỉ có thể truy cập những chức năng nhất định
- Các chức năng đúng với mục đích và nhu cầu sử dụng của người dùng cũng như thuận lợi trong việc quản lý của admin
- Thời gian: Từ ngày 09/01/2017 đến hết ngày 03/04/2017
4 Phương pháp nghiên cứu
Để nghiên cứu và xây dựng website lớp học lập trình trực tuyến, tác giả đã sử dụng các phương pháp sau trong quá trình thực hiện đề tài:
a Qúa trình thu thập dữ liệu sử dụng các phương pháp:
• Phương pháp nghiên cứu tài liệu: chủ động tìm kiếm, nghiên cứu các tài liệu, sách liên quan đến đề tài, các website tương tự để đánh giá ưu nhược điểm, và cách thức hoạt động của website Từ đó đưa ra một mô hình website lớp học lập trình trực tuyến có nội dung chính xác và khách quan
• Phương pháp phân tích và đánh giá: quan sát, nhìn nhận vấn đề, sàng lọc
những kiến thức cần thiết từ cơ bản đến nâng cao, từ đó hoàn thiện khóa luận
Đạ i h
ọc Kinh
tế Hu
ế
Trang 16• Phương pháp tổng hợp: hoàn thiện khóa luận dựa trên những kiến thức cơ
bản đã thu nhận được trong quá trình thực tập tại FPT software Đà Nẵng và những tài liệu, kiến thức tích lũy được trong quá trình chủ động học hỏi và tìm kiếm
b Quá trình phân tích thiết kế:
• Phương pháp phân tích, thiết kế hệ thống: tiến hành tổng hợp, phân loại thông tin Dựa trên những thông tin thu thập được, những kiến thức và công nhệ có sẵn, tiến hành xây dựng website khóa học lập trình trực tuyến
• Phương pháp lập trình hướng đối tượng: sau khi tiến hàng phân tích, thiết kế website sẽ lựa chọn ngôn ngữ lập trình Java kết hợp mô hình struts framework với hệ
quản trị CSDL Microsoft SQL Server để quản lý
5 N ội dung khóa luận:
Ngoài phần mở đầu, kết luận và tài liệu tham khảo, nội dung của đề tài bao gồm 3 phần
- Chương I: Cơ sở lí thuyết
- Chương II: Phân tích, thiết kế website lớp học lập trình trực tuyến
- Chương III:Cài đặt, đánh giá website lớp học lập trình trực tuyến
Đạ i h
ọc Kinh
tế Hu
ế
Trang 17CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1 Gi ới thiệu về ngôn ngữ lập trình Java
1.1 Java là gì?
Java là ngôn ngữ lập trình hướng đối tượng, đa mục đích có khả năng làm việc trong hầu như bất kì nền tảng nào mà không cần phải biên dịch lại Đặc trưng này đã được thể hiện trong câu slogon của nó, “ Viết một lần, chạy mọi nơi.”
Câu khẩu hiệu đó có nghĩa là Java là một ngôn ngữ có đặc điểm” độc lập nền
tảng” Nói cách khác, code Java sẽ làm việc “ lý tưởng” trên bất kì thiết bị chạy hệ điều hành nào, miễn là nó được cài đặt Java Runtime
Ngôn ngữ lập trình Java do James Gosling và các cộng sự của Công ty Sun Microsystem phát triển
Đầu thập niên 90, Sun Microsystem tập hợp các nhà nghiên cứu thành lập nên nhóm đặt tên là Green Team Nhóm Green Team có trách nhiệm xây dựng công nghệ
mới cho ngành điện tử tiêu dùng Để giải quyết vấn đề này nhóm nghiên cứu phát triển
đã xây dựng một ngôn ngữ lập trình mới đặt tên là Oal tương tự như C++ nhưng loại
bỏ một số tính năng nguy hiểm của C++ và có khả năng chạy trên nhiều nền phần
cứng khác nhau Cùng lúc đó word wide web bắt đầu phát triển và Sun đã thấy được
tiềm năng của ngôn ngữ Oak nên đã đầu tư cải tiến và phát triển Sau đó không lâu ngôn ngữ mới với tên gọi là Java ra đời và được giới thiệu năm 1995
Java là tên gọi của một hòn đảo ở Indonexia Đây là nơi nhóm nghiên cứu phát triển đã chọn để đặt tên cho ngôn ngữ lập trình Java trong một chuyến đi tham quan và làm việc trên hòn đảo này Hòn đảo Java này là nơi rất nổi tiếng với nhiều khu vườn trồng cafe, đó là lý do chúng ta thường thấy biểu tượng ly cafe trong nhiều sản phẩm phần mềm, công cụ lập trình Java của Sun cũng như một số hãng phần mềm khác đưa ra
• Máy ảo Java( JVM-Java Virtual Machine)
Tất cả chương trình muốn thực thi được thì phải được biên dịch ra mã máy Mã máy của từng kiến trúc CPU của mỗi máy tính là khác nhau( tập lệnh mã máy của
Đạ i h
ọc Kinh
tế Hu
ế
Trang 18CPU intel, CPU Solarix, CPU Macintosh… là khác nhau), vì vậy trước đây một chương trình sau khi được biên dịch xong chỉ có thể chạy trên một kiến trúc CPU cụ
thể nào đó Đối với CPU chúng ta có thể chạy các hệ điều hành như Microsoft Windows, Unix, Linux,…
Chương tình thực thi được trên Window được biên dịch dưới dạng file có đuôi EXE còn trên Linux được biên dịch dưới dạng file có đuổi ELF, vì vậy trước đây một chương trình chạy được trên hệ điều hành khác như Linux chẳng hạn thì phải chỉnh sửa và biên dịch lại
Ngôn ngữ lập tình Java ra đời, nhờ vào máy ảo mà khó khăn nêu trên đã được
khắc phục Một chương tình viết bằng ngôn ngữ lập trình Java sẽ được biên dịch ra mã của máy ảo java Sau đó máy ảo Java chịu trách nhiệm chuyển mã java bytecode thành
mã máy tương ứng Sun Microsystem chịu trách nhiệm phát triển các máy ảo java
chạy trên các hệ điều hành trên các kiến trúc CPU khác nhau
Một chương trình viết bằng ngôn ngữ Java có thể chạy trên nhiều máy tính có
hệ điều hành khác nhau (Windows, Unix, Linux, …) với điều kiện ở đó có cài đặt máy
ảo java (Java Virtual Machine)
• Hướng đối tượng
Hướng đối tượng trong Java tương tự như C++ nhưng Java là một ngôn ngữ lập trình hướng đối tượng hoàn toàn Tất cả mọi thứ đề cập đến trong Java đều liên quan đến các đối tượng được định nghĩa trước, thậm chí hàm chính của một chương trình
viết bằng Java (đó là hàm main) cũng phải đặt bên trong một lớp Hướng đối tượng trong Java không có tính đa kế thừa (multi inheritance) như trong C++ mà thay vào đó Java đưa ra khái niệm interface để hỗ trợ tính đa kế thừa
Đạ i h
ọc Kinh
tế Hu
ế
Trang 19• Đa nhiệm – đa luồng (MultiTasking –Multithreading)
Java hỗ trợ lập trình đa nhiệm, đa luồng cho phép nhiều tiến trình, tiểu trình có thể chạy song song cùng một thời điểm và tương tác với nhau
• Kh ả chuyển (portable)
Chương trình ứng dụng viết bằng ngôn ngữ Java chỉ cần chạy được trên máy ảo Java là có thể chạy được trên bất kỳ máy tính, hệ điều hành nào có máy ảo Java “Viết một lần, chạy mọi nơi” (Write Once, Run Anywhere)
• H ỗ trợ mạnh cho việc phát triển ứng dụng:
Công nghệ Java phát triển mạnh mẽ nhờ vào “đại gia Sun Microsystem” cung
cấp nhiều công cụ, thư viện lập trình phong phú hỗ trợ cho việc phát triển nhiều loại hình ứng dụng khác nhau cụ thể như:
- J2SE (Java 2 Standard Edition) hỗ trợ phát triển những ứng dụng đơn, ứng
dụng client-server
- J2EE (Java 2 Enterprise Edition) hỗ trợ phát triển các ứng dụng thương mại
- J2ME (Java 2 Micro Edition) hỗ trợ phát triển các ứng dụng trên các thiết bị
di động, không dây, …
2 Môi trường phát triển tích hợp Eclipse
2.1 Eclipse là gì?
Eclipse là một môi trường phát triển tích hợp cho Java, được phát triển ban đầu
bởi IBM và hiện nay bởi tổ chức Eclipse Ngoài Java, Eclipse còn hỗ trợ nhiều ngôn ngữ lập trình khác như PHP, C, C++, C#, Python, HTML, XML, Javascript khi dùng thêm trình bổ sung (plug-in)
Bên cạnh đó, công cụ Eclipse còn giúp cho người lập trình code theo các mô hình phát triển và tạo thêm các lib hỗ trợ nhằm phát triển phần mềm
Công cụ lập trình Eclipse có rất nhiều tính năng giúp cho việc soạn thảo chương trình Java như:
• Code Completion: Nhằm hỗ trợ người lập trình viết mã chương trình Java có
độ chính xác cao hơn và không cần phải nhớ quá nhiều cú pháp và câu lệnh Người dùng chỉ cần ấn tổ hợp phím Ctrl + space để sổ ra các câu lệnh gợi ý tương ứng
Đạ i h
ọc Kinh
tế Hu
ế
Trang 20• Quick Fix: Khi bạn gặp phải lỗi thì Eclipse sẽ giúp bạn có một danh sách các phương pháp khắc phục lỗi tương ứng, và có những biện pháp hỗ trợ sữa lỗi một cách nhanh chóng và dễ dàng hơn
• Refactor: Eclipse sẽ tự động cập nhật toàn bộ Project cho phù hợp với tên
mới Đồng thời, Refactor còn giúp người lập trình rút ra được lớp Interface từ các lớp
dựng sẵn và tự động cài đặt Interface trên các lớp mà sử dụng giao diện này
• Local History: Với mục đích là so sánh giữa phiên bản cũ và phiên bản mới của tập tin bạn đang làm việc
• Java Scrapbook pages: Nhằm giúp người lập trình viết một chương trình nhỏ
rời ra bằng việc sử dụng soạn thảo đơn giản được thực thi dưới dạng command prompt
Ưu điểm:
• Tạo thuận lợi cho tích hợp liền mạch các công cụ bên trong mỗi một và xuyên qua nhiều kiểu nội dung và các nhà cung cấp công cụ khác nhau
• Hỗ trợ xây dựng nhiều công cụ lập trình
• Không hạn chế các nhà cung cấp công cụ
• Hỗ trợ các công cụ như: HTML, C, Java, XML, JSP, GIF, EJB
• Hỗ trợ môi trường phát triển GUI
• Chạy trên nhiều hệ điều hành, bao gồm cả Windows và Linux
• Do sử dụng SWT.Jface nên có lẽ load nhanh hơn
Nhược điểm
• Cài đặt phức tạp
• Tốn phần cứng máy Eclipse cũng khá tốn bộ nhớ máy để cài đặt nên hiện nay eclipse đã khắc phục bằng phiên bản Eclipse Luna không cần cài đặt
• Tốn bộ nhớ máy: chạy Eclipse cũng khá tốn bộ nhớ máy tính nên để dử dụng
nó máy của bạn cũng cần có cầu hình tương đối cao
• Thiếu tính nhất quán vì có quá nhiều plugin
Đạ i h
ọc Kinh
tế Hu
ế
Trang 213 Mô hình MVC
3.1 Khái niệm mô hình MVC
MVC là mô hình thiết kế mang tính tổng thể để giải quyết vấn đề có tính nghiệp
vụ cao, thường áp dụng cho những dự án lớn và có tính thương mại cao Mô hình MVC được tạo ra bởi Krasner và Pope năm 1988 cho Smalltalk, hiện tại được IBM và Apache ứng dụng trong các dự án của họ rất thành công Đây là một giải pháp cho phép xây dựng các ứng dụng phân tầng một cách rất hiệu quả, bằng cách tạo ra những phương thức quản lý từng tầng một cách riêng rẽ Trong J2EE, thì MVC cũng được xây dựng dựa trên những tính năng mạnh của công nghệ JSP và Servlet
3.2 Các thành phần trong MVC
• Model: là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị
cơ sở dữ liệu( mysql, mssql,…) nó sẽ bao gồm các class/function xử lý nhiều nghiệp
vụ như kết nối database, truy vấn dữ liệu, thêm sửa xóa dữ liệu
• View: là nơi chứa những giao diện như một nút bấm, khung nhập, menu, hình ảnh,…nó đảm nhiệm hiển thị dữ liệu và giúp người dùng tương tác với hệ thống
• Controller: là nơi tiếp nhận những yêu cầu xử lý được gửi từ người dùng,
nó sẽ gồm những class/function xử lý nhiều nghiệp vụ logic giúp lấy đúng dữ liệu thông tin cần thiết nhờ các nghiệp vụ lớp Model cung cấp và hiển thị dữ liệu đó ra cho
người dùng nhờ lớp View
3.3 Sự tương tác giữa các lớp trong mô hình MVC
Controller – View sẽ lấy hình ảnh, nút bấm… hoặc hiển thị dữ liệu được trả ra
từ Controller để người dùng có thể quan sát và thao tác Trong sự tương tác này cũng
có thể không có dữ liệu được lấy từ Model và khi đó nó chỉ chịu trách nhiệm hiển thị đơn thuần như hình ảnh, nút bấm,…
Controller – Model là luồng xử lý khi controller tiếp nhận yêu cầu và các tham số đầu vào từ người dùng, controller sẽ sử dụng các lớp/hàm trong Model cần thiết để lấy ra những dữ liệu chính xác
View – Model có thể tương tác với nhau mà không qua Controller, nó chỉ đảm nhận hiển thị dữ liệu chứ không phải qua bất kỳ xử lý nghiệp vụ logics nào Nó giống như các vùng dữ liệu hiển thị tĩnh trên các website như block slidebar…
Đạ i h
ọc Kinh
tế Hu
ế
Trang 224 Framework Struts
4.1 Khái niệm về Framework Struts
Struts là một framework phục vụ việc phát triển các ứng dụng Web trên Java
Sử dụng mẫu thiết kế Model - View - Controller(MVC), Struts giải quyết rất nhiều các
vấn đề liên quan đến các ứng dụng web hướng bussiness đòi hỏi hiệu năng cao sử
dụng Java Servlet và JSP
Struts là một framework mã nguồn mở được phát triển trên nền tảng của ngôn
ngữ Java, JSP nhằm mục đích tạo ra một thành phần chuẩn trong việc thiết kế ở tầng Web sử dụng MVC dựa trên nền tảng của J2EE
4.2 Cấu trúc của Framework Struts
Cấu trúc Framework Strut như sau:
• Trong Struts, chỉ có 1 Servlet duy nhất là ActionServlet (được hệ thống ẩn đi) Do không sử dụng Servlet nào khác nên hệ thống sẽ thay thế bằng Action và Struts-config.xml
• Struts phải tuân thủ các quy định của mô hình MVC (Model – View – Controller), phân rõ chức năng của từng tầng
• 1 Action có thể hiểu đơn giản là một màn hình, làm nhiệm vụ điều hướng
• 1 ActionForm có thể hiểu đơn giản là để chứa tất cả các dữ liệu cần thiết của
Trang 23• 1 ActionForm có thể chứa các javabean khác nhau
• Mỗi Action chỉ có thể có một ActionForm
• Một ActionForm có thể có nhiều javabean khác nhau
5 T ổng quan về hệ quản trị cơ sở dữ liệu MS SQL
5.1 SQL là ngôn ngữ cơ sở dữ liệu quan hệ
SQL (Structured Query Language) – ngôn ngữ hỏi có cấu trúc, là công cụ sử dụng để tổ chức, quản lý và truy xuất dữ liệu được lưu trữ trong các cơ sở dữ liệu
SQL là một hệ thống ngôn ngữ bao gồm tập các câu lệnh sử dụng để tương tác
với cơ sở dữ liệu quan hệ
SQL được sử dụng để điều khiển tất cả các chức năng mà một hệ quản trị cơ sở
dữ liệu cung cấp cho người dùng bao gồm:
Định nghĩa dữ liệu: SQL cung cấp khả năng định nghĩa các cơ sở dữ liệu, các cấu trúc lưu trữ và tổ chức dữ liệu cũng như mối quan hệ giữa các thành phần dữ liệu
Truy xuất và thao tác dữ liệu: Với SQL, người dùng có thể dễ dàng thực hiện các thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu trong các cơ sở dữ liệu
Điều khiển truy cập: SQL có thể được sử dụng để cấp phát và kiểm soát các thao tác của người sử dụng trên dữ liệu, đảm bảo sự an toàn cho cơ sở dữ liệu
Đảm bảo toàn vẹn dữ liệu: SQL định nghĩa các ràng buộc toàn vẹn trong cơ sở
dữ liệu nhờ đó đảm bảo tính hợp lệ và chính xác của dữ liệu trước các thao tác cập
nhật cũng như các lỗi của hệ thống
Bản thân SQL không phải là một hệ quản trị cơ sở dữ liệu, nó không thể tồn tại độc lập SQL thực sự là một phần của hệ quản trị cơ sở dữ liệu, nó xuất hiện trong các
hệ quản trị cơ sở dữ liệu với vai trò ngôn ngữ và là công cụ
5.2 Hệ quản trị cơ sở dữ liệu SQL Server
Hệ quản trị cơ sở dữ liệu (Database Management System – DBMS): Là một hệ
thống phần mềm cho phép tạo lập cơ sở dữ liệu và điều khiển mọi truy nhập đối với cơ
Trang 24CHƯƠNG 2: PHÂN TÍCH, THIẾT KẾ HỆ WEBSITE LỚP
1 Mô tả hệ thống
Website lớp học lập trình trực tuyến được xây dựng nhằm hướng đến đối tượng
học sinh, sinh viên, những người đã và đang làm việc trong ngành công nghệ thông tin, nhằm phục vụ nhu cầu học và thi các ngôn ngữ lập trình
Website lớp học lập trình trực tuyến hoạt động chủ yếu để phục vụ hai đối tượng cơ bản: người quản trị website (Admin), người dùng (user), với hai đối tượng đó thì sẽ có những chức năng riêng :
• Đối với người quản trị Website(Admin)
- Admin là người có quyền quản trị website cao nhất Có thể ra vào hệ thống, đăng nhập vào hệ thống để có thể sử dụng mọi quyền của hệ thống để thực hiện vai trò quản trị của mình
- Admin có quyền thêm, sửa xóa bất cứ nội dung nào của website như user, bài học, bài thi…
- Admin có quyền cấp quyền, phân quyền hay hủy quyền cho những người sử dụng khác
- Admin là người bảo mật an ninh của website
• Đối với người dùng (user)
- Người dùng có thể xem nội dung bài học và mọi thông tin trên website
- Người dùng có thể xem vị trí xếp hạng điểm thi của các người dùng khác
- Đối với người dùng khi đã đăng nhập thì có thể thực hiện thêm các chức năng như tham gia thi các bài học của những ngôn ngữ lập trình và có thể quản lý thông tin cá nhân của mình
2 Đặc tả yêu cầu, chức năng của hệ thống
• Đăng ký, đăng nhập
• Tìm kiếm các khóa học, và từng bài học trong khóa học đó
• Hiển thị chi tiết, nội dung liên quan đến bài học đó
Đạ i h
ọc Kinh
tế Hu
ế
Trang 25• Có thể chạy và sửa code bài học đó trực tiếp tại website
• Đăng ký thành viên
• Tham gia thi các ngôn ngữ lập trình sau khi đã đăng nhập
• Có thể xem gợi ý đáp án của đề thi và xem xếp hạng điểm thi của các thành viên đối với cùng một đề thi đó
• Xem xếp hạng điểm thi của các thành viên
• Xem số lần submit bài của tài khoản đó theo thời gian
2.2 Yêu cầu về chất lượng
• Giao diện đơn giản, dễ sử dụng
• Có tính bảo mật, an toàn
• Có tính phân quyền
• Tốc độ xử lý nhanh chóng dễ dàng
2.3 Yêu cầu về đối tượng
Các đối tượng liên quan trực tiếp đến hệ thống bao gồm:
- Người quản trị Admin: trực tiếp quản lý website quản trị hệ thống, có thể cập nhật mới thông tin về bài học, bài thi, điểm thi
- Người dùng user: là đối tượng chính mà hệ thống hướng đến, có thể tìm kiếm thông tin về bài học, bài thi trực tiếp thông qua hệ thống
2.4 Yêu cầu về website
Yêu cầu về giao diện:
- Giao diện dễ nhìn, thân thiện, vị trí các công cụ tiện ích và menu có kích thước phù hợp
- Đáp ứng nhu cầu học và thi của người dùng
Yêu cầu về nội dung:
- Nội dung rõ ràng và dễ hiểu
- Phân loại bài học và bài thi theo từng danh mục để dễ dàng cho việc tìm kiếm của người dùng
Đạ i h
ọc Kinh
tế Hu
ế
Trang 263 Bi ểu đồ Use Case
Hình 2.1: Ch ức năng hệ thống Website Lớp học lập trình trực tuyến
3.1 Chức năng xem trang chủ
Hình 2.2: Chức năng xem trang chủ của user khi chưa đăng nhập
Đạ i h
ọc Kinh
tế Hu
ế
Trang 27Hình 2.3: Ch ức năng xem trang chủ của user khi đã đăng nhập
3.2 Chức năng quản lý Category
Hình 2.4: Ch ức năng quản lý Categories
Đạ i h
ọc Kinh
tế Hu
ế
Trang 283.3 Ch ức năng quản lý Menu
Hình 2.5: Ch ức năng quản lý Menu
3.4 Chức năng quản lý Subject
Hình 2.6: Chức năng quản lý Subject
Đạ i h
ọc Kinh
tế Hu
ế
Trang 293.5 Ch ức năng quản lý Problem
Hình 2.7: Chức năng quản lý Problem
Hình 2.8: Chức năng quản lý Editorial
Đạ i h
ọc Kinh
tế Hu
ế
Trang 303.7 Ch ức năng quản lý Tutorial
Hình 2.9: Chức năng quản lý Tutorial
3.8 Chức năng quản lý Testcase
Hình 2.10: Chức năng quản lý Testcase
Đạ i h
ọc Kinh
tế Hu
ế
Trang 313.9 Ch ức năng quản lý TutorialCode
Hình 2.11: Chức năng quản lý TutorialCode
3.10 Chức năng quản lý Submit
Hình 2.12: Chức năng quản lý Submit
Đạ i h
ọc Kinh
tế Hu
ế
Trang 323.11 Ch ức năng quản lý User
Hình 2.13: Chức năng quản lý User
Hình 2.14: Chức năng quản lý code
Đạ i h
ọc Kinh
tế Hu
ế
Trang 333.13 Ch ức năng quản lý Status
Hình 2.15: Chức năng quản lý Status
Hình 2.16: Ch ức năng quản lý Leaderboard
Trang 344 Mô hình hóa h ệ thống
4.1 Biểu đồ tuần tự (sequence diagram)
Vì yêu cầu về số lượng trang, nên mục này khóa luận chỉ đưa một số biểu đồ tuần tự chính Những biểu đồ tuần tự còn lại có thể xem ở phụ lục
4.1.1 Biểu đồ tuần tựđăng nhập
Hình 2.18: Biểu đồ tuần tự đăng nhập
Đạ i h
ọc Kinh
tế Hu
ế
Trang 354.1.2 Biểu đồ tuần tựđăng ký thành viên
Hình 2.19: Biểu đồ tuần tự đăng ký
Đạ i h
ọc Kinh
tế Hu
ế
Trang 364.1.3 Biểu đồ tuần tựđăng xuất
Hình 2.20: Biểu đồ tuần tự đăng xuất
Đạ i h
ọc Kinh
tế Hu
ế
Trang 374.1.4 Biểu đồ tuần tựCategory
Hình 2.21: Biểu đồ tuần tự hiển thị categories
4.1.5 Biểu đồ tuần tự Code
Hình 2.22: Bi ểu đồ tuần tự hiển thị Code
Đạ i h
ọc Kinh
tế Hu
ế
Trang 384.1.6 Biểu đồ tuần tự Editorial
Hình 2.23: Biểu đồ tuần tự hiển thị editorial
4.1.7 Biểu đồ tuần tự LeaderBoard
Hình 2.24: Biểu đồ tuần tự hiển thị Leaderboard
Đạ i h
ọc Kinh
tế Hu
ế
Trang 394.1.8 Biểu đồ tuần tự Menu
Hình 2.25: Biểu đồ tuần tự hiển thị Menu
4.1.9 Biểu đồ tuần tựProblem
Hình 2.26: Biểu đồ tuần tự hiển thị Problem
Đạ i h
ọc Kinh
tế Hu
ế
Trang 404.1.10 Biểu đồ tuần tựStatus
Hình 2.27: Biểu đồ tuần tự hiển thị Status
4.1.11 Biểu đồ tuần tựSubject
Hình 2.28: Biểu đồ tuần tự hiển thị Subject
Đạ i h
ọc Kinh
tế Hu
ế