ĐỒ ÁN MÔN HỌC CÔNG NGHỆ PHẦN MỀM

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 36

HỌC VIỆN KỸ THUẬT MẬT MÃ

KHOA CÔNG NGHỆ THÔNG TIN VÀ AN TOÀN THÔNG TIN

ĐỒ ÁN MÔN HỌC
CÔNG NGHỆ PHẦN MỀM
ĐỀ TÀI:

WEB CHAT
Sinh viên thực hiện: Nhóm 6

1. CT06N0132 Đỗ Hoàng Long


2. CT06N0133 Ngô Duy Thành Long
3. CT06N0137 Lê Trọng Nghĩa
4. CT06N0136 Bùi Văn Hợp Nam
5. CT06N0154 Trương Hoàng Thịnh
TP. HCM, tháng 11/2023

BẢNG PHÂN CÔNG NHIỆM VỤ CHO CÁC THÀNH VIÊN

NHÓM 6

CÔNG VIỆC ĐƯỢC ĐÁNH


STT MSSV HỌ TÊN
GIAO GIÁ

1 CT06N0132 Đỗ Hoàng Long Code+demo A

Tìm hiểu các khái


2 CT06N0133 Ngô Duy Thành Long A
niệm

3 CT06N0137 Lê Trọng Nghĩa Vẽ sơ đồ B

4 CT06N0136 Bùi Văn Hợp Nam Vẽ sơ đồ B

5 CT06N0154 Nguyễn Hoàng Thịnh Vẽ sơ đồ B


MỤC LỤC

Phần 1. Tổng quan về Web Chat.

1.1. GIỚI THIỆU VỀ WEB CHAT

1.2. MỤC TIÊU VÀ PHẠM VI

1.3. BÀI TOÁN

1.4. KẾT CHƯƠNG

Phần 2. KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU

2.1. KHẢO SÁT HIỆN TRẠNG

2.2. YÊU CẦU CỦA PHẦN MỀM

2.3. CÁC MÔ HÌNH ĐẶC TẢ YÊU CẦU

2.4. KẾT CHƯƠNG

Phần 3. PHÂN TÍCH PHẦN MỀM

3.1. GIỚI THIỆU

3.2. PHÂN TÍCH DỮ LIỆU

3.3. PHÂN TÍCH XỬ LÝ

3.4. KẾT CHƯƠNG

PHẦN 4. THIẾT KẾ PHẦN MỀM

4.1.GIỚI THIỆU

4.2. THIẾT KẾ DỮ LIỆU

4.3. THIẾT KẾ PHẦN MỀM

4.4. TÔNG KẾT CHƯƠNG


PHẦN 1. TỔNG QUAN

1.1. GIỚI THIỆU

 Web chat là công nghệ cho phép giao tiếp trực tuyến thông qua giao diện web mà
không cần cài đặt phần mềm. Nó có giao diện trực quan và cho phép gửi/nhận tin
nhắn trong thời gian thực. Nó có thể được sử dụng trong nhiều ngữ cảnh khác
nhau như trò chuyện cá nhân hoặc hỗ trợ khách hàng trực tuyến

 Với sự phát triền của công nghệ và sự cần thiết trong giao tiếp, Web chat nổi lên
như là một công nghệ quan trọng và cần thiết trong việc giao tiếp và tương tác
trực tuyến. Nó mang lại nhiều lợi ích như giao tiếp nhanh chóng và tiện lợi, tiết
kiệm thời gian và tiền bạc, và dễ dàng truy cập. Web chat cũng đóng vai trò quan
trọng trong việc hỗ trợ khách hàng, cho phép doanh nghiệp tương tác và giải quyết
vấn đề một cách linh hoạt và hiệu quả. Với web chat, người dùng có thể tương tác
từ bất kỳ địa điểm nào có kết nối internet, đảm bảo tính linh hoạt và tiện ích cho
việc giao tiếp trực tuyến.

1.2. MỤC TIÊU VÀ PHẠM VI ĐỀ TÀI

 Mục tiêu: cung cấp giao tiếp nhanh chóng, tiện lợi và hiệu quả cho người dùng,
đồng thời tạo ra một kênh giao tiếp thời gian thực để tương tác và trao đổi thông
tin.
 Phạm vi giới hạn của web chat có thể bao gồm các chức năng cơ bản như gửi và
nhận tin nhắn, tìm kiếm lịch sử tin nhắn và chia sẻ tệp tin. Ngoài ra, phạm vi cũng
có thể mở rộng để bao gồm tính năng như gửi hình ảnh, video, tạo nhóm chat và
tích hợp trí tuệ nhân tạo để cung cấp hỗ trợ tự động.

1.3. PHÁT BIỂU BÀI TOÁN

 Nghiệp vụ: Trang web chat này tập trung vào việc tạo ra một môi trường trò
chuyện cá nhân giữa người dùng. Người dùng có thể tạo tài khoản và kết nối với
bạn bè, gia đình hoặc người lạ để trò chuyện, chia sẻ thông tin và tương tác thông
qua tin nhắn.
 Chức năng: Trang web chat cho phép người dùng gửi và nhận tin nhắn với người
dùng khác. Nó có thể cung cấp tính năng như gửi hình ảnh, video, biểu tượng cảm
xúc, tạo nhóm trò chuyện và lưu trữ lịch sử trò chuyện. Ngoài ra, nó có thể hỗ trợ
tính năng bảo mật và quyền riêng tư để bảo vệ thông tin cá nhân của người dùng.

