1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng website hỏi đáp về công nghệ thông tin

80 60 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 80
Dung lượng 5 MB

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

Nội dung

Ngôn ngữ lập trình Java không phải là ngoại lệ, Java là một trong những ngôn ngữ lập trình mạnh và được sử dụng rất nhiều trong việc phát triển phần mềm, những trang web động, game hay ứ

Trang 1

KHOA H Ệ THỐNG THÔNG TIN KINH TẾ

- -

Trang 2

này Đặc biệt thầy Trần Thái Hoà đã tận tình, giúp đỡ em trong suốt quá trình thực

hiện khoá luận tốt nghiệp

Đồng thời em cũng xin cảm ơn Thầy, Cô thuộc khoa Hệ thống thông tin Kinh tế - Trường Đại học Kinh Tế Huế đã truyền đạt những kiến thức, kinh nghiệm quý báu trong suốt thời gian 4 năm trên giảng đường đại học để em có thể thực hiện tốt đề tài này

Và cu ối cùng, em xin chân thành cảm ơn những người bạn, những anh chị tại CN Công ty TNHH Phần mềm FPT tại Đà Nẵng đã luôn đồng hành, chỉ bảo nhiệt tình trong quá trình thực tập tại công ty để em có thể hoàn thành đề tài một cách hoàn thi ện nhất

Trong quá trình thực hiện đề tài, do kiến thức và thời gian còn hạn chế nên không thể tránh kh ỏi những sai sót Mong quý Thầy, Cô thông cảm và góp ý chân thành để em có thể hoàn thiện đề tài và tích luỹ được kiến thức để phát triển thêm sau này

Em xin chân thành cảm ơn!

Trang 3

1 Lý do ch ọn đề tài: 1

2 Mục tiêu và nhiệm vụ của đề tài: 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 Cấu trúc của khóa luận: 3

CHƯƠNG I CƠ SỞ LÝ THUYẾT 4

1 Tổng quan về môi trường phát triển tích hợp Eclipse và ngôn ngữ lập trình Java: 4

1.1 Môi trường phát triển tích hợp Eclipse 4

1.2 Ngôn ngữ lập trình Java 5

1.3 Tổng quan về Java EE 8

2 T ổng quan về hệ quản trị cơ sở dữ liệu Microsoft SQL Server: 9

2.1 Ngôn ngữ truy vấn dữ liệu có cấu trúc (Structure Query Language) 9

2.2 Hệ quản trị cơ sở dữ liệu SQL Server 10

3 Gi ới thiệu về lập trình hướng đối tượng: 10

4 Mô hình MVC (Model – View – Controller): 10

4.1 Mô hình MVC là gì ? 10

4.2 Các thành phần trong MVC 11

4.3 Sự tương tác giữa các lớp trong mô hình MVC 11

5 Gi ới thiệu về framework Struts: 12

5.1 Khái niệm về framework Struts 12

5.2 Cấu trúc của framework Struts 12

5.3 Ti ến trình thực thi mô hình MVC của Struts 13

Đạ i h

ọc Kinh

tế Hu

ế

Trang 4

2 Phân tích bài toán: 15

2.1 Yêu cầu chất lượng 15

2.2 Yêu cầu chức năng 15

2.2.1 Tổng quát chức năng 15

2.2.2 Biểu đồ Use Case 16

2.3 Mô hình hoá hệ thống 20

2.3.1 Bi ểu đồ luồng chức năng hệ thống 20

2.3.2 Biểu đồ tuần tự (Sequence Diagram) 22

2.3.3 Biểu đồ lớp (Class Diagram) 34

CHƯƠNG III THIẾT KẾ HỆ THỐNG 42

1 Thiết kế cơ sở dữ liệu: 42

1.1 Mô tả thực thể 42

1.2 M ối liên kết giữa các thực thể 45

1.3 Mô tả các bảng 50

1.4 Mô hình quan hệ giữa các bảng 55

2 Thi ết kế giao diện: 56

2.1 Giao diện đăng nhập 56

