Tải bản đầy đủ

luận văn thạc sĩ xây dựng hệ thống quản lý ảnh video online

ĐẠ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:
࿿࿿࿿'䨄䨄࿿࿿࿿࿿࿿࿿࿿࿿࿿(䨄䨄࿿࿿࿿࿿࿿࿿࿿࿿࿿)䨄࿿࿿࿿࿿࿿࿿࿿࿿࿿࿿*䨄䨄࿿࿿࿿࿿࿿࿿࿿࿿࿿+䨄
࿿࿿࿿࿿࿿࿿࿿࿿࿿࿿,䨄䨄࿿࿿࿿࿿࿿࿿࿿࿿࿿28

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.
࿿࿿࿿'䨄䨄࿿࿿࿿࿿࿿࿿࿿࿿࿿(䨄䨄࿿࿿࿿࿿࿿࿿࿿࿿࿿)䨄࿿࿿࿿࿿࿿࿿࿿࿿࿿࿿*䨄䨄࿿࿿࿿࿿࿿࿿࿿࿿࿿+䨄
࿿࿿࿿࿿࿿࿿࿿࿿࿿࿿,䨄䨄࿿࿿࿿࿿࿿࿿࿿࿿࿿29 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ố.
࿿࿿࿿'䨄䨄࿿࿿࿿࿿࿿࿿࿿࿿࿿(䨄䨄࿿࿿࿿࿿࿿࿿࿿࿿࿿)䨄࿿࿿࿿࿿࿿࿿࿿࿿࿿࿿*䨄䨄࿿࿿࿿࿿࿿࿿࿿࿿࿿+䨄࿿࿿࿿࿿࿿࿿࿿࿿
,䨄䨄࿿࿿࿿࿿࿿࿿࿿࿿࿿30 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. Biểu đồ lớp quản lý tìm kiếm .................................................................... 63
3.10. 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
5888
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
0

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
Returned
to user

processing

View

Model
Send as
part of the
request

0

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.
0 Tính năng quan trọng của nền tảng ASP.NET MVC [16]
0 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.
1 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.
2 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

1

0 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…
1 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

5

3

Router
Configuration
?

4
9

Controller
8

6

Model

7

View
Engine

Hình 2.2: Giao tiếp trong kiến trúc ASP.NET MVC

23 Trình duyệt gửi yêu cầu của ứng dụng Asp.Net MVC
24 MVC Engine chuyển yêu cầu tới cho Routing engine (Bộ điều hướng)
25 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.
26 Khi Controller được tìm thấy, Control này sẽ được thực thi


16

23 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.
24 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.
25 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
26 View engine trả kết quả cho Controller
27 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
5888 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]:
0

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.

1

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.

2

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.

3

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

0 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.
1 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).
2 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.
3 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.
0

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:
ASP.NET

Windows Forms

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.
0
1
2
3
4

Đố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:
0 .NET Framwork Data Provider for SQL Server o
.NET Framwork Data Provider for OLE DB

o .NET Framwork Data Provider for ODBC
o .NET Framwork Data Provider for Oracle

.NET Framwork Data Provider
IDbConnection
IDbCommand

IDataAdapter

DataSet

IDataReader

Database

XML

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
0 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.
1 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.
2 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.
3 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

0 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ị.
1 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.
2 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
0 Thiết kế theo mô hình Three-tiers.
1 Tính module hóa.
2 Các tham số của hệ thống được thiết kế động, dễ tùy chỉnh.
3 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

ID

Ca sử dụng

Actor chính

Actor phụ

Mô tả tóm tắt

1

UC01

Login

Admin
User

Cho phép actor đăng nhập vào hệ
thống.

2

UC02

Logout

Admin
User

Cho phép actor đăng xuất khỏi hệ
thống.

3

UC03

ManagerRe
port

Admin
User

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.

User Guest
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
User

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.

6

UC06

ReplyRepor
t

Admin
User

Trả lời lại các thông báo, yêu cầu
mà actor nhận được.

7

UC07

SendReport

Admin
User

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
User

Quản lý ảnh mà người dùng tải lên
hệ thống.

12

UC12

DeactiveIm
age

Admin

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


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×