1.4 KẾT CHƯƠNG

Chương 1 đã mang lại những kết quả sau:

1. Đã nghiên cứu và hiểu rõ về các khía cạnh cơ bản của web chat và vai trò của
nó trong việc giao tiếp và tương tác trực tuyến.

2. Đã phân tích mục tiêu của đề tài và xác định phạm vi giới hạn để phát triển web
chat.

3. Đã xác định các yếu tố quan trọng trong việc xây dựng một web chat hiệu quả,
bao gồm tính ổn định, giao diện người dùng thân thiện, tính năng giao tiếp thời
gian thực và bảo mật.

Chương 2 sẽ tiếp tục với nội dung: Khảo sát hiện trạng và xác định yêu cầu của 1
web chat cơ bản.
PHẦN 2. KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU

2. 1. KHẢO SÁT HIỆN TRẠNG

 Đề tài web chat bạn bè tập trung vào phát triển một hệ thống web chat dành
riêng cho việc giao tiếp và trò chuyện với bạn bè. Hệ thống này nhằm cung cấp
một nền tảng trực tuyến để bạn và bạn bè có thể tương tác, chia sẻ thông tin và
duy trì liên lạc. Hệ thống web chat bạn bè được thiết kế với giao diện đơn giản
và thân thiện, cho phép bạn gửi và nhận tin nhắn với bạn bè của mình trong thời
gian thực. Hệ thống web chat bạn bè cũng có thể tích hợp các tính năng bổ sung
như biểu tượng cảm xúc, gửi hình ảnh, tương tác âm thanh hoặc video, tạo
nhóm.
 .Trình bày các biểu mẫu thu thập được trong quá trình khảo sát.
 Quy trình nghiệp vụ:
o Người dùng:
 Gửi/nhận tin nhắn: Khi người dùng gửi tin nhắn hệ thống sẽ nhận
dữ liệu tin nhắn và gửi cho bên nhận, tin nhắn sẽ hiển thị cho bên
nhận trong mục nhắn tin.
 Gửi/ nhận/ từ chối lời mời kết bạn: khi người dùng gửi/ nhận/ từ
chối lời mời kết bạn thì hệ thống sẽ xử lý hành động của người
dùng và đưa ra kết quả phù hợp cho từng hành động.
 Hủy kết bạn với người dùng khác: khi người dùng ấn nút hủy kết
bạn thì hệ thống sẽ xóa người đó ra khỏi danh sách bạn bè của
người hủy.
 Tạo nhóm chat: khi người dùng sử dụng chức năng tạo nhóm chat
thì hệ thống sẽ yêu cầu người dùng nhập tên và tạo 1 nhóm chat.
o Database:
 Xử lý tin nhắn.
 Xử lý kết bạn.
 Xử lý danh sách gợi ý kết bạn.

2.2. YÊU CẦU CỦA PHẦN MỀM

Yêu cầu chức năng:

o + Đăng nhập và đăng ký người dùng: Hệ thống cần cho phép người dùng
đăng nhập và đăng ký tài khoản để sử dụng web chat.
o + Gửi và nhận tin nhắn: Người dùng cần có khả năng gửi và nhận tin
nhắn trong thời gian thực với các người dùng khác trên nền tảng web
chat.
o + Tạo và quản lý cuộc trò chuyện: Hệ thống cần hỗ trợ người dùng tạo
và quản lý các cuộc trò chuyện cá nhân hoặc nhóm, cho phép thêm hoặc
loại bỏ thành viên, đổi tên cuộc trò chuyện và quản lý quyền truy cập.
o + Truy cập vào lịch sử trò chuyện: Người dùng cần có khả năng xem lại
lịch sử trò chuyện trước đó.
o + Gửi tệp tin và hình ảnh: Hệ thống cần hỗ trợ người dùng gửi và nhận
tệp tin và hình ảnh trong cuộc trò chuyện.
o + Biểu tượng cảm xúc: Hệ thống nên cung cấp tùy chọn biểu tượng cảm
xúc để người dùng có thể thể hiện cảm xúc và tương tác thông qua biểu
tượng.
o + Bảo mật và quyền riêng tư: Hệ thống cần bảo vệ thông tin người dùng
và đảm bảo tính riêng tư của cuộc trò chuyện.
o + Tích hợp các tính năng bổ sung: Tùy theo yêu cầu cụ thể, hệ thống
web chat cũng có thể tích hợp các tính năng bổ sung như gọi video,
tương tác âm thanh, chia sẻ vị trí, danh sách bạn bè, hoạt động chung và
nhiều hơn nữa.

 Yêu cầu phi chức năng:

o + Giao diện người dùng thân thiện: Web chat nên có giao diện đơn giản,
dễ sử dụng và hấp dẫn để thu hút người dùng.
o + Bảo mật: Bảo mật là một yếu tố quan trọng trong web chat. Nó nên
cung cấp các biện pháp bảo mật như mã hóa dữ liệu và xác thực người
dùng để đảm bảo an toàn thông tin cá nhân và tin nhắn
o + Tích hợp với các dịch vụ bên ngoài: Web chat có thể tích hợp với các
dịch vụ bên ngoài như cơ sở dữ liệu người dùng, hệ thống quản lý tài
khoản, hoặc các ứng dụng khác để cung cấp tính năng bổ sung và tăng
khả năng tương tác
o + Kiểm soát truy cập và quyền hạn: Cung cấp khả năng quản lý truy cập
và quyền hạn để quản lý người dùng và vai trò của họ trong web chat
o + Ghi lại lịch sử trò chuyện: Web chat nên có khả năng ghi lại lịch sử trò
chuyện để người dùng có thể xem lại các cuộc trò chuyện trước đó
o + Tích hợp với tính năng chia sẻ tệp tin và hình ảnh: Cho phép người
dùng chia sẻ tệp tin và hình ảnh trong quá trình trò chuyện

 Kiến trúc hệ thống

