CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ HỆ THỐNG
3.2. Mô hình hóa yêu cầu
3.2.1. Sơ đồ phân rã chức năng
Ảnh 1: Sơ đồ phân rã chức năng - 1
Ảnh 2: Sơ đồ phân rã chức năng - 2
3.2.2. Lược đồ usecase tổng quan
Ảnh 3: Lược đồ usecase tổng quan của User
Ảnh 4: Lược đồ usecase tổng quan của Guest
Ảnh 5: Lược đồ usecase tổng quan của Admin
3.2.2.1. Danh sách các Actor
STT Actor Ý nghĩa
1 Admin Người dùng đã đăng nhập
vào hệ thống với quyền của người quản trị
2 User Người dùng đã đăng nhập
vào hệ thống
3 Guest Khách: người chưa đăng
nhập vào hệ thống Bảng 1: Danh sách các Actor
3.2.2.2. Danh sách các Use Case chính
STT Use-Case Ý nghĩa
1 Đăng ký tài khoản Tạo tài khoản mới cho
người dùng
2 Đăng nhập Đăng nhập vào hệ thống
3 Đăng xuất Đăng xuất khỏi hệ thống
4 Quên mật khẩu Người dùng quên mật
khẩu sử dụng chức năng này để gửi link đặt lại mật khẩu qua mail.
5 Đặt lại mật khẩu Sử dụng link đăng lại mật
khẩu ở mail để đặt lại mật khẩu mới.
6 Xem danh sách bạn bè Xem những bạn bè đã kết
bạn
7 Gửi lời mời kết bạn Gửi lời mời kết bạn đến
với người dùng khác
8 Hủy yêu cầu kết bạn Hủy yêu cầu kết bạn đã
gửi đi
9 Chấp nhập lời mời kết bạn Chấp nhận yêu cầu kết bạn gửi đến
10 Gửi tin nhắn Gửi tin nhắn trong cuộc
trò chuyện
11 Xóa tin nhắn Xóa tin nhắn của chính
chủ gửi trong cuộc trò chuyện
12 Xem tin nhắn trong cuộc
trò chuyện
Xem những tin nhắn trong cuộc trò chuyện đã tham
13 Thay đổi thông tin tài khoản
Thay đổi những thông tin cá nhân của người dùng
14 Thay đổi mật khẩu Đổi mật khẩu
15 Tạo cuộc trò chuyện Tạo cuộc trò chuyện mới
16 Thay đổi avatar cuộc trò
chuyện
Đổi ảnh đại diện của cuộc trò chuyện
17 Thêm người dùng vào
cuộc trò chyện
Thêm người dùng mới vào cuộc trò chuyện
18 Xóa người dùng khỏi
cuộc trò chuyện
Xóa người dùng khỏi cuộc trò chuyện
19 Đổi biệt danh người dùng
trong cuộc trò chuyện
Thay đổi biệt danh của người dùng trong cuộc trò chuyện
20 Cập nhật quyền cho thành
viên trong cuộc trò chuyện
Thay đổi quyền của người dùng trong cuộc trò chuyện (Admin/ thành viên)
21 Xem bình luận trong bài
viết
Xem những bình luận trong bài viết
22 Thêm bình luận vào bài
viết
Đăng bình luận mới vào bài viết
23 Sửa bình luận Sửa bình luận đã đăng
24 Xóa bình luận Xóa bình luận của chính
chủ
25 Xem bài viết Xem những bài viết
26 Sửa bài viết Chỉnh sửa bài viết đã đăng
27 Xóa bài viết Xóa bài viết đã đăng
28 Đăng bài viết Đăng bài viết mới
29 Tạo album Tạo album mới
30 Xóa album Xóa album đã tạo
31 Sửa album Sửa album đã tạo
32 Thêm ảnh vào album Thêm ảnh mới vào album
đã tạo
33 Chỉnh mô tả hình ảnh
trong album
Chỉnh sửa lại mô tả hình ảnh trong album
34 Xem các hình ảnh trong
album
Xem các hình ảnh trong album
35 Xóa ảnh trong album Xóa hình ảnh trong album
36 Xem album Xem album đã tạo
37 Nhận thông báo Nhận thông báo khi người
dùng khác tương tác với người dùng
38 Xem thông báo Xem thông báo và có thể
truy cập đối nội dung được thông báo
39 Xóa thông báo Xóa những thông báo đã
đọc hoặc muốn xóa Bảng 2: Bảng danh sách các UseCase chính
3.2.3. Lược đồ usecase chi tiết
Ảnh 6: Usecase quản lý thông báo
Ảnh 7: Usecase quản lý album
Ảnh 9: Usecase quản lý tin nhắn
Ảnh 10: Usecase quản lý bình luận
Ảnh 11: Usecase quản lý bài viết
Ảnh 12: Usecase quản lý tài khoản
Ảnh 13: Usecase quản lý bạn bè
Ảnh 14: Usecase tìm kiếm
3.2.4. Phân tích Use Case và Sequence 3.2.4.1. Đăng ký tài khoản
Ảnh 15: Sequence - Đăng ký tài khoản
Name Register – Đăng ký tài khoản
Brief description Khách (Guest) truy cập tạo mới tài khoản.
Actor(s) Guest
Pre-conditions Không
Post-conditions
− Nếu đăng ký thành công: Người dùng được tạo mới tài khoản, thông tin cá nhân được lưu vào CSDL.
− Nếu đăng ký không thành công: Thông báo không tạo được tài khoản, buộc người dùng nhập lại thông tin cho chính xác.
Flow of events
Basic flow Use case bắt đầu khi khách truy cập vào trang tạo tài khoản.
1. Khách điền vào các thông tin mà hệ thống yêu cầu và nhấn ĐĂNG KÝ.
2. Hệ thống xác thực thông tin theo quy định.
3. Hệ thống tạo mới tài khoản và lưu thông tin vào CSDL.
4. Hệ thống thông báo tạo tài khoản thành công và chuyển đến trang đăng nhập.
Alternative flow
Nếu người dùng nhập thiếu thông tin, trùng email hoặc mật khẩu không đúng quy định, khi đó hệ thống sẽ:
1. Hệ thống mô tả lý do không thể tạo mới tài khoản.
2. Hệ thống hiển thị lại biểu mẫu cho người dùng chỉnh sửa thông tin đăng ký.
3. Người dùng nhập lại thông tin được yêu cầu, Basic Flow khi đó sẽ tiếp tục tại bước 1.
Extension point Không có
Bảng 3: Mô tả UseCase Register – Đăng ký tài khoản
3.2.4.2. Đăng nhập
Ảnh 16: Sequence – Đăng nhập
Name Login – Đăng nhập.
Brief description Người dùng đăng nhập vào hệ thống
Actor(s) Guest, Admin
Pre-conditions Actors đã có tài khoản trong hệ thống
Post-conditions
− Sau khi đăng nhập: người dùng được xác thực và vào trang được chỉ định tùy theo từng chức vụ.
− Đăng nhập thất bại: thông báo lỗi đăng nhập và yêu cầu đăng nhập lại.
Flow of events
Basic flow (Thành công)
Use case được kích hoạt khi người dùng cần đăng nhập vào hệ thống hoặc xác thực danh tính để sử dụng các chức năng của hệ thống:
1. Người nhập tài khoản và mật khẩu vào các ô input hoặc chọn Đăng nhập bằng tài khoản Google hoặc Đăng nhập bằng tài khoản GitHub.
2. Hệ thống kiểm tra input và xác thực.
3. Hệ thống thông báo xác thực thành công.
Alternative flow
(Thất bại) Khi xác thực thất bại hoặc xảy ra lỗi: hệ thống thông báo lỗi sai.
Extension point
Bảng 4: Mô tả UseCase Login- Đăng nhập
3.2.4.3. Đăng xuất
Ảnh 17: Sequence – Đăng xuất
Name Logout – Đăng xuất
Brief description Đăng xuất tài khoản người dùng khỏi hệ thống.
Actor(s) User, Admin
Pre-conditions Actors đã đăng nhập thành công vào hệ thống.
Post-conditions Tài khoản được đăng xuất thành công ra khỏi hệ thống.
Flow of events Basic flow (Thành công)
1. Người dùng bấm vào Đăng xuất 2. Chuyển qua trang đăng nhập Alternative flow
(Thất bại) Extension point
Bảng 5: Mô tả UseCase Logout- Đăng xuất
3.2.4.4. Quên mật khẩu và đặt lại mật khẩu
Ảnh 18: Sequence – Quên và đặt lại mật khẩu
Name Gửi link quên mật khẩu và đặt lại mật khẩu
Brief description Cấp lại mật khẩu cho người dùng qua email khi người dùng quên mật khẩu.
Actor(s) User
Pre-conditions Actors đã có tài khoản trong hệ thống.
Post-conditions Tài khoản của người dùng được cập nhật mật khẩu mới.
Flow of events
Basic flow (Thành công)
1. Người dùng chọn quên mật khẩu ở trang đăng nhập 2. Người dùng nhập email của mình
3. Người dùng chọn nút “Lấy lại mật khẩu”
4. Hệ thống kiểm tra email và gửi mail đặt lại mật khẩu đến email của người dùng
5. Người dùng mở mail đặt lại mật khẩu và chọn nút đặt lại mật khẩu
6. Người dùng được chuyển đến trang đặt lại mật khẩu 7. Người dùng nhập mật khẩu mới và chọn “Đặt lại mật khẩu”
8. Đặt lại mật khẩu thành công, người dùng được chuyển về trang đăng nhập
Alternative flow (Thất bại)
1. Hệ thống kiểm tra email thất bại 2. Hệ thống hiện thông báo lỗi 3. Người dùng nhập lại email
Use Case quay lại bước 3 của Basic flow Extension point
Bảng 6: Mô tả UseCase - Gửi link quên mật khẩu và đặt lại mật khẩu
3.2.4.5. Tạo tài khoản cho admin
Ảnh 19: Sequence – Tạo tài khoản cho admin
Name Tạo tài khoản cho người quản trị (Admin)
Brief description Người quản trị (Admin) truy cập tạo tài khoản mới cho người quản trị khác.
Actor(s) Admin
Pre-conditions Đăng nhập vào hệ thống với tư cách là người quản trị (Admin)
Post-conditions
− Nếu tạo tài khoản thành công: Người quản trị được tạo tài khoản mới, thông tin cá nhân được lưu vào CSDL.
− Nếu tạo tài khoản không thành công: Thông báo không tạo được tài khoản, buộc người quản trị nhập lại thông tin cho chính xác.
Flow of events
Basic flow
Use case bắt đầu khi người quản trị truy cập vào hệ thống và sử dụng chức năng tạo tài khoản mới cho người quản trị.
1. Người quản trị điền vào các thông tin mà hệ thống yêu cầu rồi nhấn TẠO TÀI KHOẢN.
2. Hệ thống xác thực thông tin theo quy định.
3. Hệ thống tạo mới tài khoản và lưu thông tin vào CSDL.
4. Hệ thống thông báo tạo tài khoản thành công.
Alternative flow
Nếu người quản trị nhập thiếu thông tin, trùng email hoặc mật khẩu không đúng quy định, khi đó hệ thống sẽ:
1. Hệ thống mô tả lý do không thể tạo mới tài khoản.
2. Hệ thống hiển thị lại biểu mẫu cho người quản trị chỉnh sửa thông tin đăng ký.
3. Người quản trị nhập lại thông tin được yêu cầu, Basic Flow khi đó sẽ tiếp tục tại bước 1.
Extension point
Bảng 7: Mô tả UseCase - Tạo tài khoản cho người quản trị (Admin)
3.2.4.6. Quản lý bạn bè
Ảnh 20: Sequence – Quản lý bạn bè
Bảng 8: Mô tả UseCase – Xem danh sách bạn bè Name Xem danh sách bạn bè
Brief description Người dùng (User) truy cập vào danh sách bạn bè của họ.
Actor(s) User
Pre-conditions Đăng nhập vào hệ thống với tư cách là người dùng (User) Post-conditions Hệ thống trả về danh sách bạn bè của người dùng (User) Flow of events
Basic flow
Use case bắt đầu khi người dùng chọn hiển thị danh sách bạn bè:
1. Người dùng chọn “bạn bè” trên thanh navigation 2. Hệ thống tìm kiếm và trả về danh sách bạn bè.
Alternative flow
Extension point Không có
Name Gửi lời mời kết bạn
Brief description Người dùng gửi lời mời kết bạn đến người dùng khác chưa phải là bạn bè
Actor(s) User
Pre-conditions Người dùng đăng nhập thành công với tư cách là User
Post-conditions
Hệ thống thông báo gửi lời mời kết bạn thành công, đồng thời gửi thông báo đến người dùng được đề nghị kết bạn có lời mời kết bạn mới
Flow of events
Basic flow
Use case bắt đầu khi người dùng chọn chức năng gửi lời mời kết bạn.
1. Người dùng chọn mục “bạn bè” trên thanh navigation
2. Tiếp tục chọn mục gợi ý kết bạn
3. Chọn nút kết bạn tại người dùng mong muốn được kết bạn
4. Hệ thống chuyển nút kết bạn sang “hủy yêu cầu”
5. Dữ liệu được lưu vào cơ sở dữ liệu Alternative flow
Extension point Không có
Bảng 9: Mô tả UseCase gửi lời mời kết bạn
Name Hủy yêu cầu kết bạn
Brief description Người dùng hủy yêu cầu kết bạn đến người dùng khác chưa phải là bạn bè
Actor(s) User
Pre-conditions Người dùng đăng nhập thành công và đã gửi lời mời kết
Post-conditions Hệ thống thông báo hủy lời mời kết bạn thành công Flow of events
Basic flow
Use case bắt đầu khi người dùng chọn chức năng hủy lời mời kết bạn.
1. Người dùng chọn mục “bạn bè” trên thanh navigation
2. Tiếp tục chọn mục gợi ý kết bạn
3. Tại người dùng muốn hủy lời mời kết bạn, chọn nút “hủy lời mời kết bạn”
4. Hệ thống chuyển trạng thái của nút “hủy lời mời kết bạn” bạn sang “kết bạn”
Thay đổi được lưu vào cơ sở dữ liệu Alternative flow
Extension point Không có
Bảng 10: Mô tả UseCase- Hủy yêu cầu kết bạn
Name Chấp nhận lời mời kết bạn
Brief description Người dùng chấp nhận yêu cầu kết bạn từ người dùng khác
Actor(s) User
Pre-conditions Người dùng đăng nhập thành công
Post-conditions Hệ thống thông báo chấp nhận yêu cầu kết bạn thành công Flow of events
Basic flow
Use case bắt đầu khi người dùng chọn chức năng chấp nhận lời mời kết bạn
1. Người dùng chọn mục “bạn bè” trên thanh navigation
2. Tiếp tục chọn mục “lời mời kết bạn”
3. Tại người dùng muốn chấp nhận yêu cầu kết bạn, chọn nút “đồng ý"
4. Hệ thống thông báo chấp nhận lời mời kết bạn thành công
5. Thay đổi được lưu vào cơ sở dữ liệu Alternative flow
Extension point Không có
Bảng 11: Mô tả UseCase – Chấp nhận lời mời kết bạn
3.2.4.7. Quản lý tin nhắn
Ảnh 21: Sequence – Quản lý tin nhắn
Name Gửi tin nhắn
Brief description Người dùng gửi tin nhắn đến người dùng khác đã được kết bạn
Actor(s) User
Pre-conditions Người dùng đăng nhập thành công
Post-conditions Hệ thống lưu dữ liệu và cập nhật lại tin nhắn trong cuộc trò chuyện
Flow of events
Basic flow
Use case bắt đầu khi người dùng chọn chức năng gửi tin nhắn
1. Người dùng chọn mục “tin nhắn” trên thanh navigation
2. Chọn người dùng muốn gửi tin nhắn
3. Hệ thống lấy dữ liệu các tin nhắn trước đó và hiển thị trên cửa số cuộc trò chuyện
4. Người dùng nhập nội dung tin nhắn cần gửi sau đó chọn nút “gửi” để gửi tin đi
5. Hệ thống lưu lại tin nhắn và cập nhật lại danh sách tin nhắn của cuộc trò chuyện
Alternative flow
Ở bước 5, nếu hệ thống lưu tin nhắn thất bại. Hệ thống sẽ thông báo gửi tin nhắn thất bại bằng cách tô đỏ tin nhắn vừa nhập, đồng thời hiển dị dòng chữ “gửi tin nhắn thất bại”
Extension point Không có
Bảng 12: Mô tả UseCase- Gửi tin nhắn
Name Xem tin nhắn trong cuộc trò chuyện Brief description Người dùng xem nhắn trong cuộc trò chuyện
Actor(s) User
Pre-conditions Người dùng đăng nhập thành công
Post-conditions Hệ thống lấy danh sách tin nhắn đã được gửi trong cuộc trò chuyện và hiển thị lên cho người dùng
Flow of events
Basic flow
Use case bắt đầu khi người dùng chọn chức năng xem tin nhắn
1. Người dùng chọn mục “tin nhắn” trên thanh navigation
2. Chọn cuộc trò chuyện muốn xem tin nhắn
3. Hệ thống lấy dữ liệu các tin nhắn trước đó và hiển thị trên cửa số cuộc trò chuyện
Alternative flow Ở bước 3, nếu hệ thống lấy dữ liệu thất bại, hệ thống sẽ thông bằng khung thông báo “có lỗi xảy ra”
Extension point Không có
Bảng 13: Mô tả UseCase- Xem tin nhắn trong cuộc trò chuyện
Name Xóa tin nhắn
Brief description Người dùng xóa tin nhắn trong cuộc trò chuyện đã được gửi trước đó.
Actor(s) User
Pre-conditions Người dùng đăng nhập thành công
Post-conditions Hệ thống lưu dữ liệu và thông báo đã xóa tin nhắn thành công trong cuộc trò chuyện
Flow of events Basic flow
Use case bắt đầu khi người dùng chọn chức năng xóa tin nhắn
1. Người dùng chọn mục “tin nhắn” trên thanh
2. Chọn người dùng muốn gửi tin nhắn
3. Hệ thống lấy dữ liệu các tin nhắn trước đó và hiển thị trên cửa số cuộc trò chuyện
4. Người dùng focus vào nội dung tin nhắn cần xóa để hiển thị nút “xóa”
5. Chọn “xóa” để xóa tin nhắn
6. Hệ thống lưu lại các thay đổi và thông báo xóa cuộc trò chuyện thành công bằng cách tại vị trí tin nhắn vừa xóa, hiển thị khung tin “tin nhắn đã bị xóa”
Alternative flow
Ở bước 6, nếu hệ thống xóa tin nhắn thất bại. Hệ thống sẽ thông báo gửi tin nhắn thất bại bằng cách vẫn hiển thị tin nhắn, không hiển thị khung tin “tin nhắn đã bị xóa”
Extension point Không có
Bảng 14: Mô tả UseCase – Xóa tin nhắn 3.2.4.8. Quản lý tài khoản
Ảnh 22: Sequence – Quản lý tài khoản
Name Thay đổi thông tin tài khoản
Brief description Người dùng thay đổi thông tin cá nhân
Actor(s) User
Pre-conditions Người dùng đăng nhập thành công
Post-conditions Hệ thống lưu dữ liệu và thông báo đã thay đổi thông tin thành công
Flow of events
Basic flow
Use case bắt đầu khi người dùng nhấn thay đổi thông tin 1. Người dùng chọn mục “thông tin” trên thanh
navigation
2. Người dùng nhập thông tin thay đổi 3. Người dùng nhấn “Lưu lại thông tin”
Alternative flow Khi người dùng nhập sai thông tin hệ thống sẽ thông báo lỗi và Usecase quay lại Bước 2
Extension point Không có
Bảng 15: Mô tả UseCase -Thay đổi thông tin tài khoản
Name Thay đổi mật khẩu
Brief description Người dùng thay đổi thông tin mật khẩu
Actor(s) User
Pre-conditions Người dùng đăng nhập thành công
Post-conditions Hệ thống lưu dữ liệu và thông báo đã thay đổi mật khẩu thành công
Flow of events
Basic flow
Use case bắt đầu khi người dùng nhấn thay đổi mật khẩu 1. Người dùng chọn mục “Thay đổi mật khẩu” trên
thanh navigation
2. Người dùng thông tin mật khẩu (mật khẩu cũ, mật khẩu mới, xác nhận mật khẩu)
3. Người dùng nhấn “Thay đổi mật khẩu”
Alternative flow Khi người dùng nhập sai thông tin mật khẩu hệ thống sẽ thông báo lỗi và Usecase quay lại Bước 2
Extension point Không có
Bảng 16: Mô tả UseCase – Thay đổi mật khẩu
3.2.4.9. Tìm kiếm
Ảnh 23: Sequence – Tìm kiếm
Name Tìm kiếm
Brief description Người dùng tìm kiếm người dùng khác hoặc bài viết
Actor(s) User
Pre-conditions Người dùng đăng nhập thành công
Post-conditions Hệ thống truy xuất dữ liệu và trả kết quả tìm kiếm ra màn hình
Flow of events
Basic flow Use case bắt đầu khi người dùng nhấn vào icon “Tìm kiếm” trên thanh Header