Tải bản đầy đủ (.pdf) (62 trang)

Xây dựng website đặt vé xem phim ở các rạp tại đà nẵng sử dụng java spring

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.56 MB, 62 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM – ĐẠI HỌC ĐÀ NẴNG
KHOA TIN HỌC

BÁO CÁO
KHÓA LUẬN TỐT NGHIỆP

TÊN ĐỀ TÀI

XÂY DỰNG WEBSITE ĐẶT VÉ XEM PHIM
Ở CÁC RẠP TẠI ĐÀ NẴNG
SỬ DỤNG JAVA SPRING

Sinh viên
GVHD
Mã SV
Lớp

: Phùng Thị Mỹ Nhung
: TS. Nguyễn Hoàng Hải
: 312022151136
: 15CNTT1

ĐÀ NẴNG, 04/2019


LỜI CẢM ƠN
Trong suốt q trình thực hiện khóa luận, em đã may mắn có được sự hỗ trợ,
giúp đỡ từ phía thầy cơ, bạn bè, gia đình. Với lịng biết ơn sâu sắc nhất, em xin gửi
đến quý Thầy Cô ở khoa CNTT Trường Đại học Sư phạm Đà Nẵng, lời cảm ơn
chân thành nhất, vì những tâm huyết và thời gian mà quý Thầy Cô đã bỏ ra để
truyền đạt lại vốn kiến thức quý báu cho chúng em trong suốt quãng thời gian học


tại trường.
Đầu tiên, em xin chân thành gửi lời cảm ơn đến Tiến sĩ Nguyễn Hồng Hải,
thầy đã tận tình hướng dẫn và giúp đỡ em trong q trình thực hiện khóa luận này.
Sự hiểu biết sâu sắc về khoa học cũng như kinh nghiệm của thầy chính là tiền đề
giúp em hồn thành khóa luận này.
Em xin trân trọng cảm ơn.
Đà Nẵng, ngày 26 tháng 04 năm 2019
Sinh viên thực hiện

Phùng Thị Mỹ Nhung


LỜI CAM ĐOAN
Tôi xin cam đoan:
1. Những nội dung trong báo cáo này là do em thực hiện dưới sự hướng dẫn
trực tiếp của TS Nguyễn Hoàng Hải.
2. Mọi tham khảo dùng trong báo cáo này đều được trích dẫn rõ ràng tên tác
giả, tên cơng trình, thời gian, địa điểm công bố.
3. Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin
chịu hoàn toàn trách nhiệm.

Sinh viên thực hiện

Phùng Thị Mỹ Nhung


MỤC LỤC
LỜI CẢM ƠN...............................................................2
LỜI CAM ĐOAN...........................................................3
DANH MỤC CÁC BẢNG................................................8

DANH MỤC HÌNH ẢNH................................................9
PHẦN 1: TỔNG QUAN ĐỀ TÀI.....................................10
1. Lý do chọn đề tài...................................................................................10
2. Mục tiêu và nhiệm vụ đề tài....................................................................10
2.1 Mục tiêu.....................................................................................................10
2.2 Nhiệm vụ....................................................................................................10

3. Đối tượng và phạm vi nghiên cứu...........................................................10
3.1. Đối tượng nghiên cứu................................................................................10
3.2. Phạm vi nghiên cứu...................................................................................11

4. Phương pháp nghiên cứu.........................................................................11
4.1 Phương pháp lý thuyết................................................................................11
4.2 Phương pháp thực tiễn................................................................................11

5. Phương tiện, công cụ triển khai...............................................................11
6. Kết quả dự kiến.......................................................................................11
6.1. Lý thuyết...................................................................................................11
6.2. Thực tiễn...................................................................................................11

7. Bố cục của khóa luận..............................................................................13
PHẦN 2: NỘI DUNG ĐỀ TÀI........................................14
CHƯƠNG I: CƠ SỞ LÝ THUYẾT....................................14
1.1

Phân tích thiết kế hệ thống.................................................................14

1.1.1

Định nghĩa...........................................................................................14


1.1.2

Ưu điểm...............................................................................................14

1.2

Phân tích và thiết kế hệ thống hướng đối tượng (OOAD).................14

1.2.1

Sơ lược về phân tích và thiết kế hướng cấu trúc..................................14

1.2.2

Định nghĩa về phân tích và thiết kế hướng đối tượng..........................14


1.2.3

Các khái niệm cơ bản của hướng đối tượng.........................................15

1.2.4

Các nguyên tắc cơ bản của phương pháp hướng đối tượng.................15

1.3

Tìm hiểu về UML..............................................................................16


1.3.1

Định nghĩa...........................................................................................16

1.3.2

Thiết kế hướng đối tượng sử dụng UML.............................................16

1.4

Nền tảng công nghệ...........................................................................17

1.4.1

Tổng quan về MySQL.........................................................................17

1.4.2

Tổng quan ngôn ngữ lập trình Java.....................................................17

1.4.3

Tổng quan về framework Spring.........................................................18

1.4.3.1 Spring là gì?......................................................................................18
1.4.3.2 Sự ra đời của Spring.........................................................................18
1.4.3.3 Ưu điểm khi dùng Spring Framework:.............................................19
1.4.3.4 Kiến trúc, các module của Spring Framework..................................19
1.4.3.5 Các dự án trong Spring Framework..................................................21
1.4.4


Tổng quan về Spring Boot...................................................................21

1.4.5

Tổng quan về Thymeleaf.....................................................................22

1.4.4.1 Thymeleaf là gì?...............................................................................22
1.4.4.2 Ưu điểm khi sử dụng Thymeleaf......................................................22

1.5

Các cơng cụ hỗ trợ.............................................................................23

1.5.1

Spring Tool Suite.................................................................................23

1.5.2

MySQL Workbench.............................................................................23

1.5.2.1 MySQL Workbench là gì?................................................................23
1.5.2.2 MySQL workbench - Cơng cụ dựng hình và thiết kế........................23
1.5.2.3 MySQL workbench – Công cụ phát triển SQL.................................24
1.5.2.4 MySQL workbench – Cơng cụ quản trị............................................25
1.5.3