o + Giao diện người dùng: Sử dụng ReactJs - 1 thư viện của javascript.
HTML, CSS
o + Máy chủ ứng dụng: có sự hỗ trợ của NodeJs thông qua chương trình
quản lý thư viện npm trong môi trường nodejs.
o + Cơ sở dữ liệu: Sử dụng NoSQL của firebase - 1 trang web hỗ trợ lưu
dữ liệu tương tự các ứng dụng SQL và có nhiều phương thức hỗ trợ cho
việc lưu dữ liệu.
o + Giao thức truyền thông: Sử dụng http có sự hỗ trợ của các thư viện để
thiết lập kết nối liên tục.
o + Công nghệ thời gian thực: Firebase là 1 csdl có hỗ trợ thu thập dữ liệu
thời gian thực.
2.3. CÁC MÔ HÌNH ĐẶC TẢ YÊU CẦU

 Sơ đồ use case tổng quát.

 Mô tả từng Use Case

+ Use Case: Đăng ký tài khoản

Mô tả Use Case này mô tả quá trình đăng ký tài khoản trong hệ


thống.

Actor Người dùng

Luồng sự kiện Luồng chính: Use case này bắt đầu khi người dùng cuối
muốn đăng ký một tài khoản trên hệ thống.

+ Người dùng nhấn nút Đăng ký, sau đó nhập những


thông tin cần thiết.

+ Hệ thống kiểm tra thông tin đăng ký, thông tin hợp
lệ thì lưu vào CSDL và chuyển người dùng về trang
đăng nhập.

Luồng phụ: Nếu trong dòng sự kiện chính, người dùng


nhập dữ liệu không hợp lệ hoặc không nhập dữ liệu thì
hệ thống sẽ hiển thị thông báo lỗi. Người dùng có thể
chọn trở về đầu dòng sự kiện chính hoặc hủy bỏ việc
đăng ký, lúc này use case kết thúc.

Trạng thái hệ thống Đứng ở màn hình đăng ký/đăng nhập.


trước khi thực hiện Người dùng đang ở trạng thái không được xác thực. các
use case chức năng không được hiển thị.

Trạng thái hệ thống Nếu thông tin đăng ký hợp lệ, hệ thống tạo một tài khoản
sau khi thực hiện mới lưu vào database. Nếu thông tin đăng ký không hợp
use case lệ, hệ thống hiển thị thông báo lỗi yêu cầu người dùng
nhập thông tin hợp lệ.

+ Use Case: Đăng nhập

Mô tả Use Case này mô tả quá trình đăng nhập người dùng vào
hệ thống.

Actor Người dùng

Luồng sự kiện Luồng chính: Use case này bắt đầu khi người dùng cuối
muốn đăng nhập vào ứng dụng.

+Khi người dùng truy cập vào trang đăng ký/ đăng nhập.
hệ thống hiện lên biểu mẩu yêu cầu người dùng nhập
thông tin đăng nhập
+ Người dùng nhập tên đăng nhập và mật khẩu.

+ Hệ thống kiểm tra thông tin đăng nhập, nếu tài khoản
và mật khẩu nhập chính xác thì chuyển qua màn hình
chính.

Luồng phụ:

+ Người dùng không nhập đầy đủ thông tin đăng nhập.


Hệ thống hiển thị một thông báo lỗi yêu cầu người dùng
cung cấp thông tin đăng nhập đầy đủ.

+ Hệ thống xác thực thông tin đăng nhập không thành


công (sai tài khoản hoặc mật khẩu). Hệ thống hiển thị
một thông báo lỗi yêu cầu người dùng kiểm tra lại thông
tin đăng nhập hoặc yêu cầu khôi phục mật khẩu. Người
dùng có thể chọn trở về đầu dòng sự kiện chính hoặc hủy
bỏ việc đăng nhập, lúc này use case kết thúc.

Trạng thái hệ thống Đứng ở màn hình đăng ký/đăng nhập.


trước khi thực hiện Người dùng đang ở trạng thái không được xác thực. các
use case chức năng không được hiển thị.

Trạng thái hệ thống Nếu use case thành công, trả về màn hình hướng đến
sau khi thực hiện trang chính của hệ thống. Nếu thông tin đăng nhập
use case không hợp lệ, hệ thống hiển thị thông báo lỗi và yêu cầu
người dùng nhập lại thông tin đăng nhập.

+ Use Case: Chỉnh sửa trang cá nhân

Mô tả Use Case này mở rộng của use case đăng nhập cho phép
người dùng chỉnh sửa thông tin trang cá nhân sau khi đã
đăng nhập vào hệ thống.

Actor Người dùng


Luồng sự kiện Luồng chính:

+ Người dùng đăng nhập vào hệ thống thành công.

+ Hệ thống hiển thị trang cá nhân của người dùng với