2.2 Giao di ện đăng ký 56

2.3 Giao diện trang chủ 57

2.4 Giao diện trang quản lý admin 60

2.5 Giao diện dành cho member 61

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: 65

TÀI LIỆU THAM KHẢO 66

PH Ụ LỤC 67

Đạ i h

ọc Kinh

tế Hu

ế

Trang 5

Hình 2: Biểu đồ Use Case chức năng xem trang chủ của visitor 17

Hình 3: Biểu đồ Use Case chức năng quản lý bài viết của member và admin 17

Hình 4: Biểu đồ Use Case chức năng quản lý tài khoản của admin 18

Hình 5: Biểu đồ Use Case chức năng quản lý thông tin cá nhân của member 18

Hình 6: Biểu đồ Use Case chức năng tìm kiếm 19

Hình 7: Biểu đồ Use Case chức năng quản lý Tag của admin 19

Hình 8: Luồng chức năng hệ thống dành cho user 20

Hình 9: Luồng chức năng hệ thống dành cho admin 21

Hình 10: Biểu đồ tuần tự hiển thị danh sách câu hỏi 22

Hình 11: Biểu đồ tuần tự hiển thị chi tiết câu hỏi 23

Hình 12: Biểu đồ tuần tự vote up bài viết 24

Hình 13: Biểu đồ tuần tự vote down bài viết 25

Hình 14: Biểu đồ tuần tự tìm kiếm bài viết 26

Hình 15: Biểu đồ tuần tự khoá bài viết 27

Hình 16: Biểu đồ tuần tự quản lý đăng bài viết 28

Hình 17: Biểu đồ tuần tự hiển thị danh sách tài khoản 29

Hình 18: Biểu đồ tuần tự khoá tài khoản 30

Hình 19: Biểu đồ tuần tự hiển thị danh sách Tag 31

Hình 20: Biểu đồ tuần tự tìm kiếm Tag 31

Hình 21: Biểu đồ tuần tự đăng nhập 32

Hình 22: Biểu đồ tuần tự đăng xuất 33

Hình 23: Biểu đồ lớp Bean 34

Hình 24: Biểu đồ lớp hiển thị danh sách câu hỏi 35

Hình 25: Biểu đồ lớp hiển thị chi tiết câu hỏi 36

Hình 26: Biểu đồ lớp tương tác bài viết 37

Hình 27: Biểu đồ lớp quản lý bài viết 38

Hình 28: Biểu đồ lớp quản lý đăng bài viết 39

Đạ i h

ọc Kinh

tế Hu

ế

Trang 6

Hình 32: Biểu đồ lớp đăng nhập – đăng xuất 41

Hình 33: Mối liên kết giữa Account và Question 45

Hình 34: Mối liên kết giữa Question và Tag 46

Hình 35: Mối liên kết giữa Account và Tag 46

Hình 36: Mối liên kết giữa Account, Question và VoteQuestion 47

Hình 37: Mối liên kết giữa Account, Answer và VoteAnswer 48

Hình 38: Mối liên kết giữa Account, Answer và Question 49

Hình 39: Quan hệ giữa các bảng 55

Hình 40: Giao diện đăng nhập 56

Hình 41: Giao diện đăng ký 56

Hình 42: Giao diện trang chủ dành cho visitor 57

Hình 43: Giao diện trang chủ menu Tags 57

Hình 44: Giao diện trang chủ menu Thành viên 58

Hình 45: Giao diện trang chủ tìm kiếm câu hỏi 58

Hình 46: Giao diện trang chủ tìm kiếm thành viên 59

Hình 47: Giao diện trang chủ dành cho member 59

Hình 48: Giao diện trang quản lý bài viết dành cho admin 60

Hình 49: Giao diện trang quản lý Tags dành cho admin 60

Hình 50: Giao diện trang quản lý tài khoản dành cho admin 61

Hình 51: Giao diện trang đặt câu hỏi dành cho member 61

Hình 52: Giao diện trang chi tiết câu hỏi dành cho member 62