GitLab.................................................................................................25


1.5.3.1 Gitlab là gì?......................................................................................25
1.5.3.2 Lịch sử hình thành GitLab................................................................26
1.5.3.3 Điểm đă ăc biê ăt của Gitlab..................................................................26
1.5.3.4 Ưu điểm của GitLab.........................................................................26


CHƯƠNG II PHÂN TÍCH VÀ THIẾT KẾ...........................28
2.1

Phân tích hiện trạng...........................................................................28

2.2. Phân tích thiết kế.................................................................................28
2.2.1 Biểu đồ ca sử dụng..................................................................................28
2.2.1.1 Mở đầu..............................................................................................28
2.2.1.2 Mơ tả các tác nhân (Actor) có trong hệ thống...................................29
2.2.1.3 Biểu đồ ca sử dụng tổng quát............................................................30
2.2.1.4 Biểu đồ ca sử dụng của quản lý hệ thống..........................................31
2.2.1.5 Biểu đồ ca sử dụng cho quản lý rạp..................................................31
2.2.1.6 Biểu đồ ca sử dụng cho nhân viên....................................................32
2.2.1.7 Biểu đồ ca sử dụng cho người dùng..................................................33
2.2.1.8 Đặc tả các ca sử dụng.......................................................................33
2.2.2 Phân tích và thiết kế cơ sở dữ liệu...........................................................51
2.2.2.1 Biểu đồ cơ sở dữ liệu quan hệ...........................................................51
2.2.2.2 Dữ liệu các bảng...............................................................................51

CHƯƠNG III THỬ NGHIỆM VÀ ĐÁNH GIÁ.....................58
3.1

Môi trường triển khai.........................................................................58


3.2

Giao diện hệ thống.............................................................................58

3.2.1

Giao diện trang đăng nhập...................................................................58

3.2.2

Giao diện đăng ký................................................................................59

3.2.3

Giao diện trang chủ.............................................................................59

3.2.4

Giao diện trang quản lý hệ thống.........................................................60

3.2.5

Giao diện trang quản lý rạp.................................................................60

PHẦN 3: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN................61
1. Kết luận...................................................................................................61
1.1 Ưu điểm......................................................................................................61
1.2 Nhược điểm................................................................................................61
1.3 Kết luận......................................................................................................61


2. Hướng phát triển...................................................................................61


TÀI LIỆU THAM KHẢO...............................................62


DANH MỤC CÁC BẢNG
Bảng 1: Mô tả các tác nhân trong hệ thống.............................................................29
Bảng 2: Đặc tả ca sử dụng “Đăng nhập”...............................................................34
Bảng 3: Đặc tả ca sử dụng “Đăng ký”....................................................................35
Bảng 4: Đặc tả ca sử dụng “Đăng xuất”................................................................36
Bảng 5: Đặc tả ca sử dụng “Quản lý tài khoản”....................................................37
Bảng 6: Đặc tả ca sử dụng “Quản lý rạp”..............................................................38
Bảng 7: Đặc tả ca sử dụng “Quản lý người dùng”.................................................39
Bảng 8: Đặc tả ca sử dụng “Quản lý quốc gia”......................................................40
Bảng 9: Đặc tả ca sử dụng “Quản lý thể loại”.......................................................41
Bảng 10: Đặc tả ca sử dụng “Quản lý phim”.........................................................42
Bảng 11: Đặc tả ca sử dụng “Quản lý phòng chiếu”..............................................44
Bảng 12: Đặc tả ca sử dụng “Quản lý ghế”............................................................45
Bảng 13: Đặc tả ca sử dụng “Quản lý phòng chiếu”..............................................46
Bảng 14: Đặc tả ca sử dụng “Quản lý danh sách vé”.............................................47
Bảng 15: Đặc tả ca sử dụng “Quản lý nhân viên”..................................................48
Bảng 16: Đặc tả ca sử dụng “Tìm kiếm thơng tin vé xe”........................................49
Bảng 17: Đặc tả ca sử dụng “Chọn ghế”................................................................50
Bảng 18: Đặc tả ca sử dụng “Xem lịch sử đặt vé”..................................................50
Bảng 19: Bảng "Roles"............................................................................................52
Bảng 20: Bảng "User".............................................................................................52
Bảng 21: Bảng "User_Role"....................................................................................53
Bảng 22: Bảng "Token"...........................................................................................53
Bảng 23: Bảng "Cinema"........................................................................................54

Bảng 24: Bảng "Auditorium"..................................................................................54
Bảng 25: Bảng "Movie"...........................................................................................55
Bảng 26: Bảng "Country"........................................................................................55
Bảng 27: Bảng "Category"......................................................................................55
Bảng 28: Bảng "Seat"..............................................................................................56
Bảng 29: Bảng "Showtimes"....................................................................................56
Bảng 30: Bảng "Ticket"...........................................................................................57


DANH MỤC HÌNH ẢNH
Hình 1: Hình kiến trúc tổng thể của Spring Framework.........................................19
Hình 2: Cửa sổ dựng hình của MySQL Workbench.................................................23
Hình 3: cửa sổ phát triển SQL của MySQL Workbench...........................................24
Hình 4: Biểu đồ ca sử dụng tổng quát.....................................................................29
Hình 5: Biểu đồ ca sử dụng của quản lý hệ thống...................................................30
Hình 6: Biểu đồ ca sử dụng cho quản lý rạp...........................................................31
Hình 7: Biểu đồ ca sử dụng cho nhân viên..............................................................31
Hình 8: Biểu đồ ca sử dụng cho người dùng...........................................................32
Hình 9: Biểu đồ ca đăng nhập.................................................................................32
Hình 10: Biểu đồ ca sử dụng cho đăng ký...............................................................33
Hình 11: Biểu đồ ca sử dụng cho đăng xuất............................................................34
Hình 12: Biểu đồ ca sử dụng cho quản lý tài khoản................................................35
Hình 13: Biểu đồ ca sử dụng cho quản lý rạp.........................................................36
Hình 14: Biểu đồ ca sử dụng cho quản lý người dùng.............................................37
Hình 15: Biểu đồ ca sử dụng cho quản lý quốc gia.................................................38
Hình 16: Biểu đồ ca sử dụng cho quản lý thể loại...................................................39
Hình 17: Biểu đồ ca sử dụng cho quản lý phim.......................................................41
Hình 18: Biểu đồ ca sử dụng cho quản lý phịng chiếu...........................................42
Hình 19: Biểu đồ ca sử dụng cho quản lý ghế.........................................................43
Hình 20: Biểu đồ ca sử dụng cho quản lý lịch chiếu...............................................44