thông tin hiện tại.

+ Người dùng chọn tùy chọn "Chỉnh sửa" trên trang cá


nhân.

+ Hệ thống mở giao diện chỉnh sửa trang cá nhân cho


người dùng.

+ Người dùng thực hiện các thay đổi và chỉnh sửa thông
tin trên trang cá nhân

+ Người dùng xác nhận hoặc lưu các thay đổi đã thực
hiện.

+ Hệ thống xác nhận và cập nhật thông tin trang cá nhân


mới của người dùng.

+ Hệ thống hiển thị trang cá nhân đã được cập nhật với


thông tin mới.

Luồng phụ:

Nếu người dùng không xác nhận hoặc lưu các thay đổi:
Hệ thống không cập nhật thông tin trang cá nhân. Trang
cá nhân hiển thị với thông tin trước đó. Kết thúc Use
Case.

Trạng thái hệ thống Người dùng đã đăng nhập vào hệ thống và hiển thị trang
trước khi thực hiện cá nhân.
use case

Trạng thái hệ thống Các thông tin trang cá nhân được cập nhật theo yêu cầu
sau khi thực hiện của người dùng.
use case
+ Use Case: Đăng xuất

Mô tả Use Case này mô tả quá trình đăng xuất người dùng khỏi
hệ thống.

Actor Người dùng

Luồng sự kiện Luồng chính:

Use case này bắt đầu khi người dùng muốn đăng xuất
khỏi hệ thống.

+ Người dùng nhấn vào nút Đăng xuất trên giao diện
người dùng hoặc trang chính.

+ Hệ thống xử lý và đăng xuất người dùng khỏi hệ


thống.

+ Người dùng được chuyển về màn hình đăng nhập.

Trạng thái hệ thống Người dùng đã đăng nhập và đang ở trạng thái được xác
trước khi thực hiện thực.
use case

Trạng thái hệ thống Sau khi đăng xuất thành công, người dùng sẽ không thể
sau khi thực hiện truy cập vào các chức năng và trở về trạng thái chưa
use case đăng nhập. Xóa bỏ thông tin xác thực của người dùng đã
đăng xuất.

+ Use Case: Nhắn tin

Mô tả Use Case này cho phép người dùng gửi và nhận tin nhắn
thông qua hệ thống.

Actor Người dùng


Luồng sự kiện Luồng chính:

Use case này bắt đầu khi người dùng muốn gửi tin nhắn.

+ Người dùng chọn người nhận hoặc nhóm nhận tin


nhắn.

+ Người dùng nhập nội dung tin nhắn. + Người dùng gửi
tin nhắn.

Luồng phụ: . Nếu người dùng không nhập nội dung tin
nhắn:

+ Hệ thống hiển thị thông báo lỗi và yêu cầu người dùng
nhập nội dung trước khi gửi tin nhắn.

Trạng thái hệ thống Đứng ở màn hình chính và sẵn sàng để gửi và nhận tin
trước khi thực hiện nhắn.
use case

Trạng thái hệ thống Tin nhắn đã được gửi thành công và được ghi lại trong
sau khi thực hiện hệ thống. Tin nhắn mới nhận được sẽ được hiển thị cho
use case người dùng. Hệ thống đang ở trạng thái sẵn sàng để gửi
và nhận tin nhắn tiếp theo.

+ Use Case : Xem lại tin nhắn

Mô tả Use Case này mở rộng Use Case nhắn tin bằng cách cho
phép người dùng xem lại các tin nhắn đã gửi và nhận.

Actor Người dùng

Luồng sự kiện Luồng chính:

+ Người dùng chọn mục "Tin nhắn" trên giao diện.

+ Hệ thống hiển thị danh sách các cuộc trò chuyện hoặc
nhóm chat mà người dùng đã tham gia.

+ Người dùng chọn một cuộc trò chuyện hoặc nhóm chat
để xem các tin nhắn trong đó.

+ Hệ thống hiển thị các tin nhắn trong cuộc trò chuyện
hoặc nhóm chat được chọn.

Luồng phụ:

Nếu không có cuộc trò chuyện hoặc nhóm chat nào hiện
có: Hệ thống hiển thị thông báo rằng không có tin nhắn
nào để hiển thị. Kết thúc Use Case.

Trạng thái hệ thống Đứng ở màn hình chính và sàng hiển thị tin nhắn cho
trước khi thực hiện người dùng.
use case

Trạng thái hệ thống Tin nhắn được hiển thị cho người dùng.
sau khi thực hiện
use case

+ Use Case : React tin nhắn

Mô tả Use Case này mở rộng Use Case nhắn tin bằng cách cho
phép người dùng thả cảm xúc (react) vào một tin nhắn cụ
thể.

Actor Người dùng

Luồng sự kiện Luồng chính:

+ Người dùng chọn một tin nhắn để xem chi tiết.

+ Hệ thống hiển thị nội dung của tin nhắn và các tùy
chọn react.

+ Người dùng chọn một tùy chọn react từ danh sách tùy
chọn có sẵn (ví dụ: like, tim, vv.).
+ Hệ thống ghi lại react của người dùng và cập nhật tin
nhắn tương ứng với react đó.

Luồng phụ

Nếu người dùng không chọn bất kỳ tùy chọn phản hồi
nào: Hệ thống không ghi lại bất kỳ phản hồi nào và
không cập nhật tin nhắn. Kết thúc Use Case.

