Professional Documents
Culture Documents
Nhóm 1
Ngô Đức Anh - 19020074
Thái Đức Anh - 19020208
Đặng Thị Bình - 19020223
Lê Quang Duy - 18020413
HÀ NỘI - 05/2022
MỤC LỤC
PHẦN 1: XÁC ĐỊNH VẤN ĐỀ ...........................................................................4
Tài liệu xác định vấn đề ................................................................................. 4
PHẦN 2: ĐẶC TẢ YÊU CẦU .............................................................................6
Tài liệu đặc tả yêu cầu ....................................................................................6
Tài liệu đặc tả ca sử dụng .............................................................................10
Tài liệu đặc tả bổ sung ..................................................................................24
Bảng chú giải (Glossary) ..............................................................................26
PHẦN 3: PHÂN TÍCH KIẾN TRÚC ................................................................ 28
Tài liệu phân tích kiến trúc ...........................................................................28
PHẦN 4: PHÂN TÍCH CA SỬ DỤNG ............................................................. 32
Tài liệu phân tích ca sử dụng ....................................................................... 32
PHẦN 5: CÁC PHẦN TỬ THIẾT KẾ .............................................................. 52
Tài liệu xác định các phần tử thiết kế .......................................................... 52
PHẦN 6: CƠ CHẾ THIẾT KẾ ...........................................................................58
Tài liệu xác định các cơ chế thiết kế ............................................................58
PHẦN 7: KIẾN TRÚC THỰC THI ...................................................................60
Tài liệu mô tả kiến trúc thực thi ................................................................... 60
PHẦN 8: SỰ PHÂN PHỐI ................................................................................ 64
Tài liệu mô tả sự phân phối ..........................................................................64
PHẦN 9: THIẾT KẾ CA SỬ DỤNG ................................................................ 66
Tài liệu thiết kế ca sử dụng .......................................................................... 66
PHẦN 10: THIẾT KẾ HỆ THỐNG CON ......................................................... 99
Tài liệu thiết kế hệ thống con .......................................................................99
PHẦN 11: THIẾT KẾ LỚP ..............................................................................102
Tài liệu thiết kế lớp .....................................................................................102
PHẦN 12: THIẾT KẾ CƠ SỞ DỮ LIỆU ........................................................ 109
Tài liệu thiết kế cơ sở dữ liệu .....................................................................109
2
BẢNG THUẬT NGỮ & TỪ VIẾT TẮT
Một số từ được dùng nhiều trong tài liệu hoặc các thuật ngữ viết tắt sẽ
được trình bày ở dưới đây để tiện cho việc theo dõi.
STT Từ viết tắt Thuật ngữ tiếng Anh Nghĩa tiếng Việt
Relational Database
4 RDBMS Hệ quản trị cơ sở dữ liệu
Management System
3
PHẦN 1: XÁC ĐỊNH VẤN ĐỀ
Tài liệu xác định vấn đề
1. Giới thiệu vấn đề
1.1. Thực trạng
Trong quá trình học tập tại trường đại học, sinh viên dù là năm nhất hay
năm cuối thường có nhiều bỡ ngỡ, thắc mắc về việc học tập, thi cử, việc làm,…
Những lúc như vậy, việc tìm đến đúng người có thể giải đáp những thắc mắc
đó nhường như rất khó khăn, vì không phải sinh viên nào cũng có nhiều mối
quan hệ với những người xung quanh, trong khi thực tế rằng, đó là những việc
mà nhiều sinh viên, cực sinh viên khác có thể cũng đã từng gặp phải và trải qua,
vì vậy họ sẽ có thể có cách giải quyết cho vấn đề đó.
Thêm nữa, một số việc đôi khi quá nhỏ nhặt để nhờ đến sự giúp đỡ của
nhà trường và thầy cô. Việc nhờ liên hệ này đôi khi cũng hơi phức tạp khiến
nhiều bạn sinh viên e dè và không dám nhờ vả.
Nhận thấy những vấn đề và mong muốn này từ các bạn sinh viên, nhóm
chúng em đề xuất xây dựng một hệ thống hỏi đáp để khắc phục vấn đề này.
1.2. Yêu cầu đặt ra
Có một nền tảng nào đó giúp các bạn sinh viên và các cựu sinh viên có
thể kết nối với nhau. Ở đó, mọi người có thể đặt ra những thắc mắc, nêu ra
những khó khăn của bản thân và nhận về những lời tư vấn từ những thành viên
khác trong hệ thống. Nhờ đó, có thể tạo ra một môi trường kết nối giữa những
có thắc mắc, câu hỏi tới những người có câu trả lời. Người hỏi cũng có thể hỏi
về thoải mái hỏi về nhiều vấn đề và sẽ nhận về những lời hồi đáp nhanh chóng
hơn.
2. Giải pháp
2.1. Mô tả
Để giải quyết vấn đề đã nêu ra ở trên, nhóm chúng em sẽ xây dựng một
hệ thống hỏi đáp dành riêng cho sinh viên, cựu sinh viên trường Đại học Công
nghệ, Đại học Quốc gia Hà Nội có tên gọi là UET Ask. Hệ thống sẽ được xây
dựng trên nền tảng một ứng dụng Web và sẽ đáp ứng được những yêu cầu đã
nêu ra ở trên.
2.2. Chức năng cơ bản
4
Hệ thống sẽ có một số chức năng cơ bản như sau:
- Đăng ký, đăng nhập vào hệ thống
- Chỉnh sửa thông tin cá nhân
- Đặt câu hỏi, thắc mắc mới
- Quản lý câu hỏi: chỉnh sửa, xóa,…
- Trả lời các câu hỏi của các thành viên khác
- Đánh giá các câu hỏi, bài viết
- Theo dõi những người dùng khác
- Báo cáo những bài viết vi phạm tiêu chuẩn cộng đồng
5
PHẦN 2: ĐẶC TẢ YÊU CẦU
Tài liệu đặc tả yêu cầu
1. Giới thiệu
Trong quá trình học tập tại trường đại học, sinh viên có nhiều thắc mắc,
bỡ ngỡ về việc học tập, thi cử, việc làm,... và thường không có nhiều người
quen, anh chị đi trước có nhiều kinh nghiệm để giải đáp, chia sẻ. Nhận thấy vấn
đề đó, nhóm mong muốn xây dựng một hệ thống hỏi đáp với tên gọi UET Ask
nhằm tạo ra một môi trường giúp kết nối sinh viên, cựu sinh viên trong trường
với nhau để giúp đỡ nhau, chia sẻ những kinh nghiệm quý giá và là một môi
trường lành mạnh để sinh viên trường Đại học Công nghệ, ĐHQGHN học tập,
phát triển.
Hệ thống hướng đến đối tượng là sinh viên đã và đang theo học tại UET.
Có hai thành phần tham gia vào hệ thống: người dùng và admin.
2. Các yêu cầu chức năng của hệ thống
2.1. Các chức năng của người dùng
2.1.1. Đăng nhập, đăng ký
- Dùng mail @vnu.edu.vn để đăng ký tài khoản, xác nhận tài khoản
bằng mã gửi về mail đã đăng ký. Khi đăng ký cần cung cấp thông tin về
username, password, tên, ngày tháng năm sinh, giới tính, khóa học (không bắt
buộc), ngành học (không bắt buộc),...
- Sau khi đăng ký thành công, đăng nhập vào hệ thống. Khi đăng nhập
lần đầu, hệ thống sẽ gợi ý một số các chủ đề để theo dõi.
- Trong trường hợp người dùng đã có tài khoản nhưng quên mật khẩu sẽ
nhấn nút quên mật khẩu và nhận hướng dẫn gửi về mail đã đăng ký.
2.1.2. Chỉnh sửa profile
- Người dùng có thể thay đổi các thông tin cá nhân như tên, khóa học,
ngành học, ngày tháng năm sinh, ảnh đại diện,…
- Người dùng có thể thay đổi mật khẩu.
2.1.3. Đặt một câu hỏi mới
- Người dùng có thể đặt câu hỏi mới.
6
- Gắn tag cho câu hỏi. Câu hỏi bắt buộc phải có ít nhất một tag từ danh
sách các tag đã có sẵn. Nếu muốn thêm tag mới, người dùng phải đề xuất lên
với admin và chờ admin phản hồi lại.
- Đặt visibility của câu hỏi (Cho mọi người hoặc cho những người
follow mình được xem câu hỏi).
- Sửa, xóa thông tin của câu hỏi.
- Ghim câu trả lời đã được xác thực là chính xác lên trên đầu.
2.1.4. Chỉnh sửa, quản lý các câu hỏi cũ
- Với những câu hỏi đã đăng trước đó, người dùng có thể chỉnh sửa nội
dung hoặc thay đổi các thẻ được gắn trong bài đăng đó, hoặc giới hạn lại những
người có thể nhìn thấy câu hỏi đó,…
- Người dùng có thể xóa vĩnh viễn một câu hỏi khỏi trang hiển thị của
mình.
2.1.5. Đánh giá một câu hỏi
- Người dùng có thể upvote, downvote các câu hỏi. Các câu hỏi với
upvote cao sẽ được ưu tiên hiển thị. Việc này sẽ giúp tăng tính hữu ích cho câu
hỏi và đóng góp vào sự phát triển của hệ th
2.1.6. Trả lời câu hỏi của người dùng khác
Với những câu hỏi mình biết câu trả lời, người dùng có thể tương tác ở
dưới bài viết của những người dùng khác.
2.1.7. Chỉnh sửa câu trả lời
- Với những câu trả lời đã đăng lên hệ thống, người dùng vẫn có thể
chỉnh sửa lại các thông tin liên quan.
- Người dùng có thể xóa hoàn toàn một câu trả lời mình đã đăng lên
khỏi hệ thống.
2.1.8. Theo dõi một người dùng khác
- Người dùng có thể xem trang cá nhân hiển thị danh sách các câu hỏi
của những người dùng khác.
- Nếu quan tâm đến một người dùng khác có thể nhấn nút follow để
tương tác tốt hơn với họ.
7
2.1.9. Báo cáo các câu trả lời vi phạm tiêu chuẩn cộng đồng
Để đóng góp vào sự phát triển của hệ thống, người dùng có thể báo cáo
với quản trị viên về những bài đăng, nhưng câu hỏi có nội dung, hình ảnh
không phù hợp với tiêu chuẩn đã được quy định. Admin sẽ tiếp nhận các phản
ánh này và có phương án giải quyết phù hợp.
2.2. Các chức năng của quản trị viên
2.2.1. Đăng nhập vào hệ thống
Quản trị viên sử dụng các tài khoản đã được cấp sẵn từ trước để đăng
nhập vào hệ thống và sử dụng các chức năng dưới quyền của một quản trị viên.
2.2.2. Quản lý hệ thống
- Quản trị viên có quyền xem danh sách người dùng trên hệ thống.
- Quản trị viên có quyền xem, xóa danh sách câu hỏi trên hệ thống.
- Quản trị viên có quyền xem, xóa danh sách câu trả lời trên hệ thống.
2.2.3. Xử lý các report về vi phạm
- Xem các báo cáo vi phạm đã được người dùng gửi về, đánh giá mức
độ nghiêm trọng và có hướng giải quyết phù hợp. Khi giải quyết xong, admin
đánh dấu đã xử lý.
- Xem lịch xử xử lý vi phạm.
- Xóa được bài viết vi phạm.
- Admin có thể xem được số lần vi phạm của một tài khoản. Tài khoản
của người vi phạm khi vượt quá 3 số lần vi phạm sẽ bị treo trong một tháng.
2.2.4. Xử lý các yêu cầu thêm tag mới.
Khi người dùng để xuất thêm tag mới, với các tag có nội dung trùng lặp,
admin sẽ đề xuất tag đã có sẵn trên hệ thống cho người dùng.
Nếu một tag mới chưa trùng lặp, thêm tag mới đó vào hệ thống và cho
phép người dùng đăng bài đó lên.
2.2.5. Hỗ trợ khi người dùng quên mật khẩu
- Xử lý các yêu cầu hỗ trợ quên mật khẩu của người dùng.
- Xác minh danh tính của người dùng và cấp mật khẩu mặc định mới lại
cho họ.
8
2.3. Các chức năng của hệ thống đánh giá
2.3.1. Đặt tham chiếu sang câu trả lời ở bài đăng khác
Các câu hỏi mới đặt nếu bị trùng với câu hỏi cũ sẽ được hệ thống trả lời
tự động bằng câu trả lời đã được lưu trước đó.
2.3.2. Tự động đánh giá độ uy tín của người dùng dựa trên đánh giá các
câu trả lời.
Mỗi người dùng được đánh giá uy tín dựa trên lượng up và downvote
của các câu hỏi, câu trả lời.
+ Nếu câu hỏi nhận được 1 upvote = 2xp, 1 downvote = -2xp.
+ Nếu câu trả lời nhận được 1 upvote = 1xp, 1 downvote = -1xp.
Hệ thống ưu tiên hiển thị câu trả lời cũng như câu hỏi của những người
dùng có độ uy tín cao. Một chỉ số đánh giá được gọi là độ uy tín được tính theo
công thức: upvote * 0.7 + xp * 0.3.
2.3.3. Gợi ý những câu hỏi liên quan mà người dùng có thể quan tâm.
Trang chủ của hệ thống sẽ ưu tiên hiển thị các câu hỏi được gắn các tag
mà người dùng quan tâm.
Phân tích các lượt tương tác của người dùng để đề xuất các câu hỏi, chủ
đề phù hợp.
9
Tài liệu đặc tả ca sử dụng
1. Sơ đồ mô hình ca sử dụng chính của hệ thống UET ASK
10
2. Đăng ký
2.1 Mô tả
Ca sử dụng này giúp người dùng khách tạo tài khoản mới để có thể tham
gia vào hệ thống. Chỉ khi tham gia vào hệ thống thì mới có thể thực hiện các
thao tác tiếp theo.
2.2. Luồng sự kiện
2.2.1. Luồng cơ bản
Ca sử dụng bắt đầu khi người dùng chọn tính năng đăng ký trên giao
diện:
1. Hệ thống chuyển sang giao diện đơn đăng ký, yêu cầu người dùng
cung cấp các thông tin được yêu cầu.
2. Người dùng nhập thông tin và ấn nút nộp.
3. Hệ thống ghi nhận đơn đăng ký, tạo và lưu tài khoản mới vào trong cơ
sở dữ liệu.
4. Khi quá trình lưu hoàn tất, hệ thống điều hướng người dùng đến trang
chủ của tài khoản vừa tạo
2.2.2. Luồng thay thế
2.2.2.1 Thông tin đăng ký vi phạm điều kiện
Nếu trong luồng cơ bản, người dùng vi phạm điều kiện kiểm tra của một
hoặc trường thông tin trong đơn khi ấn nộp, hệ thống giữ nguyên giao diện đơn
đăng ký và làm rõ các vùng vi phạm. Người dùng có thể quay trở lại điểm khởi
đầu của luồng cơ bản hoặc hủy việc đăng ký và kết thúc ca sử dụng.
2.2.2.2 Hệ thống gặp trục trặc
Nếu trong luồng cơ bản, hệ thống gặp trục trặc ở bước ấn “Nộp”, một
thông báo lỗi sẽ được gửi về và hiển thị trên trình duyệt của người dùng. Ca sử
dụng kết thúc. Người dùng có thể đợi đến khi hệ thống ổn định trở lại và thực
hiện lại ca sử dụng từ đầu
2.3. Yêu cầu đặc biệt
Không có.
2.4. Tiền điều kiện
11
Không có.
2.5. Hậu điều kiện
Nếu ca sử dụng thành công, tài khoản của người dùng được tạo và người
dùng được đăng nhập vào hệ thống.
2.6. Điểm mở rộng
Không có.
12
3. Đăng nhập
3.1. Mô tả
Ca sử dụng thể hiện cách một người dùng đăng nhập vào hệ thống.
Người dùng sẽ sử dụng tài khoản đã đăng ký để tham gia vào hệ thống.
3.2. Luồng sự kiện
3.2.1. Luồng cơ bản
Ca sử dụng này bắt đầu khi người dùng nhấn vào nút đăng nhập khi
người dùng vào website của hệ thống:
1. Hệ thống yêu cầu người dùng nhập tên đăng nhập và mật khẩu.
2. Người dùng nhập hai thông tin trên.
3. Hệ thống xác nhận hai thông tin đã nhập và cho người dùng đăng nhập
vào hệ thống.
3.2.2. Luồng thay thế
3.2.2.1 Sai thông tin đăng nhập
Nếu trong luồng cơ bản, người dùng nhập vào tên đăng nhập và mật
khẩu không hợp lệ hoặc tên đăng nhập chưa tồn thệ thống hiển thị một thông
báo lỗi. Người dùng có thể quay trở lại điểm khởi đầu của luồng cơ bản, tiến
hành đăng ký tài khoản mới hoặc hủy việc đăng nhập và kết thúc ca sử dụng.
3.3. Yêu cầu đặc biệt
Không có
3.4. Tiền điều kiện
Không có
3.5. Hậu điều kiện
Nếu ca sử dụng thành công, người dùng sẽ được đăng nhập vào hệ thống.
Nếu không thì trạng thái của hệ thống không đổi.
3.6. Điểm mở rộng
Không có.
13
4. Chỉnh sửa profile
4.1. Mô tả
Ca sử dụng cho phép người dùng thay đổi thông tin tài khoản cá nhân
của mình
4.2. Luồng sự kiện
4.2.1. Luồng cơ bản
Ca sử dụng bắt đầu khi người dùng chọn sửa đổi trong trang tài khoản
cá nhân.
1. Hệ thống hiển thị bảng thông tin cá nhân của người dùng.
2. Người dùng sửa đổi các thông tin cần thiết và ấn nút ghi nhận.
3. Hệ thống lưu lại thông tin mới của người dùng và chuyển hướng người
dùng về lại trang tài khoản cá nhân.
4.2.2. Luồng thay thế
4.2.2.1 Thông tin cập nhật vi phạm điều kiện
Nếu trong luồng cơ bản, thông tin người dùng nhập vào bị vi phạm điều
kiện, hệ thống sẽ đưa ra thông báo lỗi và làm nổi bật các phần vi phạm. Người
dùng có thể tiếp tục sửa thông tin hoặc hủy bỏ để kết thúc ca sử dụng.
4.3. Yêu cầu đặc biệt
Không có
4.4. Tiền điều kiện
Người dùng phải ở trạng thái đã đăng nhập để ca sử dụng có thể bắt đầu.
4.5. Hậu điều kiện
Nếu ca sử dụng thành công, thông tin người dùng được thay đổi trên hệ
thống. Ngược lại trạng thái của hệ thống sẽ được giữ nguyên.
4.6. Điểm mở rộng
Không có
14
5. Đặt câu hỏi
5.1. Mô tả
Ca sử dụng cho phép người dùng tạo một câu hỏi trên hệ thống.
5.2. Luồng sự kiện
5.2.1. Luồng cơ bản
Ca sử dụng này bắt đầu khi người dùng chọn tạo câu hỏi:
1. Hệ thống yêu cầu người dùng nhập tiêu đề và nội dung câu hỏi, mức
hiển thị của câu hỏi và các tag của nó.
2. Người dùng ghi nhập các thông tin và ấn nộp.
3. Hệ thống lưu câu hỏi vào cơ sở dữ liệu và hiển thị nó lên trang chủ của
người dùng và các người dùng theo dõi tag của câu hỏi.
5.2.2. Luồng thay thế
5.2.2.1 Nhập thiếu thông tin
Trong luồng cơ bản, khi có trường thông tin về câu hỏi bị trống, hệ
thống sẽ báo lỗi. Người dùng có thể sửa đổi câu hỏi để tiếp tục luồng hoặc hủy
và kết thúc ca sử dụng.
5.3. Yêu cầu đặc biệt
Không có
5.4. Tiền điều kiện
Người dùng cần phải ở trạng thái đã đăng nhập trước khi ca sử dụng bắt
đầu.
5.5. Hậu điều kiện
Nếu ca sử dụng thành công, hệ thống lưu câu hỏi vào cơ sở dữ liệu và
hiển thị nó cho những người dùng quan tâm.
5.6. Điểm mở rộng
Không có
15
6. Chỉnh sửa câu hỏi
6.1. Mô tả
Ca sử dụng cho phép người dùng chỉnh sửa câu hỏi mà mình đặt ra.
6.2. Luồng sự kiện
6.2.1. Luồng cơ bản
- Người dùng muốn chỉnh sửa câu hỏi thì ấn vào phần sửa ở trong câu hỏi
của mình.
- Nếu đồng ý sửa thì nhấn sửa, nếu đổi ý thì ấn hủy.
6.2.2. Luồng thay thế
6.3. Yêu cầu đặc biệt
Không
6.4. Tiền điều kiện
Người dùng phải đăng nhập, và câu hỏi sửa phải là câu hỏi của mình.
6.5. Hậu điều kiện
Nếu ca sử dụng thành công, câu hỏi sẽ được sửa thành công. Nếu không
thì câu hỏi vẫn giữ nguyên.
6.6. Điểm mở rộng
Không có
16
7. Lọc câu hỏi trên hệ thống
7.1. Mô tả
Ca sử dụng cho phép người dùng có thể thấy được những câu hỏi thuộc
chủ đề mà mình quan tâm.
7.2. Luồng sự kiện
7.2.1. Luồng cơ bản
1. Người dùng khi đăng ký đã chọn được các chủ đề mình quan tâm.
2. Hệ thống sẽ ưu tiên những câu hỏi liên quan đến chủ đề đó hiện lên dầu
trang.
7.2.2. Luồng thay thế
Không có
7.3. Yêu cầu đặc biệt
Không có
7.4. Tiền điều kiện
Người dùng phải đăng nhập và đã chọn các chủ đề quan tâm.
7.5. Hậu điều kiện
Nếu ca sử dụng thành công, câu hỏi thuộc chủ đề của người dùng sẽ
được đẩy lên đầu trang.
7.6. Điểm mở rộng
Không có
17
8. Đánh giá câu hỏi
8.1. Mô tả
Ca sử dụng cho phép người dùng đánh giá câu hỏi tốt hay không tốt.
8.2. Luồng sự kiện
8.2.1. Luồng cơ bản
1. Hệ thống sẽ cho 2 nút đánh giá lên(upvote) và xuống (downvote) để
người dùng đánh giá câu hỏi.
2. Người dùng ấn vào 1 trong 2 nút để đánh giá câu hỏi. Upvote thì cộng 1,
downvote thì trừ 1.
8.2.2. Luồng thay thế
Không có
8.3. Yêu cầu đặc biệt
Không có
8.4. Tiền điều kiện
Người dùng phải đăng nhập, và câu hỏi muốn đánh giá là câu hỏi của
người dùng khác.
8.5. Hậu điều kiện
Nếu ca sử dụng thành công, phần đánh giá của câu hỏi sẽ được cộng
thêm 1 hoặc trừ 1. Nếu không thì trạng thái hệ thống không đổi.
8.6. Điểm mở rộng
Không có
18
9. Trả lời
9.1. Mô tả
Ca sử dụng cho phép người dùng trả lời các câu hỏi hoặc các câu trả lời
của người dùng khác hoặc của bản thân.
9.2. Luồng sự kiện
9.2.1. Luồng cơ bản
1. Dưới mỗi câu hỏi hay câu trả lời đều có nút Trả lời, người dùng sẽ bấm
vào để trả lời câu hỏi hoặc câu trả lời.
2. Câu trả lời sẽ hiện ngay dưới câu hỏi đó.
9.2.2. Luồng thay thế
Không có
9.3. Yêu cầu đặc biệt
Không có
9.4. Tiền điều kiện
Người dùng phải đăng nhập.
9.5. Hậu điều kiện
Nếu ca sử dụng thành công, câu trả lời sẽ hiện ra ngay dưới câu hỏi đó.
Nếu không thì trạng thái hệ thống không đổi.
9.6. Điểm mở rộng
Không có
19
10. Theo dõi người dùng khác
10.1. Mô tả
Ca sử dụng cho phép người dùng theo dõi người dùng khác để thấy các
câu hỏi và câu trả lời của người đó.
10.2. Luồng sự kiện
10.2.1. Luồng cơ bản
1. Người dùng muốn theo dõi người dùng khác thì sẽ nhấn nút Theo dõi ở
hồ sơ người đó.
2. Những câu hỏi và câu trả lời của người được theo dõi sẽ ưu tiên xuất
hiện.
10.2.2. Luồng thay thế
Không có
10.3. Yêu cầu đặc biệt
Không có
10.4. Tiền điều kiện
Người dùng phải đăng nhập.
10.5. Hậu điều kiện
Nếu ca sử dụng thành công, người dùng muốn được theo dõi sẽ trong
danh sách theo dõi của người dùng. Nếu không thì trạng thái hệ thống không
đổi.
10.6. Điểm mở rộng
Không có
20
11. Báo cáo vi phạm
11.1. Mô tả
Ca sử dụng cho phép người dùng báo cáo đến admin những câu hỏi, câu
trả lời vi phạm quy tắc của hệ thống.
11.2. Luồng sự kiện
11.2.1. Luồng cơ bản
1. Nếu người dùng thấy câu hỏi hoặc câu trả lời vi phạm quy tắc hệ thống,
người dùng có thể ấn vào nút Báo cáo để được xử lý.
2. Câu hỏi/ câu trả lời bị báo cáo sẽ bị tạm ẩn và được gửi tới admin để xét
duyệt có vi phạm hay không.
3. Nếu vi phạm sẽ bị admin xóa. Nếu không thì câu hỏi vẫn sẽ được hiển
thị và phản hồi lại cho người bị báo cáo và người báo cáo vi phạm.
11.2.2. Luồng thay thế
Không có
11.3. Yêu cầu đặc biệt
Không có
11.4. Tiền điều kiện
Người dùng phải đăng nhập và câu hỏi vi phạm quy tắc hệ thống.
11.5. Hậu điều kiện
Nếu ca sử dụng thành công, câu hỏi/ câu trả lời bị báo cáo sẽ được gửi
tới admin để xét duyệt có xóa hay không.
11.6. Điểm mở rộng
Không có
21
12. Quản lý câu hỏi
12.1. Mô tả
Ca sử dụng cho phép người dùng quản lý các câu hỏi đã được đặt ra
trước đó, bao gồm sửa, xóa.
12.2. Luồng sự kiện
12.2.1. Luồng cơ bản
1. Người dùng vào mục quản lý câu hỏi để hiển thị danh sách các câu hỏi
đã được đặt ra từ trước tới nay.
2. Người dùng muốn chỉnh sửa câu hỏi thì bấm vào nút chỉnh sửa, sau đó
nhập lại nội dung. Khi hoàn thành thì bấm vào nút Lưu để lưu lại.
3. Người dùng muốn xóa câu hỏi thì bấm vào nút Xóa ở bên cạnh. Sau đó
bấm đồng ý để xóa.
12.2.2. Luồng thay thế
Không có.
12.3. Yêu cầu đặc biệt
Không.
12.4. Tiền điều kiện
Người dùng phải đăng nhập bằng tài khoản quản trị viên.
12.5. Hậu điều kiện
Nếu ca sử dụng thành công, danh sách các câu hỏi sẽ được làm mới
đúng như người dùng đã chỉnh sửa.
12.6. Điểm mở rộng.
Không có
22
13. Xử lý báo cáo
13.1. Mô tả.
Ca sử dụng cho phép quản trị viên có thể xem danh sách các câu hỏi,
câu trả lời bị báo cáo. Nếu câu hỏi, câu trả lời không phù hợp với tiêu chuẩn
của hệ thống (thiếu văn hóa, nội dung không phù hợp .v.v..) thì quả trị viên có
thể xóa câu hỏi, câu trả lời đó.
13.2. Luồng sự kiện
13.2.1. Luồng cơ bản
1. Quản trị viên đọc các câu hỏi và câu trả lời bị báo cáo. Kiểm tra nó với
tiêu chuẩn của hệ thống.
2. Nếu câu hỏi (câu trả lời) vi phạm, bấm nút xử lý để xóa và gửi phản hồi
về cho người báo cáo và gửi cảnh cáo đến người bị báo cáo.
3. Nếu câu hỏi (câu trả lời) không vi phạm, bấm nút từ chối để gửi kết quả
về cho người báo cáo.
13.2.2. Luồng thay thế
Không có.
13.3. Yêu cầu đặc biệt.
Không có
13.4. Tiền điều kiện
Phải đăng nhập bằng tài khoản quản trị viên.
13.5 Hậu điều kiện
Nếu ca sử dụng thành công, quản trị viên có thể xử lý được các báo cáo
mà người dùng gửi lên và gửi phản hồi về cho họ.
13.6. Điểm mở rộng.
Không có.
23
Tài liệu đặc tả bổ sung
1. Giới thiệu
Mục đích của tài liệu này là được sử dụng để định nghĩa các yêu cầu của
Hệ thống hỏi đáp UET Ask. Tài liệu đặc tả bổ sung này sẽ liệt kê ra các yêu
cầu không được thể hiện rõ ràng ở trong Tài liệu đặc tả ca sử dụng. Tài liệu này
và Tài liệu đặc tả ca sử dụng sẽ là tài liệu hoàn chỉnh về yêu cầu cho hệ thống.
2. Yêu cầu chức năng
Các mô tả cụ thể về chức năng được thể hiện trong Tài liệu đặc tả ca sử
dụng.
3. Tính dễ sử dụng
Để hệ thống có thể dễ dàng sử dụng đối với người dùng, cần phải đáp
ứng một số tiêu chí dưới đây.
- Một người sử dụng thông thường có thể học được cách xem các bài
viết trong hệ thống, sử dụng các công cụ lọc, tìm kiếm phù họp để tăng tốc độ
tìm kiếm trong thời gian 1 phút.
- Một người dùng thông thường có thể học được cách đăng một bài viết
mới lên hệ thống, gắn được các thẻ và các thông tin liên quan trong thời gian 3
phút.
- Một người dùng thông thường có thể biết cách trả lời, upvote hay
downvote để tương tác với những người dùng khác trong thời gian 3 phút.
- Một người dùng thông thường có thể ghi nhớ và làm quen với giao
diện của hệ thống chỉ sau một lần tham gia và làm các thao tác kể trên.
4. Tính tin cậy
- Hệ thống cần hoạt động được trong tối thiểu 95% thời gian do lượng
truy cập vào hệ thống vào ban đêm có thể giảm đi rất nhiều.
- Trong quá trình hệ thống hoạt động, các chức năng của hệ thống phải
hoạt động đúng với tỉ lệ xấp xỉ 99%.
- Nếu hệ thống có lỗi hay sự cố xảy ra, cần được khắc phục ngay trong
24 giờ đầu tiên kể từ khi xảy ra sự cố.
5. Hiệu năng
24
- Hệ thống hướng đến phục vụ tổng số người dùng không thường xuyên
là 10000 người và số người dùng tham gia đồng thời ở mức tối đa là 2000
người. Ở những giai đoạn bình thường, hệ thống duy trì ở mức phục vụ 100
yêu cầu đồng thời
- Thời gian phản hồi cho các thao tác trên hệ thống cần phải nhỏ hơn 10
giây.
6. Khả năng hỗ trợ
Không có
7. Bảo mật
- Hệ thống đảm bảo việc xác nhận danh tính của người dùng khi cho
phép họ tham gia vào hệ thống và khi thực hiện các yêu cầu đối với máy chủ.
Một người dùng không thể lấy được thông tin liên quan đến người dùng khác
nếu không được họ cho phép.
- Việc đăng nhập vào hệ thống là bắt buộc để có thể xem các thông tin,
sử dụng các chức năng của hệ thống.
- Để quản trị có thể thực hiện các quyền quản lý của mình, cần xác nhận
danh tính của họ trước khi tham gia vào hệ thống.
8. Các ràng buộc về thiết kế
- Dữ liệu cần được thiết kế theo chuẩn và có sự ràng buộc chặt chẽ.
25
Bảng chú giải (Glossary)
1. Giới thiệu
Tài liệu này được được viết ra với mục đích định nghĩa một số khái
niệm, thuật ngữ đặc biệt được sử dụng trong hệ thống UET Ask nhằm thuận
tiện cho người đọc khi nghiên cứu các tài liệu khác liên quan đến hệ thống. Các
định nghĩa này thuộc về miền nghiệp vụ riêng biệt của hệ thống nên có thể sẽ
có những ý nghĩa khác với hiểu biết thông thường.
2. Các định nghĩa
Dưới đây là các khái niệm được sử dụng trong hệ thống UET Ask.
2.1. Administrator (Quản trị viên)
Quản trị viên của hệ thống là người dùng đặc biệt có nhiệm vụ quản lý,
giám sát và đảm bảo cho hệ thống hoạt động hiệu quả, đúng với mong muốn
ban đầu đặt ra.
2.2. User (Người dùng)
Cách gọi những người dùng thông thường sau khi họ đã đăng ký và
đăng nhập thành công để sử dụng hệ thống.
2.3. Question (Câu hỏi)
Câu hỏi là những thắc mắc của người dùng mà họ mong muốn nhận
được câu trả lời. Trên hệ thống, mỗi câu hỏi sẽ được thể hiện bằng một bài
đăng cụ thể.
2.4. Tag (Thẻ)
Thẻ là một chủ đề, một nội dung nhất định dùng để phân loại các câu
hỏi trên hệ thống thành những nhóm nhỏ để tiện cho việc quản lý, theo dõi,
chọn lọc,…
2.5. Answer (Câu trả lời)
Câu trả lời là lời giải đáp cho một câu hỏi cụ thể trên hệ thống. Một câu
hỏi có thể có nhiều câu trả lời
2.6. Upvote (Tán thành)
Upvote đại diện cho một sự tán thành, đồng ý chúng ta dành cho một
câu hỏi hay một câu trả lời nào đó.
26
2.7. Downvote (Không tán thành)
Upvote đại diện cho một việc không tán thành, không đồng ý chúng ta
dành cho một câu hỏi hay một câu trả lời nào đó.
2.8. Experience hoặc Exp (Điểm kinh nghiệm)
Là điểm đánh giá được gán cho mỗi người dùng, mỗi câu hỏi và mỗi câu
trả lời. Điều này sẽ giúp nâng cao chất lượng hoạt động của hệ thống.
2.9. Rating system (Hệ thống đánh giá)
Hệ thống giúp quản lý, lưu trữ, cập nhật điểm kinh nghiệm và thực hiện
một số thao tác tự động cho hệ thống như giới thiệu bài viết, tham chiếu bài
viết,…
27
PHẦN 3: PHÂN TÍCH KIẾN TRÚC
Tài liệu phân tích kiến trúc
1. Các trừu tượng hóa quan trọng
1.1. Danh sách
28
3 Question Một thắc mắc cụ thể của người Persistency, Security
dùng được thể hiện dưới dạng bài
đăng trên hệ thống
4 Answer Một lời giải đáp tương ứng với một Persistency, Security
câu hỏi nào đó
6 Report Bản ghi chứa các thông tin liên Persistency, Security
quan đến một trường hợp vi phạm
quy tắc cộng đồng để admin xử lý
29
Hệ thống được xây dựng với kiến trúc 3 tầng với 3 tầng là: Tầng trình
diễn, tầng logic và tầng cơ sở dữ liệu.
- Tầng trình diễn: hiển thị các thành phần giao diện để qua đó người dùng có
thể tương tác với hệ thống. Tầng này sẽ thực hiện giao tiếp với tầng logic để
lấy các kết quả đã được xử lý hoặc gửi các yêu cầu về xử lý logic.
- Tầng logic:
+ Đáp ứng các yêu cầu được nhận về tầng trình diễn, xử lý dữ liệu trước
khi truyền xuống cho tầng CSDL.
+ Kiểm tra các ràng buộc, tính toàn vẹn và hợp lệ của dữ liệu, thực hiện
các tính toán nghiệp vụ trước khi trả dữ liệu về để hiện thị ở tầng trình diễn.
30
- Tầng cơ sở dữ liệu: Giao tiếp với CSDL và thực hiện các chức năng liên
quan đến trích xuất và lưu trữ dữ liệu: thêm, sửa, xóa, tìm kiếm,...
2.2. Định nghĩa các gói
- Authentication: kiểm tra, quản lý việc đăng ký, đăng nhập, lưu thông tin khi
tham gia hệ thống của người dùng,...
- Question Management: Quản lý các câu hỏi trên hệ thống và các tính năng
liên quan.
- User Management: Quản lý người dùng trên hệ thống.
- Rating: Hệ thống đánh giá người dùng, câu hỏi, câu trả lời trên hệ thống,...
- Data Model: Mô hình hóa các đối tượng được lưu trữ trong CSDL.
- Data Access: Mô tả cách thức tương tác với HQTCSDL và các thao tác với
dữ liệu.
31
PHẦN 4: PHÂN TÍCH CA SỬ DỤNG
Tài liệu phân tích ca sử dụng
1. Hiện thực hóa ca sử dụng - Biểu đồ tương tác
1.1. Đăng ký
1.1.1. Luồng cơ bản
32
1.2. Đăng nhập
1.2.1. Luồng cơ bản
33
1.4.1. Luồng cơ bản
34
1.5. Chỉnh sửa câu hỏi
1.5.1. Luồng cơ bản
35
1.7. Đánh giá câu hỏi
1.7.1. Luồng cơ bản
36
1.9. Theo dõi người dùng khác
1.9.1. Luồng cơ bản
37
1.11. Quản lý câu hỏi
1.11.1. Luồng cơ bản
38
1.12. Xử lý báo cáo
1.12.1. Luồng cơ bản
39
2. Hiện thực hóa ca sử dụng - Góc nhìn các lớp tham gia (VOPCs)
2.1. Đăng ký
40
2.2. Đăng nhập
41
2.4. Đặt câu hỏi
42
2.5. Chỉnh sửa câu hỏi
43
2.6. Lọc câu hỏi trên hệ thống
44
2.7. Đánh giá câu hỏi
45
2.8. Trả lời
46
2.9. Theo dõi người dùng khác
47
2.11. Quản lý câu hỏi
48
2.12. Xử lý báo cáo
49
3. Ánh xạ lớp phân tích với các cơ chế phân tích
1 SignUpUI None
2 SignUpControl Distribution
4 LoginUI None
5 ForgetPasswordUI None
6 LoginControl Distribution
7 ProfileUI None
8 UserControl Distribution
9 CreateQuestionUI None
10 QuestionControl Distribution
12 QuestionUI None
13 UserUI None
15 VoteQuestionUI None
16 AnswerUI None
17 AnswerControl Distribution
19 ReportUI None
20 ReportControl Distribution
50
21 Report Persistency, Security
22 AdminUI None
51
PHẦN 5: CÁC PHẦN TỬ THIẾT KẾ
Tài liệu xác định các phần tử thiết kế
1. Ánh xạ lớp phân tích và lớp thiết kế
Với các lớp phân tích đã tìm ra được ở bước phân tích ca sử dụng, ta sẽ
thực hiện ánh xạ nhiều nhiều sang các lớp thiết kế. Danh sách các lớp phân tích
và ánh xạ tương ứng của chúng sang lớp thiết kế được liệt kê ở bảng dưới đây.
1 SignUpUI SignUpUI
2 LoginUI LoginUI
3 ForgetPasswordUI
4 ProfileUI ProfileUI
5 CreateQuestionUI CreateQuestionUI
6 QuestionUI QuestionUI
7 UserUI UserUI
8 VoteQuestionUI VoteQuestionUI
9 AnswerUI AnswerUI
10 ReportUI ReportUI
11 AdminUI AdminUI
12 SignUpControl SignUpControl
13 LoginControl LoginControl
14 UserControl UserControl
15 QuestionControl QuestionControl
16 AnswerControl AnswerControl
52
17 ReportControl ReportControl
18 User User
19 Question Question
20 Answer Answer
21 Report Report
22 RatingSystem RatingSystem
IRatingSystem
1 SignUpUI Presentation:UIComponent
2 LoginUI Presentation:UIComponent
3 ProfileUI Presentation:UIComponent
4 CreateQuestionUI Presentation:UIComponent
5 QuestionUI Presentation:UIComponent
6 UserUI Presentation:UIComponent
7 VoteQuestionUI Presentation:UIComponent
8 AnswerUI Presentation:UIComponent
9 ReportUI Presentation:UIComponent
10 AdminUI Presentation:UIComponent
53
12 LoginControl Bussiness Service: Authentication
54
3. Hệ thống con: RatingSystem
55
4. Các gói và quan hệ giữa chúng
4.1. Biểu đồ sự phụ thuộc giữa các gói
Sau khi tiến hành ánh xạ và tìm ra các phần tử thiết kế, kiến trúc hệ
thống có sự cập nhật như hình dưới đây.
56
4.2. Định nghĩa các gói
- UIComponent: Chứa các trang giao diện chính của ứng dụng.
- Utils: Các component, các hàm chức năng, các thành phần dùng lại khi viết
giao diện cho hệ thống.
- Authentication: kiểm tra, quản lý việc đăng ký, đăng nhập, lưu thông tin khi
tham gia hệ thống của người dùng,...
- Question Management: Quản lý các câu hỏi trên hệ thống và các tính năng
liên quan.
- User Management: Quản lý người dùng trên hệ thống.
- Rating: Giao diện ứng dụng để kết nối và sử dụng được hệ thống con Rating
System
- Rating System: Hệ thống con có chức năng đánh giá người dùng, câu hỏi,
câu trả lời trên hệ thống,...
- Data Model: Mô hình hóa các đối tượng được lưu trữ trong CSDL.
- Data Access: Mô tả cách thức tương tác với HQTCSDL và các thao tác với
dữ liệu
57
PHẦN 6: CƠ CHẾ THIẾT KẾ
Tài liệu xác định các cơ chế thiết kế
1. Mô tả các cơ chế phân tích
1 SignUpUI None
2 LoginUI None
3 ForgetPasswordUI None
4 ProfileUI None
5 CreateQuestionUI None
6 QuestionUI None
7 UserUI None
8 VoteQuestionUI None
9 AnswerUI None
10 ReportUI None
11 AdminUI None
12 SignUpControl Distribution
13 LoginControl Distribution
14 UserControl Distribution
15 QuestionControl Distribution
16 AnswerControl Distribution
17 ReportControl Distribution
58
19 Question Persistency, Security
59
PHẦN 7: KIẾN TRÚC THỰC THI
Tài liệu mô tả kiến trúc thực thi
1. Mô hình tiến trình
1.1. Đăng ký
60
1.2. Đăng nhập
61
1.3. Xem các câu hỏi
62
1.5. Đánh giá câu hỏi
63
PHẦN 8: SỰ PHÂN PHỐI
Tài liệu mô tả sự phân phối
1. Mô hình triển khai
Ta có mô hình triển khai (deployment model) của hệ thống như hình vẽ
dưới đây.
- Hệ thống được triển khai dưới dạng mô hình Client/Server, cụ thể là mô hình 3 tầng
với các node như mô tả dưới đây
+ Browser: Hệ thống UET Ask được xây dựng dưới dạng một ứng dụng web
nên gười dùng sẽ tương tác với hệ thống qua các trình duyệt trên các thiết bị
thông minh như điện thoại, máy tính, máy tính bảng,… Ở đây sẽ chứa thành
phần hiển thị và là giao diện tương tác giữa hệ thống và người dùng
+ UET Ask Server: chứa các nghiệp vụ logic chính của hệ thống. Các yêu cầu
được gửi đến từ browser sẽ được tiếp nhận và xử lý bởi UET Ask Server
+ Rating System: Một hệ thống con được tách riêng và chạy trong cùng một
mạng LAN với UET Ask Server.
+ Database Server: Nơi lưu trữ các dữ liệu của hệ thống và các xử lý liên quan
đến dữ liệu.
64
2. Đặt các tiến trình vào mô hình mạng
Với các tiến trình mà ta đã xác định được ở tài liệu “Mô tả kiến trúc
thực thi”, ta sẽ tiến hành phân phối chúng vào các node trong mô hình triển
khai mà chúng ta đã xây dựng được ở trên.
65
PHẦN 9: THIẾT KẾ CA SỬ DỤNG
Tài liệu thiết kế ca sử dụng
1. Đăng ký
1.1. Biểu đồ tuần tự
66
1.2. Biểu đồ cộng tác
67
1.3. Góc nhìn các lớp tham gia
68
2. Đăng nhập
2.1. Biểu đồ tuần tự
69
2.2. Biểu đồ cộng tác
70
2.3. Góc nhìn các lớp tham gia
71
3. Chỉnh sửa profile
3.1. Biểu đồ tuần tự
72
3.2. Biểu đồ cộng tác
73
3.3. Góc nhìn các lớp tham gia
74
4. Đặt câu hỏi
4.1. Biểu đồ tuần tự
75
4.2. Biểu đồ cộng tác
76
4.3. Góc nhìn các lớp tham gia
77
5. Chỉnh sửa câu hỏi
5.1. Biểu đồ tuần tự
78
5.2. Biểu đồ cộng tác
79
5.3. Góc nhìn các lớp tham gia
80
6. Lọc câu hỏi trên hệ thống
6.1. Biểu đồ tuần tự
81
6.2. Biểu đồ cộng tác
82
6.3. Góc nhìn các lớp tham gia
83
7. Đánh giá câu hỏi
7.1. Biểu đồ tuần tự
84
7.2. Biểu đồ cộng tác
85
7.3. Góc nhìn các lớp tham gia
86
8. Trả lời
8.1. Biểu đồ tuần tự
87
8.2. Biểu đồ cộng tác
88
8.3. Góc nhìn các lớp tham gia
89
9. Theo dõi người dùng khác
9.1. Biểu đồ tuần tự
90
10. Báo cáo vi phạm
10.1. Biểu đồ tuần tự
91
10.2. Biểu đồ cộng tác
92
10.3. Góc nhìn các lớp tham gia
93
11. Quản lý câu hỏi
11.1. Biểu đồ tuần tự
94
11.3. Góc nhìn các lớp tham gia
95
12. Xử lý báo cáo
12.1. Biểu đồ tuần tự
96
12.2. Biểu đồ cộng tác
97
12.3. Góc nhìn các lớp tham gia
98
PHẦN 10: THIẾT KẾ HỆ THỐNG CON
Tài liệu thiết kế hệ thống con
1. Giới thiệu
Tài liệu này nhằm mô tả hoạt động bên trong của các hệ thống con được
sử dụng trong hệ thống. Ở phần thiết kế ca sử dụng, những hoạt động phía
trong của hệ thống con đang tạm thời không được bàn đến. Vì vậy, tài liệu này
sẽ cung cấp cái nhìn chi tiết hơn về hệ thống con.
Trong hệ thống hỏi đáp UET Ask, chỉ có một hệ thống con được sử
dụng, đó là Rating System. Hệ thống được sử dụng để hỗ trợ trong việc quản lý,
đánh giá upvote, downvote và mức độ tin cậy của các câu hỏi, câu trả lời trên
hệ thống.
2. Hệ thống con: Rating System
2.1. Đánh giá câu hỏi
2.1.1. Giới thiệu
Một chức năng quan trọng của hệ thống con là chúng sẽ được gọi đến
khi người dùng thực hiện một hành động làm thay đổi upvote, downvote hiện
tại của một câu hỏi. Khi đó, cần thực hiện thay đổi và tính toán điểm kinh
nghiệm tương ứng cho câu hỏi đó.
2.1.2. Biểu đồ tuần tự
99
2.1.3. Biểu đồ cộng tác
100
2.2.3. Biểu đồ cộng tác
101
PHẦN 11: THIẾT KẾ LỚP
Tài liệu thiết kế lớp
102
103
104
2. Xác định các phụ thuộc và liên kết
2.1. Đăng nhập, đăng ký
105
2.2. Quản lý các thao tác của người dùng
106
2.4. Quản lý các thao tác với câu hỏi
107
2.5. Hệ thống đánh giá và báo cáo
108
PHẦN 12: THIẾT KẾ CƠ SỞ DỮ LIỆU
Tài liệu thiết kế cơ sở dữ liệu
1. Lược đồ cơ sở dữ liệu
Lược đồ các lớp được lưu trữ trong cơ sở dữ liệu của hệ thống sẽ được
biểu thị như hình dưới đây:
109
2. Chi tiết các bảng trong cơ sở dữ liệu
2.1. Bảng Users
110
ước là một con số.
111
reportId Khóa chính, tự động tăng, id INT(11)
của báo cáo
112
id Khóa chính, tự động tăng, id INT(11)
của các hàng
113
3. Xác định các trạng thái
Ta có biểu đồ trạng thái của câu hỏi với các trạng thái được mô tả như dưới đây:
- New: Khi tạo một câu hỏi thành công, một câu hỏi mới sẽ được tạo ra, khi đó nó sẽ
có trạng thái là New.
- Answered: Khi đã có ít nhất một câu trả lời tương ứng với câu hỏi đó
- Updated: Khi có các sự thay đổi liên quan đến câu hỏi so với ban đầu
- Closed: Khi câu hỏi đó sẽ tìm được câu trả lời phù hợp
114