Hình 21: Biểu đồ ca sử dụng cho quản lý danh sách vé..........................................45
Hình 22: Biểu đồ ca sử dụng cho quản lý nhân viên...............................................46
Hình 23: Biểu đồ ca sử dụng cho quản lý tìm kiếm vé.............................................47
Hình 24: Biểu đồ ca sử dụng cho chọn ghế.............................................................48
Hình 25: Biểu đồ ca sử dụng cho quản lý danh sách vé..........................................49
Hình 26: Biểu đồ cơ sở dữ liệu quan hệ..................................................................50
Hình 27: Màn hình trang đăng nhập.......................................................................57
Hình 28: Màn hình trang đăng ký...........................................................................58
Hình 29: Màn hình trang chủ..................................................................................58
Hình 30: Màn hình trang quản lý hệ thống.............................................................59
Hình 31: Màn hình trang quản lý rạp......................................................................59


PHẦN 1: TỔNG QUAN ĐỀ TÀI
1. Lý do chọn đề tài
Với sự phát triển không ngừng của Internet, chúng ta có thể dễ dàng đặt một
món đồ u thích qua mạng. Chính sự phát triển này đã đem đến sự ra đời của nhiều
website giúp chúng ta chỉ cần ở nhà cũng có thể lựa chọn được mà khơng cần đến
tận nơi.
Hiện nay, mọi người thích đến xem phim ở các rạp. Xem phim giúp họ giải tỏa
mệt mỏi hay là nơi thích hợp để nhiều bạn trẻ hẹn hị, cả gia đình vui vẻ cùng nhau
với nhiều bộ phim hài thú vị. Ngoài ra, ở Đà Nẵng, các rạp phim đều chỉ có hệ
thống đặt vé và bán vé riêng lẻ, mà chưa có hệ thống nào vừa cung cấp thông tin vé
xem phim của nhiều rạp đồng kết hợp luôn chức năng hỗ trợ khách hàng đặt vé. Vì
việc mua vé tại các rạp tốn khá nhiều thời gian, web đặt vé xem phim trước có thể
giúp mọi người tiết kiệm thời gian, lựa chọn được bộ phim thích hợp trong khung
giờ thích hợp. Đó là lí do của đề tài “Xây dựng website đặt vé xem phim ở các rạp
tại Đà Nẵng sử dụng Java Spring”.
2. Mục tiêu và nhiệm vụ đề tài
2.1 Mục tiêu

-

Xây dựng trang web mà người dùng có thể dễ dàng lựa chọn các bộ phim và
thời gian phù hợp qua mạng nhằm tiết kiệm thời gian.

-

Trang web còn giúp người xem chọn lựa được rạp phim phù hợp, cách địa
điểm mình ở gần nhất.
2.2 Nhiệm vụ
Để đạt được mục tiêu trên, thì nhiệm vụ đặt ra của đề tài là:

-

Thu nhập dữ liệu từ thực tế, tổng hợp phân tích dữ liệu cho vấn đề những
rạp phim ở Đà Nẵng, những bộ phim đang chiếu và đặt vé xem phim.

-

Nghiên cứu các công nghệ và phần mềm cần thiết để xây dựng và phát triển
web đặt vé xem phim.

-

Nghiên cứu các web đặt vé xem phim có trên thị trường.

-

Xây dựng các chức năng hỗ trợ người sử dụng có thể dễ dàng đặt vé và cung
cấp những thông tin cần thiết về các rạp, các bộ phim đã lựa chọn.


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

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

SVTH: Phùng Thị Mỹ Nhung

Trang 1


-

Hệ quản trị cơ sở dữ liệu MySQL.

-

Thông tin dữ liệu của các rạp chiếu phim, bộ phim.

-

Framework Spring.

3.2. Phạm vi nghiên cứu
-

Nghiên cứu dữ liệu thông tin của các bộ phim, rạp chiếu phim ở Đà Nẵng.

-


Các chức năng của trang web cho người dùng như: đăng nhập, hiển thị
thông tin các rạp, bộ phim, thời gian chiếu phim, thực hiện đặt vé và đăng
kí chỗ ngồi phù hợp.

-

Nghiên cứu các chức năng quản lí: thêm, sửa, xóa các rạp phim, bộ phim
và thống kê doanh thu.

4. Phương pháp nghiên cứu
4.1 Phương pháp lý thuyết
-

Tiến hành thu thập và nghiên cứu các tài liệu có liên quan đến đề tài.

-

Nghiên cứu ngơn ngữ lập trình Java.

-

Nghiên cứu hệ quản trị cơ sở dữ liệu MySQL.

-

Nghiên cứu HTML, CSS, Javascript, Jquery.
4.2 Phương pháp thực tiễn

-


Web hỗ trợ đầy đủ tính năng đặt vé, chuyển đổi vé, hủy vé cho người dùng.

-

Ngồi ra người dùng cịn có thể lưu các thơng tin cá nhân, xem lại lịch sử
mua vé.

5. Phương tiện, cơng cụ triển khai
-

Ngơn ngữ lập trình Java

-

Hệ quản trị cơ sở dữ liệu MySQL.

6. Kết quả dự kiến
6.1. Lý thuyết
-

Nắm được lý thuyết nền tảng về ngôn ngữ lập trình Java và cơng nghệ web.

-

Nắm vững lý thuyết về hệ quản trị cơ sở dữ liệu MySQL.
6.2. Thực tiễn

-


Đưa ra được web đặt vé xe phim giúp người dùng lựa chọn được những rạp
phim và bộ phim phù hợp.

SVTH: Phùng Thị Mỹ Nhung

Trang 2