Trạng thái hệ thống Hệ thống đang hiển thị tin nhắn cho người dùng và danh
trước khi thực hiện sách các tùy chọn react.
use case

Trạng thái hệ thống react của người dùng được ghi lại và tin nhắn được cập
sau khi thực hiện nhật với react đó.
use case

+ Use Case : Xóa tin nhắn

Mô tả Use Case này mở rộng Use Case nhắn tin bằng cách cho
phép người dùng xóa một tin nhắn đã gửi hoặc nhận.

Actor Người dùng

Luồng sự kiện Luồng chính:

+ Người dùng chọn một tin nhắn để xem chi tiết.

+ Hệ thống hiển thị nội dung của tin nhắn và các tùy
chọn khác, bao gồm tùy chọn xóa.

+ Người dùng chọn tùy chọn xóa tin nhắn.

+ Hệ thống xác nhận xóa tin nhắn và loại bỏ nó khỏi


danh sách tin nhắn.

Luồng phụ

Nếu người dùng không xác nhận xóa tin nhắn:


+ Tin nhắn không bị xóa và vẫn được hiển thị cho người
dùng. Kết thúc Use Case.

Trạng thái hệ thống Hệ thống đang hiển thị tin nhắn cho người dùng.
trước khi thực hiện
use case

Trạng thái hệ thống Tin nhắn bị xóa và không còn hiển thị cho người dùng.
sau khi thực hiện
use case

+ Use Case : Tạo nhóm chat

Mô tả Use Case này mở rộng Use Case nhắn tin bằng cách cho
phép người dùng tạo một nhóm chat mới.

Actor Người dùng

Luồng sự kiện Luồng chính:

+ Người dùng chọn tạo nhóm chat trên giao diện.

+ Hệ thống yêu cầu người dùng nhập tên nhóm chat và


chọn danh sách các thành viên mà người dùng muốn
mời.

+ Người dùng nhập tên nhóm chat và chọn các thành


viên từ danh sách.

+ Hệ thống tạo nhóm chat mới và mời các thành viên đã


chọn.

+ Hệ thống hiển thị thông báo xác nhận việc tạo nhóm
chat thành công.

Luồng phụ
Nếu người dùng không cung cấp thông tin cần thiết hoặc
không hoàn tất quá trình tạo nhóm chat: Hệ thống không
tạo nhóm chat mới. Kết thúc Use Case.

Trạng thái hệ thống Hệ thống đang chạy và sẵn sàng để tạo nhóm chat.
trước khi thực hiện
use case

Trạng thái hệ thống Nhóm chat mới được tạo và các thành viên đã được mời
sau khi thực hiện tham gia.
use case

+ Use Case: Kết bạn

Mô tả Use Case này cho phép người dùng kết bạn với người
khác trên hệ thống

Actor Người dùng

Luồng sự kiện Luồng chính:

+ Người dùng tìm kiếm hoặc duyệt qua danh sách người
dùng trên hệ thống.

+ Người dùng chọn một người dùng mà họ muốn kết


bạn.

+ Người dùng chọn tùy chọn "Kết bạn"

+ Hệ thống gửi một yêu cầu kết bạn đến người dùng
được chọn.

+ Người dùng được chọn có thể chấp nhận hoặc từ chối


yêu cầu kết bạn.

+ Nếu người dùng được chọn chấp nhận yêu cầu kết bạn:

*Hai người dùng được kết bạn và hiển thị trên danh
sách bạn bè của nhau.

*Kết thúc Use Case.

Luồng phụ:

Nếu người dùng được chọn từ chối yêu cầu kết


bạnNgười dùng không được kết bạn và kết thúc Use
Case.

Trạng thái hệ thống Người dùng đã đăng nhập vào hệ thống và hiển thị trang
trước khi thực hiện chính
use case

Trạng thái hệ thống Hai người dùng đã kết bạn và có thể nhắn tin với nhau
sau khi thực hiện
use case

+ Use Case: Hủy kết bạn

Mô tả Use Case này (mở rộng từ use case kết bạn) cho phép
người dùng hủy kết bạn với một người dùng đã được kết
bạn trước đó trên hệ thống mạng xã hội.

Actor Người dùng

Luồng sự kiện Luồng chính:

+ Người dùng truy cập danh sách bạn bè trên hệ thống.

+ Người dùng chọn người dùng mà họ muốn hủy kết


bạn.

+ Người dùng chọn nút "Hủy kết bạn" bên cạnh tên
người cần hủy

+ Hệ thống xóa mối quan hệ kết bạn giữa hai người


dùng.

+ Hai người dùng không còn kết bạn và kết thúc Use
Case.

Luồng phụ

Trạng thái hệ thống Hai người dùng đã kết bạn và có thể tương tác với nhau
trước khi thực hiện trên hệ thống.
use case

Trạng thái hệ thống Hai người dùng không còn kết bạn và không thể tương
sau khi thực hiện tác với nhau trên hệ thống.
use case

 Sơ đồ BPM (Business Process Model) cho từng nghiệp vụ

+ Sơ đồ BPM cho nghiệp vụ Đăng ký/ Đăng nhập


+ Sơ đồ BPM cho nghiệp vụ Gửi/ nhận/ từ chối lời mời kết bạn

+ Sơ đồ BPM cho nghiệp vụ Tạo nhóm chat