Hình 53: Giao diện trang trả lời câu hỏi dành cho member 62

Hình 54: Giao diện vote câu hỏi/câu trả lời dành cho member 63

Đạ i h

ọc Kinh

tế Hu

ế

Trang 7

Bảng 2: Bảng tblAnswer 51

Bảng 3: Bảng tblAccount 53

Bảng 4: Bảng tblTag 53

Bảng 5: Bảng tblquestion_tag 53

Bảng 6: Bảng tblAccountTag 54

Bảng 7: Bảng tblVoteQuestion 54

Bảng 8: Bảng tblVoteAnswer 54

Bảng 9: Bảng tblAdmin 55

Đạ i h

ọc Kinh

tế Hu

ế

Trang 8

MỞ ĐẦU

1 Lý do chọn đề tài:

Hiện nay, có rất nhiều ngôn ngữ lập trình được sử dụng trên thế giới và mỗi ngôn ngữ đều có những thế mạnh riêng của nó Ngôn ngữ lập trình Java không

phải là ngoại lệ, Java là một trong những ngôn ngữ lập trình mạnh và được sử

dụng rất nhiều trong việc phát triển phần mềm, những trang web động, game hay ứng dụng trên các thiết bị di động Ngôn ngữ lập trình Java đã và đang trở nên lớn mạnh hơn bao giờ hết

Bên cạnh đó, công nghệ thông tin (CNTT) là một ngành công nghiệp bao gồm nhiều kiến thức rộng rãi, đồng thời những công nghệ mới liên tục xuất hiện đòi

hỏi bản thân những người làm trong ngành phải không ngừng tìm hiểu và phát triển những công nghệ đó Cho nên, việc hỏi đáp và trao đổi kiến thức về công nghệ thông tin mất khá nhiều thời gian Chính vì thế, việc xây dựng một nơi có

thể kết nối cộng đồng những người làm việc hay mong muốn được làm việc trong ngành công nghệ thông tin là rất cần thiết

Từ những lý do trên, tôi chọn đề tài “Xây dựng Website hỏi đáp về công nghệ

2 Mục tiêu và nhiệm vụ của đề tài:

a Mục tiêu: Mục tiêu của đề tài này là xây dựng một website với giao diện

trực quan, là nơi mọi người có thể tương tác với nhau để trao đổi kiến thức, góp ý một cách dễ dàng

Trang 9

3 Đối tượng và phạm vi nghiên cứu:

a Đối tượng: Sử dụng ngôn ngữ lập trình Java trong việc xây dựng website

hỏi đáp về công nghệ thông tin

b Phạm vi nghiên cứu:

- Địa điểm: Tòa nhà FPT Complex, đường Nam Kỳ Khởi Nghĩa, P.Hòa

Hải, Q.Ngũ Hành Sơn, TP Đà Nẵng

- Thời gian: Từ ngày 03/01/2017 đến hết ngày 03/04/2017

Để nghiên cứu và xây dựng website hỏi đáp về công nghệ thông tin, tác giả đã

sử dụng các phương pháp sau trong quá trình thực hiện đề tài:

a Quá trình thu thập dữ liệu sử dụng những phương pháp sau:

• 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á những

ưu và nhược điểm, đồng thời kết hợp với những kiến thức đạt được trong quá trình thực tập để đề ra hướng xây dựng website hoàn chỉnh, trực quan, dễ tương tác

• Phương pháp phân tích, đánh giá: dựa vào việc quan sát, nhìn nhận vấn

đề thực tế, áp dụng những kiến thức, công nghệ cần thiết từ đó hoàn thiện đề tài

• Phương pháp tổng hợp: hoàn thiện khoá luận dựa trên những kiến thức

cơ bản đã thu nhận được trong quá trình học tập và những tài liệu, kiến thức tích luỹ được trong quá trình chủ động học hỏi, tìm kiếm

b Giai đoạn phân tích thiết kế và thực hiện sử dụng những phương pháp sau:

• 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, cùng với kiến thức và nền tảng công nghệ hiện có để tiến hành xây dựng website hỏi đáp về công nghệ thông tin

Đạ i h

ọc Kinh

tế Hu

ế

Trang 10

• Phương pháp lập trình hướng đối tượng: sau khi tiến hành phân tích, thiết kế website, sẽ lựa chọn ngôn ngữ lập trình Java và framework Struts với hệ quản trị CSDL Microsoft SQL Server để xây dựng và quản

lý website

Ngoài phần mở đầu và kết luận, phần nội dung của khóa luận bao gồm:

Chương I: Cơ sở lý thuyết Chương này sẽ trình bày khái quát về lịch sử hình

thành và phát triển, các đặc điểm của ngôn ngữ lập trình Java, framework Struts

và tầm quan trọng của việc ứng dụng framework Struts trong quá trình xây

dựng một website

Chương II: Phân tích hệ thống Chương này đề cập đến thực trạng, sau đó sẽ

đi sâu vào việc phân tích bài toán, thiết kế cơ sở dữ liệu và áp dụng framework Struts để xây dựng hệ thống

Chương III: Thiết kế hệ thống Chương này đề cập đến việc thiết kế cơ sở dữ

liệu, thiết kế giao diện website và kết quả chạy thử website

Đạ i h

ọc Kinh

tế Hu

ế

Trang 11

CHƯƠNG I CƠ SỞ LÝ THUYẾT

1 Tổng quan về môi trường phát triển tích hợp Eclipse và ngôn ngữ lập trình Java:

1.1 Môi trường phát triển tích hợp Eclipse

a Tổng quan về Eclipse

Eclipse là một môi trường phát triển tích hợp cho ngôn ngữ lập trình Java, được phát triển ban đầu bởi IBM, và hiện nay bởi tổ chức Eclipse Eclipse như một môi trường phát triển Java tích hợp (IDE), với Eclipse chúng ta có thể mở rộng hơn mã nguồn bằng cách chèn thêm các plugins cho project (PDE - Plug-in Development Environment) Mặc dù Eclipse được viết bằng ngôn ngữ lập trình Java, nhưng việc sử dụng nó không

hạn chế chỉ cho ngôn ngữ Java Ví dụ, Eclipse hỗ trợ sẵn hoặc có thể cài thêm các plugins để hỗ trợ cho các ngôn ngữ lập trình như PHP, C, C++, C#, Python, HTML, XML, Javascript,…

b Ưu điểm và nhược điểm của Eclipse

• Ưu điểm:

- 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 khá nhiều bộ nhớ của máy tính để cài đặt và sử dụng

- Thiếu tính nhất quán vì có nhiều plugins

Đạ i h

ọc Kinh

tế Hu

ế

Trang 12

1.2 Ngôn ng ữ lập trình Java

a Java là gì?

Java (đọc như “Gia-va”) vừa là một ngôn ngữ lập trình mà cũng vừa là

một nền tảng (platform), cú pháp ngôn ngữ Java có phần giống với ngôn ngữ C và C++

Java được tạo ra với tiêu chí viết một lần, thực thi khắp mọi nơi (Write Once, Run Anywhere) Những chương trình phần mềm được viết bằng ngôn ngữ lập trình Java có thể chạy trên mọi nền tảng (platform) khác nhau với điều kiện cần phải có môi trường máy ảo Java (JVM – Java Virtual Machine) Một số nền tảng hiện nay hỗ trợ Java chẳng hạn

như Sun Solaris, Linux, Mac OS, FreeBSD & Windows…

b Lịch sử phát triển của ngôn ngữ lập trình Java

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à Oak 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 Microsystem đã 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

Đạ i h

ọc Kinh

tế Hu

ế

Trang 13

c Đặc điểm nổi bật của ngôn ngữ lập trình Java

- 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 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 muốn 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 trì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

- Thông d ịch