7. Bố cục của khóa luận
Phần 1: Giới thiệu đề tài.


Mở đầu

Phần 2: Nội dung đề tài


Chương I: Cơ sở lý thuyết.



Chương II: Phân tích thiết kế hệ thống.



Chương III: Thử nghiệm và đánh giá

Phần 3: Kết luận và hướng phát triển.

SVTH: Phùng Thị Mỹ Nhung


Trang 3


PHẦN 2: NỘI DUNG ĐỀ TÀI
CHƯƠNG I: CƠ SỞ LÝ THUYẾT
1.1 Phân tích thiết kế hệ thống
1.1.1 Định nghĩa


Là quá trình tìm hiểu và mơ phỏng lại hiện tượng, quy trình nghiệp vụ trong
thế giới thực từ đó xây dựng hệ thống để giải quyết bài toán đặt ra trên máy
tính.



Để xây dựng một hệ thống tốt và đáp ứng được yêu cầu từ phía người dùng,
chúng ta cần tiến hành phân tích thiết kế hệ thống cho website. Đây chính là
nhân tố quyết định cho chất lượng phần mềm.



Có hai cách tiếp cận phân tích và thiết kế hệ thống :
 Hướng cấu trúc/chức năng.
 Hướng đối tượng.

1.1.2 Ưu điểm


Có cái nhìn đầy đủ, đúng đắn và chính xác về hệ thống đang được xây dựng.




Tránh sai lầm trong thiết kế và cài đặt.



Dễ dàng thay đổi yêu cầu.



Dễ kiểm thử.



Dễ bảo trì.



Có tính tiến hóa cao.



Có khả năng tái sử dụng cao.

1.2 Phân tích và thiết kế hệ thống hướng đối tượng (OOAD)
1.2.1 Sơ lược về phân tích và thiết kế hướng cấu trúc


Phân chia chương trình chính thành nhiều chương trình con, mỗi chương

trình con nhằm đến thực hiện một công việc xác định.



Cách thực hiện: phương pháp thiết kế từ trên xuống (top-down). Phương
pháp này tiến hành phân rã bài toán thành các bài toán nhỏ hơn, rồi tiếp tục
phân rã các bài toán con cho đến khi nhận được các bài tốn có thể cài đặt
được ngay sử dụng các hàm của ngôn ngữ lập trình hướng cấu trúc.

SVTH: Phùng Thị Mỹ Nhung

Trang 4


1.2.2 Định nghĩa về phân tích và thiết kế hướng đối tượng


Khác với phương pháp hướng cấu trúc chỉ tập trung vào dữ liệu hoặc vào
hành động, phương pháp hướng đối tượng tập truung và cả hai khía cạnh của
hệ thống là dữ liệu và hành động.



Hệ thống = tập hợp các đối tượng + quan hệ giữa các đối tượng.



Là một lối tư duy theo cách ánh xạ các thành phần trong bài tốn vào các đối
tượng ngồi đời thực.




Với cách tiếp cận này, một hệ thống được chia tương ứng các thành phần nhỏ
gọi là các đối tượng, mỗi đối tượng bao gồm đầy đủ cả dữ liệu và hành động
liên quan đến đối tượng đó.

1.2.3 Các khái niệm cơ bản của hướng đối tượng


Đối tượng: một đối tượng biểu diễn môt thực thể vật lý, một thực thể khái
niệm hoặc một thực thể phần mềm. Có thể định nghĩa một đối tượng là một
khái niệm, sự trừu tượng hoặc một vật với giới hạn rõ ràng và có ý nghĩa với
một ứng dụng cụ thể.



Lớp: mơ tả một tập hợp các đối tượng có cùng một cấu trúc, cùng hành vi và
có cùng những mối quan hệ với các đối tượng khác. Như vậy, một đối tượng
là thể hiện của một lớp và một lớp là một định nghĩa trừu tượng của đối
tượng.



Gói: là một cách tổ chức các thành phần, phần tử trong hệ thống thành các
nhóm. Nhiều gói có thể được kết hợp với nhau để trở thành một hệ thống
con.



Kế thừa: trong phương pháp hướng đối tượng, một lớp có thể sử dụng lại các

thuộc tính và phương thức của một hoặc nhiều lớp khác.

1.2.4 Các nguyên tắc cơ bản của phương pháp hướng đối tượng


Trừu tượng hóa (abstraction):
 Các thực thể phần mềm được mơ hình hố dưới dạng các đối tượng.
 Các đối tượng được trừ tượng hóa ở mức cao hơn dựa trên thuộc tính
và phương thức mơ tả đối tượng để tạo thành lớp.
 Các lớp được trừu tượng hóa ở mức cao hơn nữa để tao thành một
Biểu đồ các lớp được kế thừa lẫn nhau. Trong phương pháp hướng đối
tượng có thể tồn tại những lớp khơng có đối tượng tương ứng gọi là
lớp trừu tường.

SVTH: Phùng Thị Mỹ Nhung

Trang 5




Tính bao đóng (encapsulation): che dấu mọi chi tiết hiện thực của đối tượng
khơng cho bên ngồi thấy và truy xuất. Đây chính là tính độc lập cao giữa
các đối tượng.
 Che dấu các thuộc tính dữ liệu: nếu cần cho phép truy xuất một thuộc
tính dữ liệu, ta tạo hai phương thức set/get tương ứng để giám sát việc
truy xuất và che dấu chi tiết hiện thực bên trong (thuộc tính private).
 Che dấu chi tiết hiện thực các phương thức.
 Che dấu các hàm và sự hiện thực của chúng.




Tính modul hóa (modularity): các bài tốn sẽ được phân chia thành những
vấn đè nhỏ hơn, đơn giản và quản lý được.



Tính phân cấp (hierarchy): cấu trúc chung của một hệ thống hướng đối tượng
là dạng phân cấp theo các mức độ trừu tượng từ cao đến thấp.

1.3 Tìm hiểu về UML
1.3.1 Định nghĩa