+ Sơ đồ BPM cho nghiệp vụ Hủy kết bạn với người dùng khác
+ Sơ đồ BPM cho nghiệp vụ Gửi/nhận tin nhắn

2.4. KẾT CHƯƠNG

Chương 2 đã mang lại những kết quả sau:

1. Hoàn thành khảo sát hiện trạng và có được Quy trình nghiệp vụ cụ thể

2. Xác định rõ các yêu cầu chức năng, phi chức năng của phần mêm và Kiến trúc
hệ thống
3. Hoàn thành được các mô hình đặc tả yêu cầu như sơ đồ use case, mô tả từng
Use Case và sơ đồ BPM (Business Process Model) cho từng nghiệp vụ

Chương 3 ta sẽ tiếp tục tiến vào các bước phân tích và thiết kế cụ thể các đối tượng
và chức năng mà website cung cấp cho người dùng.
PHẦN 3. PHÂN TÍCH PHẦN MỀM

3.1. GIỚI THIỆU

Giai đoạn phân tích là một phần quan trọng trong qui trình phát triển phần mềm. Nó
đóng vai trò cốt lõi trong việc hiểu và định hình yêu cầu của khách hàng và xác định
phạm vi và mục tiêu của dự án phần mềm. Trong web chat, giai đoạn phân tích đóng
vai trò quan trọng không chỉ để thành lập một sự hiểu biết rõ ràng về yêu cầu của
khách hàng, mà còn để xác định các tính năng và chức năng cần thiết cho hệ thống
web chat.

3.2. PHÂN TÍCH DỮ LIỆU

Mô hình thực thể kết hợp (Entity-Relationship Diagram, ERD) là một công cụ mô tả
và biểu diễn cấu trúc dữ liệu trong hệ thống thông qua việc sử dụng các thực thể
(entities), mối quan hệ (relationships) và thuộc tính (attributes). Trong ERD, mô hình
dữ liệu mức quan niệm, còn được gọi là mô hình CDM (Conceptual Data Model), là
một mô hình ERD ở mức độ trừu tượng cao, tập trung vào mô tả các khái niệm chung
và quan hệ giữa chúng trong hệ thống.

Mô hình thực thể kết hợp (Entity-Relationship Diagram, ERD) cho một hệ thống web
chat có thể được thiết kế để biểu diễn các thành phần chính và mối quan hệ giữa chúng
trong hệ thống. Dưới đây là một ví dụ về mô hình ERD cho web chat:

+ Thực thể "Người dùng" (User): Đại diện cho các người dùng của hệ thống
web chat. Có thể có các thuộc tính như tên, địa chỉ email, tên đăng nhập, mật
khẩu, v.v.

+ Thực thể "Phòng chat" (Chat Room): Đại diện cho các phòng chat trong
hệ thống. Có thể có các thuộc tính như tên phòng, mô tả, ngày tạo, v.v.

+ Thực thể "Tin nhắn" (Message): Đại diện cho các tin nhắn trong hệ thống.
Có thể có các thuộc tính như nội dung tin nhắn, ngày gửi, người gửi, v.v.

+ Thực thể "Mối quan hệ bạn bè" (Friend Relationship): Đại diện cho các
mối quan hệ giữa các người dùng trong hệ thống (Có là bạn bè hay không).

