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

Xây dựng hệ thống quản lý ảnh video online

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 (5.51 MB, 137 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
****************

Nguyễn Văn Trường

XÂY DỰNG HỆ THỐNG QUẢN LÝ ẢNH/VIDEO
ONLINE

LUẬN VĂN THẠC SỸ NGÀNH CÔNG NGHỆ THÔNG TIN
Chuyên ngành: Kỹ thuật phần mềm
Mã số: 8480103.01

HÀ NỘI – 2019


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
****************

Nguyễn Văn Trường

XÂY DỰNG HỆ THỐNG QUẢN LÝ ẢNH/VIDEO
ONLINE

LUẬN VĂN THẠC SỸ NGÀNH CÔNG NGHỆ THÔNG TIN
Chuyên ngành: Kỹ thuật phần mềm
Mã số: 8480103.01

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS.TRƯƠNG NINH THUẬN


HÀ NỘI – 2019


LỜI CẢM ƠN
Đầu tiên em xin được gửi lời cảm ơn sâu sắc nhất tới thầy giáo PGS.TS.Trương Ninh
Thuận – người đã hướng dẫn tận tình, chỉ bảo và đóng góp ý kiến quý báu cho em trong
suốt quá trình học tập và làm khóa luận. Trong quá trình làm luận văn, Thầy đã giúp em
thu được rất nhiều kinh nghiệm quý về phương pháp nghiên cứu cũng như kỹ năng trình
bày. Thầy cũng là người tiếp thêm niềm tin và thúc đẩy em vượt qua khó khăn, giúp em
trưởng thành hơn trong cuộc sống. Chính thầy đã tiếp thêm động lực để em có thể hoàn
thành được khóa luận của mình. Một lần nữa cho em xin gửi lời cảm ơn tới Thầy.
Em cũng xin gửi lời cảm ơn tới quý Thầy/Cô khoa Công nghệ Thông tin nói riêng,
cũng như quý Thầy/Cô trường Đại học Công nghệ đã dành rất nhiều tâm huyết tận tình
giảng dạy, truyền đạt những kiến thức quý báu và tạo điều kiện tốt nhất cho em thực hiện
luận văn này.
Con cũng xin gửi tất cả lòng biết ơn, sự kính trọng gửi đến ông bà, bố mẹ, cùng toàn
thể gia đình, những người luôn bên cạnh động viên, cổ vũ là chỗ dựa cho con để con yên
tâm học hành cũng như cho con niềm tin nghị lực để cố gắng hoàn thành luận văn một cách
tốt nhất.
Xin được chân thành cảm ơn sự giúp đỡ, động viên và chỉ bảo nhiệt tình của các anh
chị và bạn bè đồng nghiệp. Các anh chị, các bạn đã luôn ở bên cổ vũ, giúp đỡ, tiếp thêm
động lực và ý chí giúp em hoàn thành được luận văn.
Dù đã cố gắng hết sức của bản thân, song luận văn không khỏi còn nhiều thiếu sót.
Em rất mong được sự thông cảm và những góp ý chỉ bảo tận tình của quý Thầy/Cô và các
bạn để luận văn được hoàn thiện hơn.
Tôi xin chân thành cảm ơn!
Hà Nội, Ngày tháng năm 2019
Học viên
Nguyễn Văn Trường



Lời cam đoan
Tôi xin cam đoan:
1. Những nội dung trong khóa luận này là do tôi thực hiện dưới sự hướng
dẫn của thầy giáo PGS.TS.Trương Ninh Thuận.
2. Mọi tham khảo dùng trong khóa luận đề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á tôi xin
chịu hoàn toàn trách nhiệm và sự kỉ luật của hội đồng.
Sinh viên,

Nguyễn Văn Trường


Mục lục
Chương 1: GIỚI THIỆU ................................................................................................ 9
1.1.

Sự cần thiết xây dựng hệ thống ......................................................................... 9

1.2.

Nội dung của luận văn ..................................................................................... 11

1.3.

Cấu trúc của luận văn ..................................................................................... 11

Chương 2: MỘT SỐ CÔNG NGHỆ ĐỂ XÂY DỰNG HỆ THỐNG .......................... 12
2.1.


Ngôn ngữ lập trình ASP.NET MVC ............................................................... 12

2.2.

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

2.3.

Mô hình cài đặt ................................................................................................ 17

2.4.

Cách thức truy cập cơ sở dữ liệu (ADO.NET) ............................................... 19

2.5.

Bảo mật và cơ chế phân quyền trong hệ thống .............................................. 21

Chương 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG ..................................................... 22
3.1.

Các đối tượng tham gia vào hệ thống ............................................................. 22

3.1.1.

Người quản trị hệ thống (Admin) ............................................................. 22

3.1.2.


Người sử dụng hệ thống (User) ................................................................. 22

3.1.3.

Khách vãng lai (User Guest) ..................................................................... 22

3.2.

Các yêu cầu chính mà hệ thống phải thực hiện .............................................. 22

3.3.

Phân tích yêu cầu hệ thống .............................................................................. 23

3.3.1.

Các yêu cầu chức năng .............................................................................. 23

3.3.2.

Các yêu cầu phi chức năng ....................................................................... 23

3.4.

Bảng chú giải .................................................................................................... 24

3.4.1.

Giới thiệu ................................................................................................... 24


3.4.2.

Bảng danh sách các tác nhân .................................................................... 24

3.4.3.

Bảng chuyển đổi các yêu cầu chức năng sang ca sử dụng ....................... 24

3.5.

Đặc tả ca sử dụng ............................................................................................. 28

3.6.

Đặc tả bổ sung .................................................................................................. 28

3.6.1.

Mục tiêu ..................................................................................................... 28

3.6.2.

Phạm vi ...................................................................................................... 29

3.6.3.

Chức năng ................................................................................................. 29

3.6.4.


Tính khả dụng ........................................................................................... 29

3.6.5.

Tính ổn định .............................................................................................. 29


3.6.6.

Hiệu suất .................................................................................................... 29

3.6.7.

Tính bảo mật ............................................................................................. 29

3.6.8.

Các ràng buộc thiết kế .............................................................................. 29

3.7.

Các sơ đồ ca sử dụng ....................................................................................... 30

3.7.1.

Mô hình các ca sử dụng của Admin ......................................................... 30

3.7.2.

Mô hình các ca sử dụng của User ............................................................. 30


3.7.3.

Mô hình các trường hợp sử dụng của User Guest ................................... 31

3.8.

Các biểu đồ tuần tự.......................................................................................... 31

3.8.1.

Đăng nhập hệ thống .................................................................................. 31

3.8.2.

Người dùng đăng xuất khỏi hệ thống ....................................................... 32

3.8.3.

Người dùng chỉnh sửa nội dung báo cáo .................................................. 33

3.8.4.

Xem báo cáo .............................................................................................. 33

3.8.5.

Trả lời báo cáo........................................................................................... 34

3.8.6.


Gửi báo cáo lên hệ thống .......................................................................... 34

3.8.7.

Vô hiệu hóa bình luận ............................................................................... 35

3.8.8.

Kích hoạt bình luận................................................................................... 35

3.8.9.

Vô hiệu hóa ảnh......................................................................................... 36

3.8.10. Kích hoạt ảnh ............................................................................................ 36
3.8.11. Vô hiệu hóa video ...................................................................................... 37
3.8.12. Kích hoạt video.......................................................................................... 37
3.8.13. Khóa tài khoản người dùng ...................................................................... 38
3.8.14. Mở khóa tài khoản người dùng ................................................................ 38
3.8.15. Thêm tài khoản admin .............................................................................. 39
3.8.16. Chỉnh sửa tài khoản admin....................................................................... 39
3.8.17. Vô hiệu hóa tài khoản admin .................................................................... 40
3.8.18. Tìm kiếm người dùng ................................................................................ 40
3.8.19. Thêm quảng cáo ........................................................................................ 41
3.8.20. Thay đổi ngôn ngữ hiển thị ....................................................................... 41
3.8.21. Cập nhật menus......................................................................................... 42
3.8.22. Thêm bình luận ......................................................................................... 42
3.8.23. Chỉnh sửa bình luận .................................................................................. 43
3.8.24. Xóa bình luận ............................................................................................ 43



3.8.25. Xem video .................................................................................................. 44
3.8.26. Xóa video ................................................................................................... 44
3.8.27. Tải video lên hệ thống ............................................................................... 45
3.8.28. Thêm mật khẩu cho ảnh, video ................................................................ 45
3.8.29. Cập nhật từ khóa cho ảnh, video .............................................................. 46
3.8.30. Cập nhật quyền xem ảnh, video ............................................................... 47
3.8.31. Chia sẻ video .............................................................................................. 47
3.8.32. Tìm kiếm video .......................................................................................... 48
3.8.33. Chỉnh sửa video ......................................................................................... 49
3.8.34. Yêu thích video .......................................................................................... 50
3.8.35. Thêm ảnh, video vào album ...................................................................... 50
3.8.36. Xem ảnh ..................................................................................................... 51
3.8.37. Chỉnh sửa ảnh ........................................................................................... 52
3.8.38. Xóa ảnh ...................................................................................................... 53
3.8.39. Chia sẻ ảnh ................................................................................................ 53
3.8.40. Tải ảnh lên hệ thống .................................................................................. 54
3.8.41. Tìm kiếm ảnh ............................................................................................ 54
3.8.42. Kiểm tra ảnh có tính chất phản cảm ........................................................ 55
3.8.43. Yêu thích ảnh ............................................................................................ 55
3.8.44. Lấy lại tài khoản từ hệ thống .................................................................... 56
3.8.45. Cập nhật ảnh bìa ....................................................................................... 56
3.8.46. Cập nhật ảnh đại diện ............................................................................... 57
3.8.47. Cập nhật thông tin cá nhân ...................................................................... 57
3.8.48. Đăng ký tài khoản vào hệ thống ............................................................... 58
3.8.49. Nhận dạng hình ảnh .................................................................................. 59
3.9.

Biểu đồ lớp ....................................................................................................... 59


3.9.1.

Biểu đồ lớp đăng nhập hệ thống ............................................................... 59

3.9.2.

Biểu đồ lớp đăng ký thành viên ................................................................ 60

3.9.3.

Biểu đồ lớp quản lý ảnh/video .................................................................. 61

3.9.4.

Biểu đồ lớp quản lý người dùng ............................................................... 61

3.9.5.

Biểu đồ lớp trao đổi thông tin ................................................................... 62

3.9.6.

Biểu đồ lớp quản lý hệ thống .................................................................... 62


3.9.7.
3.10.

Biểu đồ lớp quản lý tìm kiếm .................................................................... 63

Thiết kế dữ liệu ............................................................................................. 64

3.10.1. Mô hình dữ liệu logic ở dạng sơ đồ .......................................................... 64
3.10.2. Danh sách các bảng dữ liệu ...................................................................... 66
3.10.3. Danh sách các thành phần của lược đồ dữ liệu........................................ 68
3.10.4. Danh sách các thuộc tính của từng thành phần ....................................... 69
3.11.

Thiết kế kiến trúc ......................................................................................... 69

Chương 4: CÀI ĐẶT .................................................................................................... 71
4.1.

Cài đặt chương trình ....................................................................................... 71

4.2.

Triển khai và thử nghiệm chương trình ......................................................... 80

Chương 5: TỔNG KẾT ................................................................................................ 83
5.1. Kết luận ............................................................................................................ 83
5.2. Hướng phát triển ............................................................................................. 84
5.2.1. Xây dựng hoàn thiện hệ thống .................................................................. 84
5.2.2. Mở rộng thêm các chức năng edit Ảnh/Video ......................................... 84
5.2.3. Sử dụng AI cho việc nhận diện Ảnh và Video ......................................... 84
5.2.4. Tăng cường quảng cáo giới thiệu hệ thống tới người dùng ..................... 84
PHỤ LỤC ...................................................................................................................... 85
TÀI LIỆU THAM KHẢO .......................................................................................... 137



9

Chương 1: GIỚI THIỆU
Trong cuộc sống hiện đại internet đóng một vai trò rất quan trọng trong sự phát triển kinh
tế, xã hội và trở thành một công cụ không thể thiếu trong công việc hàng ngày của rất nhiều
người. Internet vừa là một công cụ học tập hữu hiệu cũng vừa là một phương tiện giải trí
hiệu quả. Internet cũng đã thay đổi cách chúng ta kết nối chia sẻ thông tin với nhau và
internet cũng là một môi trường kinh doanh lý tưởng cho các cá nhân cũng như các doanh
nghiệp. Nhu cầu chụp ảnh, quay video và chia sẻ cho nhau ngày càng phát triển mạnh trong
những năm trở lại đây. Ở thời điểm hiện tại, biểu tượng của thời kỳ này là những chiếc điện
thoại với tốc độ xử lý nhanh và thông minh cùng những chiếc camera hiện đại. Tất cả nhằm
phục vụ nhu cầu chia sẻ thông tin dưới dạng hình ảnh và video. Và tất nhiên không thể
không kể đến sự phát triển không ngừng của máy ảnh chuyên nghiệp tích hợp nhiều công
nghệ hơn, hiện đại hơn và chụp ảnh quay phim đẹp hơn. Mỗi bức ảnh hay video luôn có
một câu chuyện “ẩn” trong đó, do đó mọi người luôn muốn lưu giữ lại cũng như chia sẻ với
nhau. Khái niệm thương mại điển tử, bán hàng online cũng không còn xa lạ với mọi người.
Công việc kinh doanh online, bán hàng cần có những bức hình giới thiệu sản phẩm và cần
sự chia sẻ hình ảnh đó để hàng hóa được quảng cáo nhiều hơn tới tất cả mọi người. Do đó
việc tạo ra một nơi để lưu trữ những bức ảnh, những đoạn video cũng như chia sẻ chúng là
một việc làm rất đáng được quan tâm. Xuất phát từ nhu cầu trên tôi muốn xây dựng một hệ
thống nơi mà mọi người có thể chia sẻ và lưu trữ ảnh và video trực tuyến.

1.1. Sự cần thiết xây dựng hệ thống
Ở thời điểm hiện tại, việc chụp ảnh, quay video để ghi lại những khoảnh khắc mà bản thân
mỗi người muốn lưu giữ đã không còn xa lạ đối với mỗi người trong chúng ta. Những hình
ảnh sống động đó có thể sẽ kể lại cả một kỷ niệm, cả một câu chuyện, một quá trình của
một người nào đó. Hay có những khoảnh khắc xinh đẹp, bùng cháy, những hình ảnh chớp
nhoáng, những phút giây bên nhau đều được ghi lại một cách chân thực nhất trong những
tấm hình. Hình ảnh, video có thể được tạo ra mọi lúc mọi nơi và trong mọi hoàn cảnh vì
với công nghệ ngày nay những thiết bị có chức năng chụp ảnh quay phim đã và đang phát

triển nhanh như vũ bão và ngày càng hiện đại. Ngày nay để đánh giá một chiếc điện thoại
smart phone người ta còn đưa cả tiêu chí chiếc điện thoại đấy có quay phim, chụp ảnh đẹp
hay không, đó là còn chưa kể tới những chiếc máy ảnh chuyên nghiệp đã và đang ngày càng
phát triển. Điều đó cho thấy nhu cầu chụp ảnh, quay video để ghi lại những hình ảnh đẹp,
những khoảnh khắc của mỗi cá nhân lớn tới nhường nào. Từ đó nhu cầu về việc quản lý
hình ảnh, video cần phải được quan tâm hơn nữa. Bạn hãy thử tưởng tượng khi những thiết
bị lưu trữ cá nhân hết dung lượng không còn dung lượng để mình ghi lại những khoảnh
khắc mới. Hãy thử tưởng tượng bao nhiều hình ảnh đẹp chúng ta lưu trữ trong thiết bị tới
một ngày xấu trời thiết bị lưu trữ hỏng mà chưa được sao lưu vào đâu. Hãy thử tưởng tượng
những bức hình đẹp mình chụp được muốn khoe với bạn bè nhưng ảnh lại đang lưu trữ
trong chiếc ổ cứng của máy tính ở nhà. Bạn phải làm thế nào?


10

Vấn đề tiếp theo tác giả muốn nói tới việc quảng cáo và giới thiệu sản phẩm. Có những mặt
hàng sản phẩm từ nhà sản xuất sẽ được phân phối cho nhiều doanh nghiệp thứ cấp. Các
doanh nghiệp thứ cấp sẽ cần hình ảnh quảng cáo và thông tin để đưa lên trang giới thiệu
sản phẩm của mình. Nhà sản xuất đã thiết kế và chụp những quảng cáo đó vậy làm sao để
chia sẻ cho các doanh nghiệp thứ cấp. Vậy nên sẽ thực sự hữu ích nếu có một hệ thống lưu
trữ trung gian chuyên lưu trữ ảnh/video chất lượng cao và có thể chia sẻ các hình ảnh quảng
cáo một cách đơn giản và nhanh chóng. Từ những vấn đề trên chúng ta thấy được việc lưu
trữ và quản lý ảnh trực tuyến là thực sự cần thiết. Do đó cần tạo ra một hệ thống lưu trữ
trực tuyến để lưu trữ các hình ảnh, video cá nhân và quản lý chúng theo dòng thời gian sẽ
giải quyết được vấn đề trên.
Xuất phát từ nhu cầu trên, ở thời điểm hiện tại cũng đã có rất nhiều hệ thống quản lý
ảnh/video online đã được phát triển và đang được sử dụng rộng rãi như:
https://youtube.com,
https://www.dropbox.com,
https://photos.google.com,

https://www.flickr.com,
https://onedrive.live.com,
https://www.facebook.com,
https://www.instagram.com, …..Tuy nhiên mỗi hệ thống quản lý ảnh/video đều có những
điểm mạnh và điểm yếu riêng nên các hệ thống vẫn tồn tại song song và vẫn thu hút được
lượng người dùng nhất định. Sau khi sử dụng tác giả nhận thấy được một số nhược điểm
của các hệ thống quản lý ảnh/video trực tuyến. Thứ nhất, các hệ thống trên đều có máy chủ
đặt tại nước ngoài nên việc tải ảnh lên hoặc chậm hoặc là sẽ bị giảm chất lượng ảnh trước
khi được tải lên. Thứ hai, hầu hết các hệ thống sẽ yêu cầu trả phí hoặc sẽ giới hạn dung
lượng lưu trữ của người dùng. Thứ ba, đa số các hệ thống chưa có cơ chế tự động phân loại
ảnh, tự động thêm từ khóa vào ảnh để nâng cao khả năng tìm kiếm giúp việc quảng cáo
hình ảnh sản phẩm rộng rãi hơn tới người sử dụng. Tiếp nữa, rất nhiều các hệ thống chưa
hỗ trợ Tiếng Việt nên việc sử dụng sẽ gây khó khăn với một số bộ phận người dùng phổ
thông.
Mặt khác với xu thế mới hiện nay việc bán hàng online đang ngày càng phát triển tại nước
ta. Người mua sẽ muốn tham khảo trước hình ảnh sản phẩm của mình trước khi ra quyết
định có mua mặt hàng đó hay không. Còn về phần người bán sẽ muốn giới thiệu các sản
phẩm của mình rộng rãi hơn nữa tới người tiêu dùng. Cũng với lý do này tác giả muốn xây
dựng và quảng bá hệ thống như một nơi người bán hàng có thể đăng các sản phẩm của mình
để quảng bá và giới thiệu sản phẩm. Hệ thống được xây dựng sẽ là một nơi lưu giữ nhiều
mẫu ảnh về các sản phầm, các mặt hàng khác nhau để khi cần người bán hàng có thể sử
dụng các hình ảnh để tham khảo và giới thiệu sản phầm một cách trực quan nhất. Về mặt
hàng sản phẩm tác giả đang chú ý hướng tới là: các mẫu thiết kế nhà, nội thất, hoa, cây
cảnh, bonsai,…Và hệ thống sẽ là nơi chia sẻ thiết kế của các kiến trúc sư về các tác phẩm
của mình nhằm quảng bá tên tuổi và thương hiệu một cách có hiệu quả.
Chính vì điều này tác giả muốn thực hiện một đề tài luận văn “Xây dựng hệ thống quản
lý ảnh/video online”.


11


1.2. Nội dung của luận văn
Vì luận văn có tính thực tiễn cao nên mục tiêu mà tác giả hướng tới là xây dựng hoàn chỉnh
được hệ thống quản lý ảnh/video online. Quảng cáo và tăng lượng người dùng đăng ký sử
dụng hệ thống nhằm tăng sự tín nhiệm và tin cậy của hệ thống với người dùng. Tác giả cần
thúc đẩy việc upload ảnh/video nhằm quảng bá sản phẩm bán hàng trên hệ thống.
Để hướng tới mục tiêu trên tác giả chia nhỏ các mục tiêu như sau: Thứ nhất cần thực hiện
việc phân tích và thiết kế hệ thống, cần thu thập và phân tích yêu cầu của hệ thống, xây
dựng thiết kế hệ thống hoàn thiện nhằm đảm bảo tính chính xác và đúng đắn trong hệ thống
sẽ xây dựng, phân tích các thách thức của công nghệ cần sử dụng trong hệ thống, đảm bảo
việc phát triển hệ thống có tính mở rộng trong tương lai. Thứ hai cần phải phân tích được
ưu nhược điểm của hệ thống sắp xây dựng, đặt ra các mục tiêu mà hệ thống cần đạt được
trong quá trình phát triển. Và đây là hệ thống mang tính thực tiễn nên điều cuối cùng và
cũng là quan trọng nhất hệ thống cần hoàn thành việc cài đặt và được đưa triển khai để sử
dụng.

1.3. Cấu trúc của luận văn
Luận văn bao gồm những nội dung như sau:
Chương 1: Giới thiệu tổng quan về hệ thống sẽ xây dựng, sự cần thiết và các nhiệm vụ mà
hệ thống sẽ thực hiện và đóng góp của luận văn.
Chương 2: Giới thiệu và phân tích các công nghệ sẽ sử dụng trong việc phát triển hệ thống
như: ngôn ngữ lập trình ASP.NET, mô hình MVC, hệ quản trị cơ sở dữ liệu SQL Server.
Chương 3: Trình bày quá trình phân tích thiết kế hệ thống bao gồm: phân tích các yêu cầu
chức năng và phi chức năng, các mô hình use case và đặc tả use case, các mô hình lớp và
các lưu đồ hoạt động, thiết kế dữ liệu, thiết kế kiến trúc, thiết kế chức năng.
Chương 4: Trình bày các vấn đề liên quan đến cài đặt và triển khai hệ thống như: cài đặt
giao diện, cài đặt chương trình, triển khai hệ thống trên môi trường Windows.
Chương 5: Trình bày tóm tắt các kết quả đạt được và đề xuất các hướng mở rộng, phát
triển trong tương lai.



12

Chương 2: MỘT SỐ CÔNG NGHỆ ĐỂ XÂY DỰNG HỆ
THỐNG
Ngày nay có rất nhiều công cụ hỗ trợ cho việc lập trình các ứng dụng thương mại điện tử
như: ASP với các ngôn ngữ script là VBScript Jscript, Macromedia Dreamweaver MX,
Microsoft ASP.NET Web Maxtrix, JBuilder X, PHP, Python .v..v. Một số công cụ còn tích
hợp sẵn các templates cho phép tạo ra một trang web nhanh chóng và dễ dàng. Tuy nhiên,
một trong các công nghệ tiên tiến và mạnh mẽ nhất được nhắc đến nhiều nhất hiện nay vẫn
phải kể đến ASP.NET MVC dựa trên nền tảng công nghệ .NET của Microsoft. Công nghệ
ASP.NET MVC mang đến cho các trang web được tạo ra từ nó có thể chạy nhanh hơn do
dùng cơ chế chỉ biên dịch ra tập tin DLL lần đầu tiên triệu gọi; ngoài ra ASP.NET MVC
còn hỗ trợ nhiều công cụ lập trình và cho phép sử dụng các tài nguyên đang sử dụng tự
động dò tìm và khắc phục lỗi phát sinh (sử dụng cấu trúc try….catch), quản lý trạng thái
giao dịch (Session State) trên nhiều Sever, sử dụng bộ nhớ truy cập nhanh, sử dụng ngôn
ngữ biên dịch trang ASP.NET thay vì thông dịch như đã sử dụng trong ASP 3.0, xây dựng
và triển khai các ứng dụng Web services dễ dàng … Về cơ sở dữ liệu thì có: SQL Sever,
Oracle, MySQL…
Việc lựa chọn một môi trường lập trình thích hợp cũng góp phần vào thành công của việc
xây dựng một hệ thống Website. Với hệ thống mà tác giả đang nghiên cứu tác giả phân tích
thấy hệ thống sẽ cần lựa chọn một hệ cơ sở dữ liệu cần chịu được tải lớn, và là một hệ thống
phức tạp về dự liệu với số lượng và dung lượng ảnh/video sẽ tăng nhanh theo thời gian.
Thêm nữa cần lựa chọn một ngôn ngữ phù hợp với hướng phát triển và có tính mở rộng sau
này cũng như khả năng cải tiến các chức năng cho phù hợp với sự phát triển trong tương
lai. Với các đặc điểm như trên nên tác giả đã chọn ASP.NET MVC làm môi trường để xây
dựng ứng dụng và quản lý cơ sở dữ liệu sẽ dùng SQL Server.

2.1. Ngôn ngữ lập trình ASP.NET MVC
 Tổng quát về ASP.NET MVC

Asp.Net MVC là một Framework sử dụng .Net Framework cho việc phát triển ứng dụng
web động. Asp.Net MVC phát triển trên mẫu thiết kế chuẩn MVC, cho phép người sử dụng
phát triển các ứng dụng phần mềm[1,tr.9].
MVC là tên một mẫu phát triển ứng dụng, phương pháp này chia nhỏ một ứng dụng thành
ba thành phần để cài đặt, mỗi thành phần đóng một vai trò khác nhau và ảnh hưởng lẫn
nhau, đó là models, views, và controllers.
Các đặc trưng của chính của Model, View và Controller trong mẫu thiết kế chuẩn
MVC[2,tr.28]:
Model: các đối tượng Models là một phần của ứng dụng, các đối tượng này thiết lập logic
của phần dữ liệu của ứng dụng. Thông thường, các đối tượng model lấy và lưu trạng thái
của model trong CSDL.


13

View: là các thành phần dùng để hiển thị giao diện người dùng (UI), view được tạo dựa vào
thông tin dữ liệu model.
Controller: là các thành phần dùng để quản lý tương tác người dùng, làm việc với model
và chọn view để hiển thị giao diện người dùng. Trong một ứng dụng MVC, view chỉ được
dùng để hiển thị thông tin, controller chịu trách nhiệm quản lý và đáp trả nội dung người
dùng nhập và tương tác với người dùng.
Hình 2.1 [2,tr29] mô tả mô hình thiết kế MVC:
Sends a user
request

Controller
Request
processing

Returned

to user

View

Model
Send as
part of the
request
Sent to be
presented
to user

Hình 2.1: Mẫu thiết kế MVC

 Lợi ích khi xây dựng ứng dụng dựa trên mô hình MVC
Có nhiều lợi ích mà mô hình MVC mang lại trong quá trình phát triển hệ thống phần mềm.
Thứ nhất với mô hình MVC thì việc quản lý sự phức tạp của ứng dụng sẽ dễ dàng hơn và
tường minh hơn vì ứng dụng sẽ được chia thành ba thành phần model, view, controller.
Tiếp theo đối với mô hình MVC thì việc phát triển ứng dụng sẽ dễ dàng hơn trong việc phát
triển theo hướng kiểm thử, từ đó nâng cao được tính bảo mật của hệ thống và dễ dàng bảo
trì cũng như nâng cấp hệ thống mà vẫn đảm bảo chất lượng, dễ dàng hơn cho đội kiểm thử
có thể kiểm tra các chức năng của hệ thống. Tiếp theo nữa là việc phân chia theo mô hình
trên thì việc phát triển một hệ thống lớn sẽ dễ dàng hơn trong việc quản lý dự án, nó cho
phép các nhà phát triển và các nhà thiết kế có thể làm việc đồng thời với nhau. MVC cho


14

phép thay đổi trong một phần của ứng dụng mà không ảnh hưởng đến các phần khác của
ứng dụng.

Sở dĩ như vậy vì kiến trúc MVC đã tách biệt (decoupling) sự phụ thuộc giữa các thành phần
trong một đối tượng đồ họa, làm tăng tính linh động (flexibility) và tính tái sử dụng
(reusebility) của đối tượng đồ họa đó. Một đối tượng đồ họa bấy giờ có thể dễ dàng thay
đổi giao diện bằng cách thay đổi thành phần View của nó trong khi cách thức lưu trữ
(Model) cũng như xử lý (Controller) không hề thay đổi. Tương tự, ta có thể thay đổi cách
thức lưu trữ (Model) hoặc xử lý (Controller) của đối tượng đồ họa mà những thành phần
còn lại vẫn giữ nguyên.
Chính vì vậy mà kiến trúc MVC đã được ứng dụng để xây dựng rất nhiều framework và
thư viện đồ họa khác nhau. Tiêu biểu là bộ thư viện đồ họa của ngôn ngữ lập trình hướng
đối tượng SmallTalk (cũng do Xerox PARC nghiên cứu và phát triển vào thập niên 70 của
thế kỷ 20). Các Swing Components của Java cũng được xây dựng dựa trên kiến trúc MVC.
Đặc biệt là nền tảng ASP.NET MVC Framework do Microsoft xây dựng và phát triển.

 Tính năng quan trọng của nền tảng ASP.NET MVC [16]

1. Tách bạch các tác vụ của ứng dụng (logic nhập liệu, business logic, và logic giao
diện), dễ dàng kiểm thử và mặc định áp dụng hướng phát triển hướng kiểm thử. Tất
cả các tính năng chính của mô hình MVC được cài đặt dựa trên giao diện và được
kiểm thử bằng cách sử dụng các đối tượng mocks, mock object là các đối tượng mô
phỏng các tính năng của những đối tượng thực sự trong ứng dụng. Bạn có thể kiểm
thử unit-test cho ứng dụng mà không cần chạy controller trong tiến trình ASP.NET,
và điều đó giúp unit test được áp dụng nhanh chóng và tiện dụng. Bạn có thể sử dụng
bất kỳ nền tảng unit-testing nào tương thích với nền tảng .NET.
2. MVC là một nền tảng khả mở rộng (extensible) và khả nhúng (pluggable). Các thành
phần của ASP.NET MVC được thiết kể để chúng có thể được thay thế một cách dễ
dàng hoặc dễ dàng tùy chỉnh. Bạn có thể nhúng thêm view engine, cơ chế định tuyến
cho URL, cách kết xuất tham số của action-method và các thành phần khác.
ASP.NET MVC cũng hỗ trợ việc sử dụng Dependency Injection (DI) và Inversion
of Control (IoC). DI cho phép bạn gắn các đối tượng vào một lớp cho lớp đó sử dụng
thay vì buộc lớp đó phải tự mình khởi tạo các đối tượng. IoC quy định rằng, nếu một

đối tượng yêu cầu một đối tượng khác, đối tượng đầu sẽ lấy đối tượng thứ hai từ một
nguồn bên ngoài, ví dụ như từ tập tin cấu hình. Và nhờ vậy, việc sử dụng DI và IoC
sẽ giúp kiểm thử dễ dàng hơn.
3. ASP.NET MVC có thành phần ánh xạ URL mạnh mẽ cho phép bạn xây dựng những
ứng dụng có các địa chỉ URL xúc tích và dễ tìm kiếm. Các địa chỉ URL không cần
phải có phần mở rộng của tên tập tin và được thiết kế để hỗ trợ các mẫu định dạng
tên phù hợp với việc tối ưu hóa tìm kiếm (URL) và phù hợp với lập địa chỉ theo kiểu
REST.


15

4. Hỗ trợ các tính năng có sẵn của ASP.NET như cơ chế xác thực người dùng, quản lý
thành viên, quyền, output caching và data caching, seession và profile, quản lý tình
trạng ứng dụng, hệ thống cấu hình…
5. ASP.NET MVC sử dụng view engine Razor View Engine cho phép thiết lập các
view nhanh chóng, dễ dàng và tốn ít công sức hơn so với việc sử dụng Web Forms
view engine.
 Giao tiếp trong kiến trúc ASP.NET MVC
Các thành phần cơ bản của ứng dụng Asp.Net MVC là: Route engine, Route configuration,
MVC Framework, View, View engine, Model, Control.
Các thành phần sẽ giao tiếp với nhau nhằm xử lý yêu cầu của ứng dụng Asp.Net MVC. Quá
trình xử lý yêu cầu thường liên quan tới một chuỗi xử lý, mỗi xử lý sẽ được một component
trong Asp.net đảm nhiệm[2,tr.43].
Hình 2.2[2,tr.43] mô tả cách giao tiếp trong kiến trúc ASP.NET theo mô hình MVC.
MVC Framwork

1

Browser


2

Route Engine

3

Router
Configuration

5

?
4
Controller

9

6

Model

7

8
View
Engine

Hình 2.2: Giao tiếp trong kiến trúc ASP.NET MVC
1. Trình duyệt gửi yêu cầu của ứng dụng Asp.Net MVC

2. MVC Engine chuyển yêu cầu tới cho Routing engine (Bộ điều hướng)
3. Routing engine kiểm tra cấu hình điều hướng (route configuration) của ứng dụng
nhằm chuyển đến các Controller phù hợp với yêu cầu.
4. Khi Controller được tìm thấy, Control này sẽ được thực thi


16

5. Nếu Controller không được tìm thấy, bộ điều hướng sẽ chỉ ra rằng Controller không
được tìm thấy và MVC Engine sẽ thông báo lỗi cho trình duyệt.
6. Controller giao tiếp với Model, tầng Model đại diện cho các Entity bên trong hệ
thống, Controller làm việc với tầng model để lấy thông tin cần cho người dùng.
7. Controller yêu cầu View engine hiển thị thông tin dựa trên dữ liệu của tầng Model
8. View engine trả kết quả cho Controller
9. Controller gửi kết quả cho trình duyệt thông qua giao thức Http.
Từ những phân tích trên có thể ASP.NET là ngôn ngữ rất phù hợp để xây dựng hệ thống
quản lý ảnh/video mà tác giả muốn xây dựng. Với cả nhân tác giả thì sau thời gian sử dụng
ngôn ngữ ASP.NET cho việc lập trình website và sử dụng các website chạy bằng ngôn ngữ
ASP.NET như https://dantri.com.vn/; https://vnexpress.net/; https://stackoverflow.com/;
https://myspace.com/;...thì đánh giá website lập trình bằng ASP.NET chạy rất mượt và ổn
định, có tốc độ tải trang nhanh. ASP.NET sẽ giúp việc lập trình có thể dễ dàng tùy biến,
các thành phần của website có thể thay đổi nhanh chóng và dễ dàng mở rộng. Tuy nhiên
song song với đó thì việc lập trình bằng ASP.NET cũng có những thách thức như việc lập
trình sẽ phải tạo mã nguồn mới hoàn toàn chứ không có mã nguồn sẵn như một số
framework của các ngôn ngữ khác. Do đó việc lập trình cần yêu cầu người phát triển cần
có kỹ năng và tư duy tốt để có thể chau chuốt kỹ hơn các tính năng của hệ thống sẽ phát
triển.

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
khách 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[3,tr.11].
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 user.
SQL Server có thể kết hợp “ăn ý” với các server khác như Microsoft Internet Information
Server (IIS), E-Commerce Server, Proxy Server[4,tr.21]…
SQL Server được cấu tạo bởi nhiều thành phần như Database Engine, Reporting Services,
Notification Services, Integration Services, Full Text Search Service…. Các thành phần
này khi phối hợp với nhau tạo thành một giải pháp hoàn chỉnh giúp cho việc lưu trữ và phân
tích dữ liệu một cách dễ dàng. Hình 2.3[5,tr.64] mô tả các thành phần chính của SQL Server:


17

Hình 2.3: Các thành phần chính của SQL Server
Như những phân tích ban đầu hệ thống quản lý ảnh/video online cần chú trọng rất lớn vào
cơ sở dữ liệu do hệ thống sẽ có lượng dữ liệu tăng dần theo thời gian. Từ đó việc lựa chọn
cơ sở dữ liệu cho hệ thống rất quan trọng. Từ những đặc tính mạnh mẽ trong quản lý và
truy xuất dữ liệu của SQL Server, tính tương thích với ASP.NET, khả năng chịu tải và SQL
Server có thể chạy trên môi trường cơ sở dữ liệu rất lớn,…nên tác giả đánh giá SQL Server
rất phù hợp để sử dụng cho hệ thống của mình. Tuy sẽ phải đầu tư về mặt tài chính nhiều
hơn so với việc sử dụng một hệ cơ sở dữ liệu miễn phí khác nhưng việc đầu tư này tác giả
đánh giá là phù hợp cho việc mở rộng và phát triển của hệ thống sau này.

2.3. Mô hình cài đặt
 Lựa chọn mô hình cài đặt
Một trong những mô hình cài đặt có thể được lựa chọn đầu tiên để cài đặt các ứng dụng
ngày nay là kiến trúc đa tầng N-tier. Mô hình kiến trúc N-tier (với 3 Tier) được mô tả như
hình 2.4[6,tr.29] và hình 2.5[6,tr.31]dưới đây:


Hình 2.4: Ví dụ mô hình 3-tier


18

Users

UI Components
UI Process Components

Service Interfaces (Facades)
Business
Workflows

Business
Components

Business
Entities

Data Access Logic
Components

Other
Resources

Data Sources

Resources


Hình 2.5: Mô hình mô tả kiến trúc 3-Tier
Các thuận lợi mà kiến trúc này có thể mang lại là[6,tr.35]:
1. Việc thay đổi các xử lý ở tầng truy xuất dữ liệu sẽ không ảnh hưởng và làm thay đổi
tầng giao diện người dùng.
2. Tất cả các thủ tục truy xuất dữ liệu sẽ được đóng gói vào các đối tượng thay vì dùng
các lời gọi hàm.
3. SQL sẽ được loại trừ ra khỏi code phía client. Client chỉ còn quan tâm đến các
phương thức và các thuộc tính.
4. Tên của các bảng và cột sẽ được loại trừ ra khỏi code phía client. Các datasets được
định kiểu có thể mô tả các bảng và cột dữ liệu như là các thuộc tính, cung cấp một
danh sách các IntellliSense.


19

5. Code phía client sẽ không quan tâm đến việc dữ liệu có từ đâu. Nó chỉ quan tâm rằng
nó có thể nhận và điều chỉnh dữ liệu trong các đối tượng và đối tượng này sẽ quan
tâm tới các chi tiết.
6. Code phía client sẽ được đơn giản hóa, thay vì sử dụng nhiều hàm (functions) thì
các ứng dụng nên sử dụng các đối tượng với các thuộc tính (properties) và phương
thức (methods).
7. Việc tạo và sử dụng các đối tượng sẽ dễ dàng hơn là dùng các lời gọi hàm.
8. Việc thêm và thay đổi các chức năng của ứng dụng cũng sẽ dễ dàng hơn do không
làm thay đổi code phía client.
Mặc dù có những thuận lợi như vậy, kiến trúc 3-tier cũng gặp phải một số bất lợi nhất định.
Thứ nhất phải tạo nhiều classes hơn, điều này có thể sẽ ảnh hưởng đến vấn đề bảo trì và
vấn đề hiệu suất vì nó sẽ mất thời gian để tạo một class mới vào thời điểm run time. Thứ
hai 3-tier sẽ không làm việc tốt khi chúng ta không biết cấu trúc của các bảng mà dữ liệu
sẽ được nhận từ nó. Thứ ba việc truyền dữ liệu giữa các tầng sẽ chậm hơn vì phải truyền

giữa các tiến trình khác nhau (IPC), dữ liệu cần phải đóng gói rồi truyền đi rồi mở gói mới
có thể dùng được.Và cuối cùng việc phát triển ứng dụng sẽ phức tạp hơn so với các kiến
trúc khác. Tóm lại, mặc dù có một vài bất lợi trong kiến trúc 3-tier nhưng những lợi thế do
nó mang lại lớn hơn nhiều, và vì vậy với ứng dụng này tác giả sẽ xây dựng theo kiến trúc
3-tier.

 Xây dựng các lớp xử lý chính
Với mỗi tầng trong kiến trúc 3-tier sẽ có các lớp đối tượng riêng chịu các trách nhiệm tương
ứng khác nhau. Ở tầng giao diện người dùng, các trang .aspx với các web forms sẽ trình
bày nội dung của website cho phía client. Tầng giữa là các xử lý trung gian liên kết hai tầng
còn lại (tầng giao diện và tầng dữ liệu). Và tầng dữ liệu sẽ đảm bảo cho vấn đề truy xuất và
cập nhật dữ liệu. Sẽ có các lớp đối tượng riêng biệt cho từng nhiệm vụ của các tầng nêu
trên.
Trong ứng dụng này mỗi đối tượng phục vụ của hệ thống sẽ được đóng gói trong các
namespace khác nhau, và như vậy ở tầng giao diện và xử lý các đối tượng này sẽ được xây
dựng độc lập. Trong tầng dữ liệu sẽ tập trung xử lý cho tất cả các yêu cầu truy xuất xữ liệu
của tất cả các đối tượng. Do đó ta có thể thấy được sự tách biệt khá rõ ràng trong việc xây
dựng các lớp xử lý của từng tầng theo kiến trúc 3-tier.

2.4. Cách thức truy cập cơ sở dữ liệu (ADO.NET)
Trong môi trường phát triển Microsoft .NET tất cả các ứng dụng webform hay winform
đều thống nhất sử dụng chung một bộ thư viện để truy xuất và thao tác với cơ sở dữ liệu
gọi là ADO.NET (Active Data Object). ADO.NET là một bộ các thư viện hướng đối tượng
nằm trong bộ thư viện lớp cơ sở của .NET Framework, cho phép các ứng dụng windows
(như C#, VB.NET) hay ứng dụng web (như ASP.NET) thao tác dễ dàng với các nguồn dữ
liệu. Nguồn dữ liệu ở đây có thể là một cơ sơ dữ liệu, có thể là file text, file excel, hoặc


20


XML. Như chúng ta đã biết hiện nay có rất nhiều loại cơ sở dữ liệu như SQL Server, MS
Access, Oracle,…và nhiệm vụ của mô hình ADO.NET là cho phép người lập trình thao tác
với nhiều loại cơ sở dữ liệu theo cùng một cách[17]. Hình 2.6 mô tả vị trí của ADO.NET
trong kiến trúc của .NET Framework:

Windows Forms

ASP.NET

Class Framework

Drawing

XML

Data

ADO .NET

Common Language Runtime
System Service

Hình 2.6: Vị trí của ADO .NET trong kiến trúc của .NET Framwork
Kiến trúc trên hình 2.6 cũng cho ta thấy rằng ADO.NET là một thành phần nội tại của .NET
Framework, do vậy nó có thể được sử dụng trong tất cả các ngôn ngữ hỗ trợ .NET như C#,
VB.NET… mà không có sự khác biệt nào.
Như đã phân tích trên đây ADO.NET cho phép tương tác với các loại dữ liệu và kiểu
database. Mỗi loại dữ liệu cần một cách thức khác nhau để có thể truy xuất. Các loại dữ
liệu cũ sử dụng giao thức ODBC, các loại dữ liệu mới hơn sử dụng giao thức OleDb. Vì
vậy cần có một thư viện thống nhất để làm việc với chúng, đây chính là lý do mà ADO.NET

được tạo ra.
ADO.NET cung cấp một cách thức chung để tương tác với nguồn dữ liệu, nhưng với mỗi
loại dữ liệu bạn phải sử dụng một thư viện khác nhau. Các thư viện này được gọi là Data
Provider và thường được đặt tên theo giao thức hoặc loại dữ liệu mà chúng cho phép bạn
truy xuất. ADO.NET có năm đối tượng chính mà bạn bắt buộc phải biết tới khi thao tác với
dữ liệu là: SqlConnection, SqlCommand, SqlDataReader, DataSet, SqlDataAdapter.
1.
2.
3.
4.
5.

Đối tượng SqlConnection cho phép bạn quản lý một kết nối đến nguồn dữ liệu.
Đối tượng SqlCommand cho phép bạn gửi lệnh đến dữ liệu.
Đối tượng SqlDataReader cho phép đọc dữ liệu nhanh theo cơ chế forward-only.
Đối tượng DataSet sẽ được sử dụng nếu muốn làm việc với dữ liệu đã ngắt kết nối.
Đối tượng SqlDataAdalter sẽ cho phép bạn thực hiện việc đọc và ghi đến dữ liệu
nguồn.

Hình 2.7 sau đây mô tả kiến trúc của ADO.NET:


21

.NET Framwork Data Providers available in ADO .NET:
o
o
o
o


.NET Framwork Data Provider for SQL Server
.NET Framwork Data Provider for OLE DB
.NET Framwork Data Provider for ODBC
.NET Framwork Data Provider for Oracle

.NET Framwork Data Provider
IDbConnection
IDbCommand

IDataAdapter

DataSet

IDataReader

XML
Database

Hình 2.7: Kiến trúc của ADO.NET
Từ những phân tích trên đây tác giả củng cố thêm cho việc lựa chọn ASP.NET để sử dụng
cho việc phát triển hệ thống. Sử dụng ASP.NET và có sự hỗ trợ của ADO.NET sẽ giúp mở
rộng và phát triển cho hệ cơ sở dữ liệu của hệ thống sau này.

2.5. Bảo mật và cơ chế phân quyền trong hệ thống
Quản lý vai trò của các đối tượng là phần bắt buộc đối với bất kỳ ứng dụng nào. Mục đích
của quản lý vai trò của đối tượng là nhằm đảm bảo an toàn cho hệ thống và phân chia nhiệm
vụ giữa các đối tượng trong hệ thống. Khi thiết kế và sử dụng quản lý vai trò của các đối
tượng trong hệ thống thì bạn sẽ cung cấp quyền cho đối tượng truy cập tới đúng tài nguyên
tương ứng với quyền hạn của đối tượng từ đó hệ thống sẽ đảm bảo an toàn hơn. Hầu hết
các framework đều hỗ trợ tính năng phân quyền một cách mặc định. Với .NET Framwork

thì chính là Membership Provider (ASP.NET 2.0), SimpleMembership (ASP.NET 4.5),
Universal Provider (ASP.NET 4.0), Identity (ASP.NET 4.5.1), Role Provider (ASP.NET
MVC 5), tuy nhiên việc thao tác với database của người dùng sẽ rất khó khăn. Do đó
Custom Provider là phương án hợp lý để điều chỉnh sự bất tiện này.


22

Chương 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
3.1. Các đối tượng tham gia vào hệ thống
3.1.1. Người quản trị hệ thống (Admin)
Người quản trị có quyền đăng nhập vào hệ thống từ bất kỳ nơi đâu. Họ có quyền kiểm soát
tất cả mọi hoạt động của hệ thống, cụ thể như: Xem danh sách người dùng đăng ký, thêm,
xóa, sửa cập nhật thông tin người dùng nếu cần thiết. Tùy chỉnh giao diện của hệ thống,
thay đổi cho phù hợp với từng thời điểm. Admin còn có thể thống kê ảnh/video theo lượng
người xem, theo thể loại, theo số lượng lượt người dùng khác yêu thích ảnh/video.

3.1.2. Người sử dụng hệ thống (User)
User là đối tượng sau khi đã có tài khoản và là thành viên của hệ thống. Do vậy user có thể
đăng nhập, đăng xuất khỏi hệ thống. User có thể đăng tải những hình ảnh, video của cá
nhân lên hệ thống. Có thể sử dụng một số chức năng chỉnh sửa ảnh, video mà hệ thống cung
cấp để chỉnh sửa ảnh, video của cá nhân. User cũng có thể tìm kiếm ảnh hoặc video của
một thành viên khác, có thể thêm ảnh của thành viên khác vào album ảnh của mình. User
cũng có thể thiết kế, tạo slide trình chiếu ảnh cá nhân và có thể xem trực tiếp trên hệ thống.
User còn có thể tùy chỉnh trang cá nhân như thay ảnh đại diện, ảnh bìa của trang cá nhân,
tùy chỉnh thông tin cá nhân của mình. Có thể yêu thích, bình luận đối với ảnh, video của cá
nhân hay của bạn bè trên hệ thống.

3.1.3. Khách vãng lai (User Guest)
User Guest là đối tượng người dùng chưa có tài khoản đăng nhập vào hệ thống. Do vậy

user guest có thể thực hiện đăng ký vào hệ thống, có thể thực hiện việc tìm kiếm ảnh, video
theo từ khóa mà không cần phải đăng nhập.

3.2. Các yêu cầu chính mà hệ thống phải thực hiện
1. Từng đối tượng user sẽ có các chức năng được xử lý độc lập như thêm, sửa, đăng ký
thông tin.
2. Admin có thể thực hiện được các chức năng quản trị cả hệ thống như: quản lý user,
quản lý thông tin đăng ký. Admin có thể tùy chỉnh giao diện của hệ thống cho bắt
mắt và phù hợp với thị yếu theo thời gian.
3. User có thể đăng ký làm thành viên, đăng nhập vào hệ thống, xem và tìm kiếm ảnh
theo chủ đề, có thể tải ảnh của cá nhân lên và cài đặt các quyền hạn cho ảnh tương
ứng. User còn có thể chỉnh sửa ảnh và video của mình bằng một số tính năng trên
hệ thống cung cấp.
4. User guest có thể xem và tìm kiếm ảnh theo chủ đề, có thể đăng ký thành viên và có
thể bình luận về ảnh, video mà có quyền public.


23

5. Hệ thống phải đảm bảo tính bảo mật trong các thông tin đăng ký, đăng nhập, quản
trị.
6. Hệ thống có khả năng nhận diện những hình ảnh phản cảm để lọc và không cho công
khai để tránh tình trạng thành nơi lưu giữ ảnh phản cảm.
7. Hệ thống có cơ chế tự nhận dạng và phân loại ảnh theo chủ đề nếu user không tự
thực hiện phân loại.

3.3. Phân tích yêu cầu hệ thống
3.3.1. Các yêu cầu chức năng
3.3.1.1. Yêu cầu chức năng nghiệp vụ
Đối với người dùng: Hệ thống cần cung cấp chức năng đăng ký và đăng nhập. Khi đăng

nhập vào hệ thống thì hệ thống cần xác định tài khoản để phân quyền truy cập của người
đăng nhập với vai trò admin hoặc người dùng thông thường. Hệ thống cần đảm bảo việc
lưu trữ thông tin của tất cả các đối tượng một cách an toàn. Hệ thống cho phép người dùng
tìm kiếm ảnh, video theo từ khóa hoặc theo chủ đề, cung cấp giao diện thân thiện để người
dùng có thể tải ảnh, video lên một cách dễ dàng. Hệ thống cũng cần hỗ trợ công cụ giúp
người dùng trong việc quản lý, chỉnh sửa ảnh, video cá nhân. Người dùng có thể hiệu chỉnh
thông tin cá nhân khi cần thiết. Hệ thống cũng cần có cơ chế hỗ trợ phân loại ảnh, video
khi người dùng tải ảnh, video lên hệ thống. Hỗ trợ thêm tính năng chia sẻ, bình luận, yêu
thích ảnh để tăng tính tương tác giữa người dùng với nhau.
Đối với người quản trị: Hệ thống cần có giao diện riêng đối với người quản trị giúp quản
lý thông tin của tất cả các đối tượng trong hệ thống, cần có quyền thêm, xóa, sửa thông tin
của các đối tượng này. Hệ thống cần có cơ chế nhận diện ảnh giúp hỗ trợ người quản trị
trong việc phân loại ảnh phản cảm để tránh tình trạng hình ảnh xấu gây mất uy tín và ảnh
hưởng tới người dùng.

3.3.1.2. Yêu cầu chức năng hệ thống
Hệ thống cần phân quyền với từng đối tượng người dùng, cho phép người dùng đăng nhập
vào hệ thống với vai trò khác nhau ứng với từng đối tượng và quản lý việc truy cập tới tài
nguyên của hệ thống tương ứng với từng vai trò của từng đối tượng. Hệ thống cần đảm bảo
tính bảo mật các thông tin của người dùng như: địa chỉ email, số điện thoại, địa chỉ, user
name, password,…

3.3.2. Các yêu cầu phi chức năng
3.3.2.1. Nhắm tới lợi ích của các đối tượng người dùng
Tính tiện dụng: Giao diện thân thiện dễ sử dụng đối với những người sử dụng Windows,
dễ tìm kiếm thông tin cần thiết và nhanh chóng.
Tính hiệu quả: Đảm bảo việc truy xuất nhanh đến các trang và khả năng kiểm soát lỗi tốt,
đăng ký, đăng nhập dễ dàng nhanh chóng.



24

Tính tương thích: Hỗ trợ tốt trên các trình duyệt từ IE 8 trở lên và các trình duyệt khác
như Opera, Mozilla Firefox, Google Chrome, …
Tính tiến hóa: Sử dụng AI trong việc phân loại ảnh và nhận diện hình ảnh phản cảm. Có
tính tự học hỏi khi được học máy trong quá trình tự phân loại ảnh của người dùng.

3.3.2.2. Nhắm tới lợi ích của việc phát triển dự án
 Thiết kế theo mô hình Three-tiers.
 Tính module hóa.
 Các tham số của hệ thống được thiết kế động, dễ tùy chỉnh.
 Tính dùng lại của code.

3.4. Bảng chú giải
3.4.1. Giới thiệu
Bảng chú giải này được dùng để định nghĩa các thuật ngữ đặc thù trong lĩnh vực của bài
toán, giải thích các từ ngữ có thể không quen thuộc với người đọc trong các mô tả của ca
sử dụng hoặc các tài liệu khác của đề tài. Thường thì tài liệu này có thể được dùng như một
từ điển dữ liệu không chính thức, ghi lại các định nghĩa dữ liệu để mô tả ca sử dụng và các
tài liệu khác và các định nghĩa này có thể tập trung vào những gì hệ thống phải thực hiện.

3.4.2. Bảng danh sách các tác nhân
Bảng 3.1: Bảng danh sách các tác nhân:
STT

Tác nhân

Mô tả

1


Admin

Admin - Quản trị của hệ thống.

2

User

User - Là người sử dụng có thể đăng ký, đăng nhập vào
hệ thống để tải ảnh, video lên hệ thống và có thể chỉnh
sửa ảnh, video của người dùng đó.

3

User Guest

User Guest - là kiểu người dùng có thể vào tìm kiếm và
xem ảnh, video mà không cần đăng nhập. Sẽ chỉ có thể
xem được những ảnh, video mà người dùng tải lên và để
quyền là cho phép tất cả mọi người có thể xem.

3.4.3. Bảng chuyển đổi các yêu cầu chức năng sang ca sử dụng
Từ các phân tích về các đối tượng sẽ tham gia vào hệ thống, các yêu cầu và chức năng mà
hệ thống cần phải đạt được. Tác giả phân rã và chuyển đổi các chức năng sang ca sử dụng
tại bảng 3.2 sau đây:


25


Bảng 3.2: Bảng chuyển đổi các yêu cầu chức năng sang ca sử dụng
STT
1

ID
UC01

Ca sử dụng

Actor chính

Login

Admin
User

2

UC02

Logout

Admin
User

3

UC03

ManagerRe

port

Admin
User
User Guest

Actor phụ

Mô tả tóm tắt
Cho phép actor đăng nhập vào hệ
thống.
Cho phép actor đăng xuất khỏi hệ
thống.
Quản lý việc trao đổi giữa người
dùng và người quản trị hệ thống.
Báo cáo các lỗi trên hệ thống hoặc
yêu cầu hỗ trợ liên quan tới tài
khoản trong hệ thống.

4

UC04

UpdateRepo Admin
rt
User

Cho phép actor chỉnh sửa, update
nội dung thông báo.


5

UC05

View
Report

Admin

Cho phép actor xem nội dung các
yêu cầu mình gửi hoặc được gửi tới
mình.

ReplyRepor
t

Admin

SendReport

Admin

6

7

UC06

UC07


User

User

User

Trả lời lại các thông báo, yêu cầu
mà actor nhận được.
Gửi các thông báo, yêu cầu, trao
đổi thông tin giữa người quản trị và
user.

User Guest
8

UC08

ManagerCo
mment

Admin
User

Quản lý nội dung bình luận của
User.

9

UC09


DeactiveCo
mment

Admin

Ẩn bình luận của người dùng có nội
dung vi phạm.

10

UC10

ActiveCom
ment

Admin

Hiển thị lại nội dung bình luận của
người dùng.

11

UC11

Manager
Image

Admin

Quản lý ảnh mà người dùng tải lên

hệ thống.

DeactiveIm
age

Admin

12

UC12

User

Ẩn ảnh có nội dung không phù hợp.


Xem Thêm

×