Là ngơn ngữ mơ hình hóa hợp nhập dùng để biểu diễn hệ thống. Nói một
cách đơn giản là nó dùng để tạo ra các bản vẽ nhằm mô tả thiết kế hệ thống.
Các bản vẽ này được sử dụng để các nhóm thiết kế trao đổi với nhau cũng
như dùng phát triển hệ thống, thuyết phục khách hàng, các nhà đầu tư,… vv.

1.3.2 Thiết kế hướng đối tượng sử dụng UML


Thiết kế hướng đối tượng sử dụng UML bao gồm các thành phần sau:
 Góc nhìn (View):
- Góc nhìn ca sử dụng: cung cấp góc nhìn về các ca sử dụng giúp
chúng ta hiểu hệ thống có gì, ai dùng và dùng nó như thế nào.
- Góc nhìn logic: cung cấp góc nhìn về cấu trúc hệ thống, xem nó
được tổ chức như thế nào. Bên trong nó có gì.
- Góc nhìn tiến trình: cung cấp góc nhìn động về hệ thống, xem các
thành phần trong hệ thống tương tác với nhau như thể nào.

- Góc nhìn thành phần: cũng là một góc nhìn về cấu trúc giúp chúng
ta hiểu cách phân bổ và sử dụng lại các thành phần trong hệ thống
ra sao.
- Góc nhìn triển khai: cung cấp góc nhnf về triển khai hệ thống, nó
cũng ảnh hưởng lớn đến kiến trúc hệ thống.

SVTH: Phùng Thị Mỹ Nhung

Trang 6


 Bản vẽ (Diagram): các bản vẽ được sử dụng để thể hiện các góc nhìn
của hệ thống.
- Bản vẽ ca sử dụng: mô tả về ca sử dụng của hệ thống. Giúp cho
chúng ta biết
được ai sử dụng hệ thống, hệ thơng có những
chức năng gì. Lập được bản vẽ này chúng ta sẽ hiểu được yêu cầu
của hệ thống cần xây dựng.
- Bản vẽ lớp: mô tả cấu trúc của hệ thống, tức hệ thống được cấu tạo
từ những thành phần nào. Mơ tả khía cạnh tĩnh của hệ thống.
- Bản vẽ đối tượng: tương tự như bản vẽ lớp nhưng nó mơ tả đến
đối tượng thay vì lớp.
- Bản vẽ tuần tự: mô tả sự tương tác của các đối tượng trong hệ
thống với nhau được mô tả tuần tự các bước tương tác theo thời
gian.
- Bản vẽ kết hợp: tương tự như bản vẽ tuần tự nhưng nhấn mạnh về
sự tương tác thay vì tuần tự theo thời gian.
- Bản vẽ trạng thái: mô tả sự thay đổi trạng thái của một đối tượng,
thường được sử dụng để hiểu về nghiệp vụ của hệ thống.
- Bản vẽ hoạt động: bản vẽ mô tả các hoạt động của đối tượng,

thường được sử dụng để hiểu về nghiệp vụ của hệ thống.
- Bản vẽ thành phần: mô tả về việc bố trí các thành phần của hệ
thống cũng như việc sử dụng các thành phần đó.
- Bản vẽ triển khai: mô tả việc triển khia của hệ thống như việc kết
nối, cài đặt, hiệu năng của hệ thống…
 Ký hiệu (Notations): các ký hiệu để vẽ nó như từ vựng trong ngôn
ngữ tự nhiên.
 Quy tắc, cơ chế (Mechanisms): các quy tắc để lập nên bản vẽ, mỗi bản
vẽ có quy tắc riêng và bạn phải nắm được để tạo nên các bản thiết kế
đúng.
1.4 Nền tảng công nghệ
1.4.1 Tổng quan về MySQL




MySQL là hệ quản trị cơ sở dữ liệu tự do, mã 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.
Ưu điểm :
 Về tốc độ: MySQL rất nhanh.

SVTH: Phùng Thị Mỹ Nhung

Trang 7


 Dễ sử dụng: MySQL tuy có tính năng cao nhưng thực sự là một hệ
thống cơ sở dữ liệu rất đơn giản và ít phức tạp khi cài đặt và quản trị
hơn các hệ thống lớn.

 Kết nối và bảo mật: MySQL được nối mạng một cách đầy đủ, các cơ
sở dữ liệu có thể được truy cập từ bất kỳ nơi nào trên Internet. Do đó
bạn có thể chia sẽ dữ liệu của bạn với bất kỳ ai, bất kỳ nơi nào.Nhưng
MySQL kiểm soát quyền truy cập cho nên người khơng được cấp
quyền thì sẽ khơng thấy được cơ sở dữ liệu của bạn.
 Tính linh động: MySQL chạy trên nhiều hệ thống Windows, Linux,
Mac OS….
1.4.2 Tổng quan ngơn ngữ lập trình Java
-

Ngơn ngữ lập trình Java ban đầu được phát triển bởi Sun Microsystems do
James Gosling khởi xướng và phát hành vào năm 1995 (Java 1.0 [J2SE]).
Tính đến thời điểm này (tháng 2/2015) phiên bản mới nhất của Java Standard
Edition (JSE) là 8. Với ưu thế về đa nền tảng (multi platform) Java càng lúc
càng được ứng dụng rộng rãi trên nhiều thiết bị từ máy tính đến mobile và
nhiều thiết bị phần cứng khác...

-