+Thực thể "Nhóm" (Group): Đại diện cho các nhóm người dùng trong hệ
thống. Có thể có các thuộc tính như tên nhóm, mô tả, thành viên, v.v.
Các mối quan hệ giữa các thực thể:

 Một người dùng có thể tham gia nhiều phòng chat (mối quan hệ "nhiều-nhiều"
giữa "Người dùng" và "Phòng chat").

 Một phòng chat có thể có nhiều tin nhắn (mối quan hệ "một-nhiều" giữa "Phòng
chat" và "Tin nhắn").

 Một tin nhắn được gửi bởi một người dùng cụ thể (mối quan hệ "một-nhiều"
giữa "Người dùng" và "Tin nhắn").

 Một người dùng có thể là bạn bè với nhiều người dùng khác (mối quan hệ
"nhiều-nhiều" giữa "Người dùng" và "Mối quan hệ bạn bè").

 Một người dùng có thể thuộc nhiều nhóm (mối quan hệ "nhiều-nhiều" giữa
"Người dùng" và "Nhóm").

Mô hình thực thể kết hợp:

– Sưu liệu cho mô hình thực thể kết hợp:


3.3. PHÂN TÍCH XỬ LÝ

– Sơ đồ phân cấp chức năng (Functional Hierarchy Diagram) là một công cụ trực
quan để hiển thị các phân cấp chức năng của một hệ thống hoặc một sản phẩm. Nó
giúp tổ chức và hiểu cách các chức năng khác nhau tương tác và phụ thuộc lẫn
nhau.

– Lập sơ đồ phân cấp chức năng:

– Sơ đồ dòng dữ liệu (DFD - Data Flow Diagram) là một công cụ biểu đồ hóa quá
trình xử lý dữ liệu trong một hệ thống. Nó mô tả dòng chảy của dữ liệu qua các
quá trình, các lưu trữ dữ liệu và các điểm giao tiếp với người dùng hoặc các hệ
thống khác. Sơ đồ DFD giúp hiểu cách thông tin được xử lý và truyền qua các
phần tử của hệ thống.
– Sơ đồ DFD bao gồm các thành phần sau:

+Quá trình (Process): Đại diện cho các hoạt động xử lý dữ liệu trong
hệ thống. Nó cóthể là một chức năng, một hệ thống, một máy tính hoặc một
người thực hiện hoạt động xử lý.

+Luồng dữ liệu (Data Flow): Đại diện cho dữ liệu di chuyển từ một
vị trí hoặc quá trình khác đến một quá trình hoặc ngược lại. Nó biểu thị
luồng dữ liệu trong hệ thống

+Bộ lưu trữ (Data Store): Đại diện cho nơi lưu trữ dữ liệu trong hệ
thống. Nó có thể là một cơ sở dữ liệu, một tệp tin hoặc bất kỳ hình thức lưu
trữ dữ liệu nào khác

+Ngoại vi (External Entity): Đại diện cho các yếu tố bên ngoài hệ
thống mà tương tác với nó. Đây có thể là người dùng, hệ thống khác hoặc
các thành phần bên ngoài khác

– Lập mô hình dòng dữ liệu

Mô hình cấp 0:

Mô hình cấp 1:
Mô hình cấp 2:

3.4. KẾT CHƯƠNG


Trong chương 3 về phân tích phần mềm, kết quả chính được đạt được là việc
thu thập và phân tích yêu cầu của hệ thống. Các kết quả cụ thể có thể bao gồm:

1. Cách thức phân tích dữ liệu

2. Xây dựng mô hình ERD.

3. Xây dựng mô hình FHD.

4. Xây dựng mô hình DFD.

Trong chương tiếp theo Thiết kế phần mềm: Tạo thiết kế chi tiết, bao gồm kiến
trúc, thành phần, giao diện và các quyết định về thực thi để triển khai hệ thống phần
mềm.
PHẦN 4. THIẾT KẾ PHẦN MỀM

4.1.GIỚI THIỆU

Giai đoạn thiết kế trong phát triển phần mềm cần thiết và quan trọng vì:

1. Định hình cấu trúc hệ thống: Xác định cấu trúc tổng thể của hệ thống và quan hệ
giữa các thành phần chính

2. Xác định giao diện người dùng: Thiết kế giao diện người dùng để tương tác dễ dàng
và tối ưu hóa trải nghiệm người dùng

3. Tối ưu hiệu suất: Xác định cấu trúc dữ liệu và thuật toán tối ưu để đảm bảo hiệu suất
cao và xử lý tải công việc lớn

4. Đảm bảo sự dễ bảo trì: Thiết kế phải dễ bảo trì để có thể nhanh chóng sửa lỗi, nâng
cấp và mở . rộng hệ thống trong tương lai

5. Giảm rủi ro: Thiết kế cẩn thận giúp giảm rủi ro và lỗi trong quá trình phát triển và
triển khai

6. Tăng khả năng tái sử dụng: Thiết kế tốt tạo điều kiện cho việc tái sử dụng thành
phần và module trong các dự án phần mềm tương lai

Tóm lại, giai đoạn thiết kế đóng vai trò quan trọng trong việc xác định cấu trúc, giao
diện người dùng, hiệu suất và khả năng bảo trì của hệ thống phần mềm, đồng thời
giảm rủi ro và tăng khả năng tái sử dụng

4.2. THIẾT KẾ DỮ LIỆU

Phương pháp thiết kế dữ liệu (Physical Data Modeling - PDM) trong ngữ cảnh của ứng

dụng web chat tập trung vào việc biểu diễn cấu trúc dữ liệu cụ thể và cách lưu trữ dữ
liệu trong hệ thống.

Trong một ứng dụng web chat, có một số đối tượng quan trọng cần được lưu trữ và
quản lý, bao gồm người dùng, tin nhắn, bạn bè, yêu cầukết bạn, và nhiều yếu tố khác.
Dưới đây là một ví dụ về mô hình dữ liệu PDM cho ứng dụng web chat:
1. Bảng "Users" (Người dùng): Bảng này lưu trữ thông tin về người dùng, bao
gồm các trường như "user_id" (ID người dùng), "username" (tên người dùng),
"email" (địa chỉ email), và "password" (mật khẩu).
2. Bảng "Messages" (Tin nhắn): Bảng này lưu trữ thông tin về các tin nhắn được
gửi trong ứng dụng, bao gồm các trường như "message_id" (ID tin nhắn),
"sender_id" (ID người gửi), "receiver_id" (ID người nhận), "content" (nội dung
tin nhắn), và "timestamp" (thời gian gửi tin nhắn).
3. Bảng "Friends" (Bạn bè): Bảng này lưu trữ thông tin về mối quan hệ bạn bè
giữa các người dùng, bao gồm các trường như "user_id" (ID người dùng),
"friend_id" (ID bạn bè), và "status" (trạng thái quan hệ).
4. Bảng "FriendRequests" (Yêu cầu kết bạn): Bảng này lưu trữ thông tin về yêu
cầu kết bạn giữa các người dùng, bao gồm các trường như "request_id" (ID yêu
cầu), "sender_id" (ID người gửi yêu cầu), "receiver_id" (ID người nhận yêu
cầu), và "status" (trạng thái yêu cầu).

Mô hình dữ liệu PDM không chỉ xác định cấu trúc của cơ sở dữ liệu, mà còn xác định
các quan hệ (relationship) giữa các bảng và các ràng buộc (constraints) như khóa chính
(primary key), khóa ngoại (foreign key) để đảm bảo tính toàn vẹn và mối quan hệ
chính xác giữa các bảng dữ liệu.

Qua quá trình thiết kế dữ liệu PDM, các nhà phát triển và nhà thiết kế sẽ có một cấu
trúc dữ liệu rõ ràng và đúng đắn, giúp họ xây dựng và quản lý hệ thống web chat một
cách hiệu quả và đáng tin cậy.

4.3. THIẾT KẾ PHẦN MỀM

Sơ đồ trình tự (sequence diagram) là một công cụ thiết kế phần mềm trong phân tích
và thiết kế hướng đối tượng. Trong ngữ cảnh của ứng dụng web chat, sơ đồ trình tự
được sử dụng để biểu diễn các tương tác giữa các thực thể trong hệ thống, chẳng hạn
như người dùng, máy chủ và các thành phần khác.

Dưới đây là một ví dụ về sơ đồ trình tự cho một tương tác cơ bản trong ứng dụng web
chat:

1. Người dùng khởi động ứng dụng web chat trên trình duyệt.

2. Trình duyệt gửi yêu cầu kết nối đến máy chủ.

3. Máy chủ xác nhận yêu cầu và thiết lập kết nối với người dùng.

4. Người dùng nhập thông tin đăng nhập và gửi yêu cầu xác thực đến máy chủ.

5. Máy chủ kiểm tra thông tin đăng nhập và phản hồi kết quả xác thực cho người
dùng.

6. Người dùng truy cập vào danh sách bạn bè và gửi yêu cầu chat đến một người
bạn cụ thể.

7. Máy chủ xác nhận yêu cầu chat và chuyển tin nhắn đến người bạn đã chọn.

8. Người dùng và người bạn bắt đầu trao đổi tin nhắn, gửi và nhận tin nhắn qua
máychủ.

9. Quá trình trao đổi tin nhắn giữa người dùng và người bạn diễn ra trong một
chuỗi lặp lại cho đến khi người dùng hoặc người bạn chọn kết thúc cuộc trò
chuyện.
10. Khi cuộc trò chuyện kết thúc, máy chủ đóng kết nối với người dùng.

Trên sơ đồ trình tự, các thực thể được biểu diễn bằng các hộp dọc theo đường thẳng
thời gian. Các thông điệp được gửi giữa các thực thể được biểu diễn bằng các mũi tên
mô tả hướng di chuyển của thông điệp.
Sơ đồ trình tự giúp hiển thị tường minh các tương tác giữa các thực thể trong hệ thống
web chat. Nó cho phép nhà phát triển và nhà thiết kế hiểu được luồng làm việc của
ứng dụng, cũng như xác định các thông điệp cần được truyền và xử lý trong mỗi tương
tác.

Ngoài ra, sơ đồ trình tự cũng có thể được sử dụng để phân tích hiệu năng và tìm ra các
lỗi tiềm ẩn trong hệ thống web chat bằng cách đánh giá thời gian và tần suất của các
tương tác.

Tóm lại, sơ đồ trình tự là một công cụ hữu ích trong thiết kế và phân tích ứng dụng
web chat, giúp hiển thị rõ ràng các tương tác giữa các thực thể và làm nổi bật các quy
trình cần thiết để xây dựng và triển khai một hệ thống web chat chất lượng.

4.4. TỔNG KẾT CHƯƠNG

Tổng kết lại, thiết kế phần dữ liệu (PDM) và thiết kế phần mềm sơ đồ trình tự
(sequence diagram) là hai phương pháp quan trọng trong quá trình thiết kế ứng dụng
web chat.

Thiết kế phần dữ liệu (PDM) tập trung vào việc biểu diễn cấu trúc dữ liệu cụ thể và
cách lưu trữ dữ liệu trong hệ thống. Trong thiết kế PDM cho ứng dụng web chat,
chúng ta xác định các bảng dữ liệu cần thiết như người dùng, tin nhắn, bạn bè, yêu cầu
kết bạn và xác định quan hệ và ràng buộc giữa chúng. Thiết kế PDM giúp xác định cấu
trúc dữ liệu và đảm bảo tính toàn vẹn và mối quan hệ chính xác giữa các bảng dữ liệu.

Sơ đồ trình tự (sequence diagram) là công cụ thiết kế phần mềm trong phân tích và
thiết kế hướng đối tượng. Trong thiết kế web chat, sơ đồ trình tự được sử dụng để biểu
diễn các tương tác giữa các thực thể trong hệ thống, chẳng hạn như người dùng, máy
chủ và các thành phần khác. Sơ đồ trình tự giúp hiển thị rõ ràng các tương tác giữa các
thực thể và quá trình trao đổi thông điệp giữa chúng. Nó cung cấp một cái nhìn tổng
quan về luồng làm việc và quy trình hoạt động của ứng dụng web chat.

Tổng hợp lại, thiết kế PDM và sơ đồ trình tự là hai phương pháp quan trọng và bổ trợ
nhau trong quá trình thiết kế ứng dụng web chat. Thiết kế PDM giúp xác định cấu trúc
dữ liệu và quan hệ giữa các bảng dữ liệu, trong khi sơ đồ trình tự giúp xác định và hiển
thị các tương tác giữa các thực thể trong hệ thống. Cả hai phương pháp đóng vai trò
quan trọng trong việc xây dựng và triển khai một hệ thống web chat chất lượng và hiệu
quả.

You might also like