1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng website lớp học lập trình trực tuyến

90 213 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 90
Dung lượng 6,29 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

TRƯỜ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 2

Lờ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 3

NH Ậ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 4

NH Ậ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 6

2.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 7

4.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 8

5.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 9

TUYẾ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 10

Bả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 11

Hì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 12

Hì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 13

Hì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 14

MỞ ĐẦ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 17

CHƯƠ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 18

CPU 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 21

3 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 22

4 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 24

CHƯƠ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 26

3 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 27

Hì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 28

3.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 29

3.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 30

3.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 31

3.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 32

3.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 33

3.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 34

4 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 35

4.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 36

4.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 37

4.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 38

4.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 39

4.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 40

4.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

ế

Ngày đăng: 10/07/2018, 23:50

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w