Ngôn ngữ lập trình Java là một ngơn ngữ lập trình hướng đối tượng (OOP,
dựa trên các lớp. Khác với phần lớn ngôn ngữ lập trình thơng thường, thay vì
biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java
được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ
được mơi trường thực thi (runtime enviroment) chạy. Trước đây, Java chạy
chậm hơn những ngôn ngữ dịch thẳng ra mã máy như C và C++, nhưng sau
này nhờ công nghệ "biên dịch tại chỗ" - Just in time compilation, khoảng
cách này đã được thu hẹp, và trong một số trường hợp đặc biệt Java có thể
chạy nhanh hơn. Java chạy nhanh hơn những ngôn ngữ thông dịch như
Python, Perl, PHP gấp nhiều lần. Java chạy tương đương so với C#, một
ngôn ngữ khá tương đồng về mặt cú pháp và quá trình dịch/chạy.


-

Cú pháp Java được vay mượn nhiều từ C & C++ nhưng có cú pháp hướng
đối tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn. Do đó việc viết
một chương trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn.

-

Trong Java, hiện tượng rò rỉ bộ nhớ hầu như khơng xảy ra do bộ nhớ được
quản lí bởi Java Virtual Machine (JVM) bằng cách tự động "dọn dẹp rác".
Người lập trình khơng phải quan tâm đến việc cấp phát và xóa bộ nhớ như C,
C++. Tuy nhiên khi sở dụng những tài nguyên mạng, file IO, database (nằm
ngồi kiểm sốt của JVM) mà người lập trình khơng đóng (close) các
streams thì rị rỉ dữ liệu vẫn có thể xảy ra.

SVTH: Phùng Thị Mỹ Nhung

Trang 8


1.4.3 Tổng quan về framework Spring
1.4.3.1 Spring là gì?
-

Spring là một Framework phát triển các ứng dụng Java được sử dụng bởi
hàng triệu lập trình viên. Nó giúp tạo các ứng dụng có hiệu năng cao, dễ kiểm
thử, sử dụng lại code…

-


Spring nhẹ và trong suốt (nhẹ: kích thước nhỏ, version cơ bản chỉ khoảng
2MB; trong suốt: hoạt động một cách trong suốt với lập trình viên)

-

Spring là một mã nguồn mở, được phát triển, chia sẻ và có cộng đồng người
dùng rất lơn.

-

Spring Framework được xây dựng dựa trên 2 nguyên tắc design chính là:
Dependency Injection và Aspect Oriented Programming.

-

Những tính năng core (cốt lõi) của Spring có thể được sử dụng để phát triển
Java Desktop, ứng dụng mobile, Java Web. Mục tiêu chính của Spring là giúp
phát triển các ứng dụng J2EE một cách dễ dàng hơn dựa trên mơ hình sử
dụng POJO (Plain Old Java Object)

1.4.3.2 Sự ra đời của Spring
-

Vào năm 2002, Spring Framework phát hành phiên bản đầu tiên bởi Rod
Johnson. Việc xây dựng các ứng dụng doanh nghiệp trở nên đơn giản và dễ
dàng hơn. Rod Johnson đã cho xuất bản một cuốn sách được phổ biến rộng
rãi có nhan đề “J2EE Development without EJB”. Điều này đã cho Spring
Framework rất nhiều động lực để thay thế EJB.


-

Ngày nay, Spring đã trở thành framework mã nguồn mở phổ biến nhất để xây
dựng các ứng dụng doanh nghiệp. Cách tiếp cận thực tế ban đầu của Rod
Johnson tiếp tục được phát triển và hướng tới một bộ cơng cụ hồn chỉnh
dành cho xây dựng các ứng dụng doanh nghiệp. Theo một số nguồn, trên
50% các ứng dụng web Java hiện nay đang sử dụng Spring.

Để ngăn chặn sự phức tạp trong phát triển các ứng dụng, Spring Framework thường
dựa trên các quan điểm như sau:


Đơn giản hóa cơng việc phát triển thơng qua việc sử dụng các đối tượng
Java đơn giản hay còn được gọi là POJO (Plain Old Java Object)



Nới lỏng ràng buộc giữa các thành phần thông qua việc sử dụng
Dependency Injection và viết các interface



Tiếp cận lập trình khai báo bằng cách sử dụng các quy tắc (convention) và
các khía cạnh (aspect) chung



Giảm thiểu các mã nghi thức và soạn sẵn (boilerplate) thông qua việc sử
dụng các khuôn mẫu (template) và các khía cạnh


SVTH: Phùng Thị Mỹ Nhung

Trang 9


1.4.3.3 Ưu điểm khi dùng Spring Framework:
-

Xác định Tempale trước: Spring Framework cung cấp những template cho
Hibernate, Struts, JDBC, v.v. Vì vậy, lập trình viên khơng cần phải viết q
nhiều code và có thể bỏ qua những bước cơ bản.

-

Dễ dàng kiểm thử: Dependency Injection làm cho việc kiểm thử phần
mềm, ứng dụng được tiến hành dễ dàng hơn. Nếu như ứng dụng EJB yêu
cầu máy chủ phải chạy lại ứng dụng thì Spring Framework thì khơng.

-

Dung lương nhỏ: Spring Framework có dung lượng nhỏ nhờ vào mơ hình
POJO. Spring Framework khơng bắt lập trình viên phải kế thừa các lớp hay
thực hiện qua bất kì giao diện nào. Đó là lí do Spring Framework được coi
là bất khả xâm phạm.

-

Phát triển nhanh: Dependency Injection tạo nên tính năng đặc biệt của
Spring Framework giúp hỗ trợ các framework khác và giúp cho việc phát
triển ứng dụng JavaEE dễ dàng hơn.


-

Hỗ trợ khai báo: Spring Framework cung cấp những hỗ trợ khai báo về bộ
nhớ đệm, xác nhận, giao dịch và định dạng.

-

Tính trừu tượng: Nó cung cấp sự trừu tượng hóa cao cho các chi tiết
JavaEE như JMS, JDBC, JPA và JTA.

1.4.3.4 Kiến trúc, các module của Spring Framework
Spring được chia làm nhiều module khác nhau, tùy theo mục đích phát triển ứng
dụng mà ta dùng 1 trong các module đó.

SVTH: Phùng Thị Mỹ Nhung

Trang 10


Dưới đây là kiến trúc tổng thể của Spring Framework.

Hình 1: Hình kiến trúc tổng thể của Spring Framework
- Test
+ Tầng này cung cấp khả năng hỗ trợ kiểm thử với JUnit và TestNG.
- Spring Core Container
Bao gồm các module spring core, beans, context và expression languate (EL)
+ Spring core, bean cung cấp tính năng IOC và Dependency Injection.
+ Spring Context hỗ trợ đa ngơn ngữ (internationalization), các tính năng Java
EE như EJB, JMX.

+ Expression Language được mở rộng từ Expresion Language trong JSP. Nó
cung cấp hỗ trợ việc setting/getting giá trị, các method cải tiến cho phép truy
cập collections, index, các toán tử logic…
- AOP, Aspects and Instrumentation
+ Những module này hỗ trợ cài đặt lập trình hướng khía cạnh (Aspect Oriented
Programming), hỗ trợ tích hợp với AspectJ.
- Data Access / Integration
+ Nhóm này bao gồm JDBC, ORM, OXM, JMS và module Transaction. Những
module này cung cấp khả năng giao tiếp với database
- Web
+ Hay còn gọi là Spring MVC Nhóm này gồm Web, Web-Servlet… hỗ trợ việc
tạo ứng dụng web.

SVTH: Phùng Thị Mỹ Nhung

Trang 11


1.4.3.5 Các dự án trong Spring Framework
Trên thực tế Spring Framework là một tập hợp của nhiều dự án con. Spring Core
như chúng ta đã tìm hiểu là nền tảng của các dự án trong Spring Framework. Một
một dự án sẽ đảm nhận một chức năng riêng trong việc xây dựng các ứng dụng
doanh nghiệp. Chúng ta sẽ cùng điểm qua các dự án lớn trong Spring.
Spring MVC
Spring MVC được thiết kế dành cho việc xây dựng các ứng dụng nền tảng web.
Đây là một dự án chúng ta không thể bỏ qua khi xây dựng các ứng dụng Java web.
Spring Data
Cung cấp một cách tiếp cận đúng đắn để truy cập dữ liệu từ cơ sở dữ liệu quan hệ,
phi quan hệ, map-reduce và thậm chí cịn hơn thế nữa.
Spring Security

Dự án này cung cấp các cơ chế xác thực (authentication) và phân quyền
(authorization) cho ứng dụng của bạn.
Spring Boot
Spring Boot là một framework giúp chúng ta phát triển cũng như chạy ứng dụng
một cách nhanh chóng.
Spring Batch
Dự án này giúp chúng ta dễ dàng tạo các lịch trình (scheduling) và tiến trình
(processing) cho các cơng việc xử lý theo mẻ (batch job).
Spring Integration
Spring Integration là một implementation của Enterprise Integration Patterns
(EIP). Dự án này thiết kế một kiến trúc hướng thơng điệp hỗ trợ việc tích hợp các hệ
thống bên ngoài.
Spring XD
Bạn đang băn khoăn về Big Data, tại sao khơng thử tìm hiểu Spring XD – mục tiêu
của dự án này là đơn giản hóa cơng việc phát triển các ứng dụng Big Data.
Spring Social
Dự án này sẽ kết nối ứng dụng của bạn với các API bên thứ ba của Facebook,
Twitter, Linkedin …
1.4.4 Tổng quan về Spring Boot
Spring Boot là một dự án nổi bật trong hệ sinh thái Spring Framework. Nếu
như trước đây, công đoạn khởi tạo một dự án Spring khá vất vả từ việc khai báo các
dependency trong file pom.xml cho đến cấu hình bằng XML hoặc annotation phức
tạp, thì giờ đây với Spring Boot, chúng ta có thể tạo các ứng dụng Spring một cách
nhanh chóng và cấu hình cũng đơn giản hơn.

SVTH: Phùng Thị Mỹ Nhung

Trang 12



Dưới đây là một số tính năng nổi bật của Spring Boot:
- Đóng gói ứng dụng Spring dưới dạng một file JAR (stand-alone application).
Chúng ta có thể dễ dàng start ứng dụng Spring chỉ với câu lệnh quen
thuộc java -jar.
- Tối ưu cơng đoạn cấu hình cho ứng dụng Spring, khơng sinh code cấu hình
và khơng u cầu phải cấu hình bằng XML.
- Cung cấp một loạt các tính năng phi chức năng phổ biến cho các dự án lớn
như nhúng trực tiếp web server như Tomcat, Jetty, ... vào ứng dụng, bảo mật,
health check...
Hiện tại, Spring Boot có 2 version chính là:
- v1.5.x
- v2.x
1.4.5 Tổng quan về Thymeleaf
1.4.4.1 Thymeleaf là gì?
Thymeleaf là một Java XML/XHTML/HTML5 Template Engine nó có thể làm việc
với cả hai môi trường Web và môi trường khơng phải Web. Nó phù hợp hơn khi
được sử dụng để phục vụ XHTML/HTML5 trên tầng View (View Layer) của ứng
dụng Web dựa trên kiến trúc MVC. Nó có thể xử lý bất kỳ một file XML nào, thậm
trí trên các mơi trường offline (Khơng trực tuyến). Nó hỗ trợ đầy đủ để tương tác với
Spring Framework.
Thymeleaf có thể sử dụng để thay thế cho JSP trên tầng View (View Layer) của ứng
dụng Web MVC. Thymeleaf là phần mềm mã nguồn mở, được cấp phép theo giấy
phép Apache 2.0.
1.4.4.2 Ưu điểm khi sử dụng Thymeleaf
Đầu tiên, trên trang chủ của spring framework người ta khuyến cáo nên sử dụng
thymeleaf cùng với sping và tất nhiên đã khuyến cáo thì có những ưu điểm như mình
vừa nói ở trên. Với Thymeleaf, nó đã viết sẵn một documentation Thymeleaf từ a- z
giúp các bạn có thể học nó.
-


Thân thiện và gần gũi với các develop

Vì nó có thể sử dụng HTML làm view, với html thì bất kỳ các lập trình viên nào
cũng biết, và tất nhiên ta chỉ sử dụng các file file HTML làm view, thymeleaf sẽ
tham gia vào file HTML dưới dạng các thuộc tính của các thẻ HTML . Ta không cần
phải thêm bất cứ loại thẻ non-HTML nào cả. (Ví dụ như jsp thì muốn sử dụng các
thẻ chuẩn của jsp như JSTL thì cần có taglib, với thymeleaf thì khơng cần sử dụng
bất kỳ loại thẻ nào khác html nên được gọi là NON-HTML)
- Không cần phải restart lại web.
Thông thường với các view chúng ta sử dụng với Java như jsp, jsf muốn nhìn thấy
được sự thay đổi của giao diện ta phải F5 lại trang web. Tuy nhiên với thymeleaf ta

SVTH: Phùng Thị Mỹ Nhung

Trang 13


khơng cần F5 (tải lại) lại trang cũng có thể xem các thay đổi trên giao diện, mặc định
với thymeleaf nó khơng thể xử lý được vấn đề này.
1.5 Các công cụ hỗ trợ
1.5.1 Spring Tool Suite
Spring tool suite (STS) là một extension mở rộng cho Eclipse, chuyên dùng
để hỗ trợ phát triển các ứng dụng bằng Spring Framework.
Nó cung cấp một môi trường để thực thi, gỡ lỗi, chạy và triển khai các ứng
dụng Spring, bao gồm tích hợp cho Pivotal tc Server, Pivotal Cloud Foundry, Git,
Maven, AspectJ, và các bản phát hành Eclipse mới nhất.
1.5.2 MySQL Workbench
1.5.2.1 MySQL Workbench là gì?
MySQL Workbench là một cơng cụ truy cập cơ sở dữ liệu được mơ hình hóa và
thiết kế trực quan sử dụng cho cơ sở dữ liệu quan hệ MySQL server. MySQL

Workbench giúp tạo ra các mơ hình dữ liệu vật lý mới và hỗ trợ sửa đổi các cơ sở
dữ liệu MySQL hiện có với các kỹ thuật đảo ngược / chuyển tiếp, các chức năng
quản lý tùy chọn.
1.5.2.2 MySQL workbench - Cơng cụ dựng hình và thiết kế
- Mơ hình (modeling) là yếu tố cốt lõi của hầu hết các cơ sở dữ liệu có hiệu suất
cao. MySQL workbench có các cơng cụ cho phép nhà phát triển và quản trị viên có
thể tạo ra các thiết kế mơ hình cơ sở dữ liệu vật lý trực quan. Các mơ hình này có
thể dễ dàng dịch sang cơ sở dữ liệu MySQL khi sử dụng kỹ thuật chuyển tiếp.
- MySQL workbench hỗ trợ việc tạo nhiều mơ hình trong cùng một mơi trường.
- Hỗ trợ tất cả các đối tượng như bảng biểu, trình xem, phương pháp lưu trữ, trình
kích hoạt, vv... để tạo một cơ sở dữ liệu.
- MySQL workbench có một tiện ích xác thực mơ hình được tích hợp sẵn, tiện ích
này sẽ báo cáo bất kỳ vấn đề nào được tìm thấy trong trình mơ hình hóa dữ liệu.
- MySQL workbench cũng cho phép các biểu diễn mơ hình khác nhau và có thể mở
rộng bằng cách sử dụng ngơn ngữ kịch bản LUA.

SVTH: Phùng Thị Mỹ Nhung

Trang 14


Hình 2: Cửa sổ dựng hình của MySQL Workbench
1.5.2.3 MySQL workbench – Công cụ phát triển SQL
Structured Query Language (SQL) cho phép chúng ta thao tác cơ sở dữ liệu quan
hệ. trong đó, SQL là trung tâm của tất cả các cơ sở dữ liệu quan hệ.
- MySQL workbench, tích hợp sẵn trình soạn thảo trực quan SQL.
- Trình soạn thảo Visual SQL cho phép các nhà phát triển xây dựng, chỉnh sửa và
chạy các truy vấn đối với cơ sở dữ liệu của MySQL server. Cơng cụ cũng có các
tiện ích để xem dữ liệu và xuất dữ liệu.
- Các cú pháp đánh dấu bằng màu cho phép các nhà phát triển dễ dàng viết và

debug các câu lệnh SQL.
- Có thể chạy nhiều truy vấn và sau đó kết quả sẽ được tự động hiển thị trong các
tab khác nhau.
- Các truy vấn cũng được lưu lại trong lịch sử để truy xuất và chạy sau này.

SVTH: Phùng Thị Mỹ Nhung

Trang 15


Hình 3: cửa sổ phát triển SQL của MySQL Workbench
1.5.2.4 MySQL workbench – Cơng cụ quản trị
Quản trị server đóng một vai trò quan trọng trong việc đảm bảo an toàn dữ liệu cho
doanh nghiệp. Các vấn đề chủ yếu liên quan đến quản trị server bao gồm quản lý
người dùng, cấu hình máy chủ, nhật ký máy chủ và nhiều tính năng khác…
MySQL Workbench có các tính năng giúp đơn giản hóa q trình quản trị máy chủ
MySQL sau đây:
- Quản trị người dùng: tiện ích trực quan giúp quản lý người dùng. Tiện ích cho
phép quản trị viên cơ sở dữ liệu dễ dàng thêm mới và xóa người dùng hiện tại khi
cần; cấp, hủy phân quyền cũng như xem hồ sơ người dùng.
- Cấu hình server: hỗ trợ cấu hình máy chủ nâng cao và cho phép tinh chỉnh để tối
ưu hiệu suất.
- Sao lưu và phục hồi dữ liệu: công cụ trực quan sử dụng cho xuất / nhập các dump
file trong MySQL. Dumb file trong MySQL chứa các SQL script để tạo cơ sở dữ
liệu, bảng biểu, trình xem, các phương pháp lưu trữ và chèn dữ liệu.
- Nhật ký server: công cụ trực quan cho phép xem nhật ký MySQL server. Nhật ký
sẽ bao gồm danh sách lỗi, bản ghi nhị phân và bản ghi InnodDB. Lợi ích của các
nhật ký này là giúp đưa ra các chẩn đoán cho server.
1.5.3 GitLab
1.5.3.1 Gitlab là gì?

GitLab là mơ ăt phần mềm có nhiệm vụ quản lý kho code Git. Gitlab sở hữu các tính
năng đơn giản, góp phần to lớn trong việc giúp các doanh nghiê ăp, cá nhân, tổ chức
lưu trữ code mô ăt cách nhanh chóng vơ cùng, người dùng hồn tồn có thể truy câ ăp
mọi lúc mọi nơi miễn là có kết nối Internet.

SVTH: Phùng Thị Mỹ Nhung

Trang 16


×