Java là một ngôn ngữ lập trình vừa biên dịch vừa thông dịch Chương trình nguồn viết bằng ngôn ngữ lập trình Java có đuôi *.java đầu tiên được biên dịch thành tập tin có đuôi *.class và sau đó sẽ được trình thông dịch thông dịch thành mã máy

Trang 14

- 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 (hàm main) của một chương trình viết bằng Java 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

- Đ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ẽ chính là 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,…

Đạ i h

ọc Kinh

tế Hu

ế

Trang 15

1.3 T ổng quan về Java EE

Java EE (Enterprise Edition) là một nền tảng được sử dụng rộng rãi, chứa

một tập hợp các công nghệ được phối hợp với nhau, làm giảm đáng kể chi phí và độ phức tạp của việc phát triển, triển khai và quản lý các tầng làm việc, các ứng dụng máy chủ trung tâm Java EE được xây dựng dựa trên

nền tảng Java SE và cung cấp thêm một tập các API (giao diện lập trình ứng dụng) để phát triển và hoạt động các ứng dụng phía máy chủ (Server - Side Applications) một cách mạnh mẽ, có khả năng mở rộng, đáng tin cậy,

di động (portable) và bảo mật

Một số thành phần cơ bản của Java EE bao gồm:

• Enterprise Java Beans (EJB): một thành phần kiến trúc của các ứng dụng server được quản lý, sử dụng để bao gói (encapsulate) các business logic của các ứng dụng Công nghệ EJB cho phép phát triển nhanh chóng

và đơn giản hóa các ứng dụng phân tán, các giao dịch an toàn và di động

dựa trên công nghệ Java

• Java Persistence API (JPA): một framework cho phép nhà phát triển

quản lý dữ liệu bằng cách sử dụng ánh xạ đối tượng quan hệ (Object Relational Mapping - ORM) trong các ứng dụng được xây dựng trên nền

Trang 16

2 T ổng quan về hệ quản trị cơ sở dữ liệu Microsoft SQL Server:

2.1 Ngôn ngữ truy vấn dữ liệu có cấu trúc (Structure Query Language)

SQL (Structure Query Language) là một công cụ quản lý dữ liệu được sử dụng phổ biển ở nhiều lĩnh vực và nó 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ệ Hầu hết các ngôn ngữ bậc cao đều có trình hỗ trợ SQL như Java, C#, C, C++,…

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

SQL là một ngôn ngữ hoàn thiện được sử dụng trong các hệ thống cơ sở dữ

liệu và là một thành phần không thể thiếu trong các hệ quản trị cơ sở dữ

liệu

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ụ

Đạ i h

ọc Kinh

tế Hu

ế

Trang 17

2.2 H ệ quản trị cơ sở dữ liệu SQL Server

SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System (RDBMS)) sử dụng câu lệnh SQL (Transact -

SQL) để trao đổi dữ liệu giữa máy Client và máy cài SQL Server Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để

quản lý dữ liệu và các bộ phận khác nhau trong RDBMS

SQL Server được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn người dùng (user)

3 Giới thiệu về lập trình hướng đối tượng:

Lập trình hướng đối tượng (gọi tắt là OOP, từ chữ Anh ngữ object-oriented programming), hay còn gọi là lập trình định hướng đối tượng, là kĩ thuật lập trình hỗ trợ công nghệ đối tượng OOP được xem là giúp tăng năng suất, đơn

giản hóa độ phức tạp khi bảo trì cũng như mở rộng phần mềm bằng cách cho phép lập trình viên tập trung vào các đối tượng phần mềm ở bậc cao hơn

Lập trình hướng đối tượng nhằm giảm nhẹ các thao tác viết mã cho người lập trình, cho phép họ tạo ra các ứng dụng mà các yếu tố bên ngoài có thể tương tác

với các chương trình đó giống như là tương tác với các đối tượng vật lý

4 Mô hình MVC (Model – View – Controller):

4.1 Mô hình MVC là gì ?

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 vào 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 lẻ Trong J2EE, thì MVC cũng được xây dựng

Đạ i h

ọc Kinh

tế Hu

ế

Trang 18

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

4.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ụ logic 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 19

5 Gi ới thiệu về framework Struts:

5.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 business đòi hỏi hiệu năng cao với việc sử dụng Java Servlet và JSP

Struts là một tập thư viện các thẻ JSP tùy chọn (Custom JSP Tag) Struts cung cấp các thư viện thẻ tùy chọn cho việc thể hiện các thuộc tính của bean, quản lý các HTML forms, lặp lại các kiểu cấu trúc dữ liệu, và đưa ra các HTML có điều kiện

5.2 Cấu trúc của framework Struts

- 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, phân rõ chức năng

Trang 20

- Một 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 một Action ActionForm được hiểu tương tự như javabean, có

dữ liệu (kiểu private) và các phương thức set/get

- Mỗi Action chỉ có thể có một ActionForm

- Một ActionForm có thể có nhiều javabean khác nhau

5.3 Tiến trình thực thi mô hình MVC của Struts

1 Một yêu cầu (request) được gửi đến từ View

2 ActionServlet sẽ tiếp nhận request này, phân tích, kiểm tra Sau đó chỉ định cho Action tương ứng thực thi yêu cầu, tính toán những tác vụ cần thiết

ActionServlet đóng vai trò là Controller

3 Action sẽ thao tác và xử lí trên Model của ứng dụng

4 Mỗi khi Action hoàn thành việc thao tác và xử lí, nó trả quyền điều khiển về cho ActionServlet kèm theo một key gắn kèm với kết quả trả

về ActionServlet sẽ dựa vào key này mà quyết định xem các kết quả trả

về sẽ được hiển thị như thế nào

5 ActionServlet trả lời bằng cách gửi lại một request cho View, đó là một liên kết đến kết quả trả về của Action thông qua key trên Sau đó, View làm nốt công việc trình bày kết quả

Đạ i h

ọc Kinh

tế Hu

ế

Trang 21

CHƯƠNG II PHÂN TÍCH HỆ THỐNG

1 Mô tả bài toán:

Website hỏi đáp về công nghệ thông tin hoạt động chủ yếu phục vụ ba đối tượng cơ bản: người dùng vãng lai (visitor), thành viên (member) và người quản trị website (admin)

- Đối với người dùng vãng lai (visitor):

o Người dùng vãng lai có thể xem nội dung website chẳng hạn như xem bài viết, tags, thông tin cơ bản của các thành viên

o Người dùng vãng lai cũng có thể tìm kiếm bài viết, tags, thành viên

- Đối với thành viên (member):

o Thành viên là người dùng sau khi đã đăng ký tài khoản thành công

o Thành viên có thể đăng câu hỏi, đăng câu trả lời

o Thành viên có thể bình chọn câu hỏi, câu trả lời mà thành viên cảm thấy hay nhất, nhưng không thể bình chọn câu hỏi hoặc câu

trả lời mà chính thành viên đó đăng

o Thành viên có thể nhận hoặc mất điểm uy tín tương ứng theo quy ước tính điểm của hệ thống

- Đối với người quản trị website (admin):

o Admin là người có quyền quản trị website cao nhất

o Admin là người bảo mật an ninh của website

o Admin có thể thêm, sửa, xoá dữ liệu bài viết, tags, tài khoản có trong hệ thống

Đạ i h

ọc Kinh

tế Hu

ế

Trang 22

2 Phân tích bài toán:

2.1 Yêu cầu chất lượng

- Giao diện đơn giản, dễ sử dụng

- Ngôn ngữ tiếng Việt

Admin Là người quản trị hệ thống Họ có thể thêm, sửa, xóa dữ

liệu bài viết, tags, tài khoản có trong hệ thống hoặc

thống kê tài khoản, bài viết, tags để xem xét xu hướng, nhu cầu, mức độ mở rộng dữ liệu

Member Là một thành viên của hệ thống, họ có thể đăng câu hỏi,

trả lời một câu hỏi của thành viên khác Thông qua câu

hỏi và câu trả lời thành viên có thể nhận/mất điểm uy tín tương ứng theo những quy ước tính điểm của hệ thống

Nếu thành viên có những đóng góp tích cực thì họ có

thể trở thành một công tác viên với những đặc quyền

của admin

Visitor Là người dùng truy cập vào website nhưng không phải

là thành viên Họ có thể xem, tìm kiếm các bài viết,

tags, thông tin cơ bản của các thành viên

Đạ i h

ọc Kinh

tế Hu

ế

Trang 23

2.2.2 Biểu đồ Use Case

Hình 1: Biểu đồ Use Case chức năng của hệ thống

Đạ i h

ọc Kinh

tế Hu

ế

Trang 24

2.2.2.1 Chức năng xem trang chủ

Hình 2: Biểu đồ Use Case chức năng xem trang chủ của visitor

2.2.2.2 Chức năng quản lý bài viết

Hình 3: Biểu đồ Use Case chức năng quản lý bài viết của member và admin

Đạ i h

ọc Kinh

tế Hu

ế

Trang 25

2.2.2.3 Chức năng quản lý tài khoản

Hình 4: Biểu đồ Use Case chức năng quản lý tài khoản của admin

2.2.2.4 Chức năng quản lý thông tin cá nhân

Hình 5: Biểu đồ Use Case chức năng quản lý thông tin cá nhân của member

Đạ i h

ọc Kinh

tế Hu

ế

Trang 26

2.2.2.5 Chức năng tìm kiếm

Hình 6: Biểu đồ Use Case chức năng tìm kiếm

2.2.2.6 Chức năng quản lý Tag

Hình 7: Biểu đồ Use Case chức năng quản lý Tag của admin

Đạ i h

ọc Kinh

tế Hu

ế

Trang 27

2.3 Mô hình hoá h ệ thống

2.3.1 Biểu đồ luồng chức năng hệ thống

2.3.1.1 Luồng chức năng hệ thống dành cho user

Hình 8: Luồng chức năng hệ thống dành cho user

Đạ i h

ọc Kinh

tế Hu

ế

Trang 28

2.3.1.2 Luồng chức năng hệ thống dành cho admin

Hình 9: Luồng chức năng hệ thống dành cho admin

Đạ i h

ọc Kinh

tế Hu

ế

Trang 29

2.3.2 Bi ểu đồ tuần tự (Sequence Diagram)

2.3.2.1 Quản lý trang chủ

a Hiển thị danh sách câu hỏi

Hình 10: Biểu đồ tuần tự hiển thị danh sách câu hỏi

Đạ i h

ọc Kinh

tế Hu

ế

Trang 30

b Hiển thị chi tiết câu hỏi

Hình 11: Biểu đồ tuần tự hiển thị chi tiết câu hỏi

Đạ i h

ọc Kinh

tế Hu

ế

Trang 31

2.3.2.2 Tương tác bài viết

Trang 33

2.3.2.3 Quản lý bài viết dành cho admin

a Tìm kiếm bài viết

Hình 14: Biểu đồ tuần tự tìm kiếm bài viết

Đạ i h

ọc Kinh

tế Hu

ế

Trang 35

2.3.2.4 Quản lý đăng bài viết

Hình 16: Biểu đồ tuần tự quản lý đăng bài viết

Đạ i h

ọc Kinh

tế Hu

ế

Trang 36

2.3.2.5 Quản lý tài khoản (Account)

a Hiển thị danh sách tài khoản

Hình 17: Biểu đồ tuần tự hiển thị danh sách tài khoản

Đạ i h

ọc Kinh

tế Hu

ế

Trang 37

b Khoá tài khoản

Hình 18: Biểu đồ tuần tự khoá tài khoản

Đạ i h

ọc Kinh

tế Hu

ế

Trang 38

2.3.2.6 Quản lý Tag

a Hiển thị danh sách Tag

Hình 19: Biểu đồ tuần tự hiển thị danh sách Tag

Trang 39

2.3.2.7 Đăng nhập – Đăng xuất

Ngày đăng: 01/04/2019, 21:43

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