



















Preview text:
lOMoAR cPSD| 45734214
TRƯỜNG ĐẠI HỌC THỦY LỢI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP LỚN MÔN HỌC
CÔNG NGHỆ PHẦN MỀM
Đề tài:Website MobileStore
Nhóm sinh viên thực hiện: 65HTTT-6
Thành viên nhóm: Nguyễn Việt Hoàng(Nhóm trưởng) Nguyễn Văn Tiến Vũ Văn Quảng Lê Duy Khánh Nguyễn Mạnh Đức Đỗ Quang Nam Anh Nguyên Văn Quang Bùi Ngọc Tùng Sơn
Giảng viên hướng dẫn: Ths.Nguyễn Thị Thu Hương Hà Nội, 2024 lOMoAR cPSD| 45734214
NHIỆM VỤ 4/4: SPRINT 2/2
I. Tài liệu đặc tả yêu cầu phần mềm
1.1 Biểu đồ Phân rã chức năng (FDD)
1.2 Biểu đồ Luồng dữ liệu (DFD)
1.2.8 DFD Phương thức thanh toán lOMoAR cPSD| 45734214
1.2.9 DFD Cập nhật trạng thái sản phẩm
1.2.10 DFD Danh sách người dùng lOMoAR cPSD| 45734214
1.2.11 DFD Hỗ trợ người dùng
1.2.12 DFD Đánh giá và nhận xét
1.3 Sơ đồ Use case tổng quát lOMoAR cPSD| 45734214
1.4 Miêu tả chi tiết các Use cases
1.4.8 Use case Phương thức thanh toán Use Case ID 06 Use Case Name Thanh toán Created By: … Last Updated By … Date Created: 16/12/2024 Date Last Updated 22/12/2024 Actor Người dùng Description
Chức năng thanh toán cho phép người dùng thanh toán đơn
hàng bằng nhiều phương thức khác nhau. Trigger
Chức năng này được sử dụng khi người dùng nhấn nút
“Thanh toán” trong phần đơn hàng. Pre-conditions
Người dùng truy cập đơn hàng và chọn phương thức thanh toán. lOMoAR cPSD| 45734214
Post conditions Giao dịch thanh toán thành công: Hệ thống cập nhật trạng
thái đơn hàng thành “Đã thanh toán” và gửi hóa đơn qua email.
Giao dịch thanh toán thất bại: Hệ thống hiển thị thông báo
lỗi và hướng dẫn người dùng thử lại. Flow of Events 1.
Người dùng truy cập vào website MobileStore và
đăng nhập tài khoản cá nhân của mình. 2.
Người dùng thêm sản phẩm vào "Giỏ hàng" nếu cần
và truy cập mục “Đơn hàng” rồi nhấn nút “Thanh toán”. 3.
Người dùng chọn phương thức thanh toán (thẻ tín
dụng,ví điện tử,…) và nhập thông tin thanh toán. 4.
Hệ thống xử lý giao dịch thanh toán qua cổng thanh toán tương ứng. 5. Giao dịch thành công: •
Hiển thị thông báo "Thanh toán thành công". •
Cập nhật trạng thái đơn hàng thành “Đã thanh toán”. •
Gửi hóa đơn thanh toán qua email cho người dùng. Giao dịch thất bại:
Hiển thị thông báo lỗi rõ ràng (ví dụ: thông tin thẻ
không hợp lệ, số dư không đủ).
Gợi ý người dùng thử lại hoặc đổi phương thức thanh toán.
1.4.9 Use case Cập nhật trạng thái sản phẩm Use Case ID 07
Use Case Name Cập nhật trạng thái sản phẩm Created By: … Last Updated By … Date Created: 16/12/2024 Date Last Updated 22/12/2024 Actor Quản trị viên Description
Chức năng cập nhật trạng thái sản phẩm cho phép quản trị
viên thay đổi trạng thái của sản phẩm (Còn hàng, Hết hàng,
hoặc trạng thái khác) trên website MobileStore. Trigger
Chức năng được sử dụng khi quản trị viên thực hiện yêu
cầu thay đổi trạng thái sản phẩm trên giao diện của website. lOMoAR cPSD| 45734214 Pre-conditions
Admin đã đăng nhập thành công vào website. Sản phẩm
phải tồn tại trong danh sách sản phẩm của hệ thống.
Post conditions Trạng thái sản phẩm được cập nhật thành công và hiển thị
đúng trên giao diện. Lịch sử thay đổi trạng thái được lưu trữ. Flow of Events 1.
Quản trị viên truy cập vào website MobileStore và
đăng nhập bằng tài khoản quản trị. 2.
Quản trị viên truy cập vào “Quản lý sản phẩm” từ danh sách. 3.
Quản trị viên tìm kiếm một hoặc nhiều sản phẩm cần cập nhật trạng thái. 4.
Quản trị viên thực hiện thay đổi trạng thái của sản
phẩm, (ví dụ từ "Còn hàng" sang "Hết hàng" hoặc ngược lại). 5.
Nhấn nút "Lưu thay đổi" để xác nhận cập nhật trạng thái sản phẩm. 6.
Hệ thống hiển thị thông báo cập nhật thành công và
trạng thái mới của sản phẩm được hiển thị trên giao diện.
1.4.10 Use case Danh sách người dùng Use Case ID 08
Use Case Name Danh sách người dùng Created By: … Last Updated By … Date Created: 16/12/2024 Date Last Updated 22/12/2024 Actor Quản trị viên Description
Chức năng hiển thị danh sách người dùng cho phép quản trị
viên xem thông tin người dùng được lưu trữ trong cơ sở dữ liệu. Trigger
Chức năng được sử dụng khi quản trị viên đăng nhập
website và yêu cầu danh sách người dùng. Pre-conditions
Quản trị viên đã đăng nhập thành công vào hệ thống với quyền quản lý.
Post conditions Danh sách người dùng được hiển thị trên giao diện quản trị. lOMoAR cPSD| 45734214 Flow of Events 1.
Quản trị viên truy cập vào website MobileStore và
đăng nhập bằng tài khoản quản trị. 2.
Từ giao diện quản trị, chọn mục “Danh sách người
dùng”.3. Hệ thống gửi yêu cầu truy vấn danh sách người
dùng đến cơ sở dữ liệu. 4.
Cơ sở dữ liệu thực hiện truy vấn và trả về thông tin danh sách người dùng. 5.
Hệ thống nhận dữ liệu phản hồi từ cơ sở dữ liệu và
hiển thị danh sách người dùng trên giao diện quản trị. 6.
Quản trị viên có thể thao tác trên danh sách người
dùng như: tìm kiếm, xem chi tiết, chỉnh sửa hoặc xóa (nếu cần).
1.4.11 Use case Hỗ trợ người dùng Use Case ID 09
Use Case Name Hỗ trợ người dùng Created By: … Last Updated By … Date Created: 16/12/2024 Date Last Updated 22/12/2024 Actor
Người dùng , quản trị viên , nhân viên hỗ trợ Description
Chức năng hỗ trợ người dùng cho phép người dùng gửi yêu
cầu hỗ trợ và nhân viên hỗ trợ giải quyết yêu cầu thông qua hệ thống. Trigger
Chức năng được sử dụng khi người dùng gửi yêu cầu hỗ trợ qua giao diện website. Pre-conditions
Người dùng đã đăng nhập vào hệ thống và gửi yêu cầu hỗ
trợ qua biểu mẫu hoặc trang liên hệ.
Post conditions Kết quả hỗ trợ được cập nhật vào hệ thống và phản hồi cho người dùng. lOMoAR cPSD| 45734214 Flow of Events 1.
Người dùng truy cập vào website MobileStore và
đăng nhập vào tài khoản cá nhân của mình. 2.
Người dùng chọn mục “Hỗ trợ” trên giao diện
website và gửi yêu cầu hỗ trợ (vấn đề của bạn, thông tin liên hệ, v.v.). 3.
Hệ thống nhận yêu cầu hỗ trợ và lưu trữ vào hệ thống. 4.
Yêu cầu hỗ trợ được chuyển đến nhân viên hỗ trợ
(dựa trên phân công hoặc tự động gán). 5.
Nhân viên hỗ trợ tiếp nhận, xử lý yêu cầu và cập nhật
kết quả hỗ trợ lên hệ thống. 6.
Hệ thống thông báo và gửi phản hồi kết quả hỗ trợ
cho người dùng (qua email hoặc giao diện website).
1.4.12 Use case Đánh giá và nhận xét Use Case ID 10
Use Case Name Đánh giá và nhận xét Created By: … Last Updated By … Date Created: 16/12/2024 Date Last Updated 22/12/2024 Actor Người dùng Description
Chức năng cho phép người dùng chọn sản phẩm, nhập nội
dung đánh giá và gửi đánh giá cho hệ thống xử lý. Trigger
Chức năng được sử dụng khi người dùng thực hiện hành động gửi đánh giá. Pre-conditions
Người dùng đã đăng nhập và chọn sản phẩm để đánh giá.
Post conditions Đánh giá được lưu trữ vào cơ sở dữ liệu và người dùng nhận
được thông báo kết quả. lOMoAR cPSD| 45734214 Flow of Events
1. Người dùng truy cập vào website MobileStore và đăng
nhập vào tài khoản cá nhân của mình 2. Người dùng
chọn sản phẩm cần đánh giá. 3.
Người dùng nhập nội dung đánh giá vào biểu mẫu của hệ thống. 4.
Người dùng nhấn nút “Gửi”. 5.
Hệ thống xác thực và xử lý nội dung đánh giá (kiểm
tra nội dung đánh giá, cập nhật thông tin sản phẩm dựa trên đánh giá). 6.
Hệ thống gửi thông báo kết quả đánh giá cho người dùng
(thành công hoặc yêu cầu chỉnh sửa) lOMoAR cPSD| 45734214
1.5 Sơ đồ Trình tự (SD)
1.5.8 SD Phương thức thanh toán lOMoAR cPSD| 45734214
1.5.9 SD Cập nhật trạng thái sản phẩm lOMoAR cPSD| 45734214
1.5.10 SD Danh sách người dùng lOMoAR cPSD| 45734214
1.5.11 SD Hỗ trợ người dùng lOMoAR cPSD| 45734214
1.5.12 SD Đánh giá và nhận xét
1.6 Biểu đồ quan hệ thực thể (ERD) lOMoAR cPSD| 45734214
II. Thiết kế phần mềm
1. Thiết kế Kiến trúc lOMoAR cPSD| 45734214
1. Thiết kế Kiến trúc CONTROLLER VIEW Change Notification Trang chủ DSNGUOIDUNG CONTROLLER
Thanh tìm kiếm sản phẩm CAPNHATTTSP CONTROLLER User events and action Thông tin sản phẩm DANHGIAVANHANXET CONTROLLER Các bài viết liên quan State Retrieve or MODEL Query update data Retturn the result PHUONGTHUCPHUONGTHANHTOAN HOTRONGUOIDUNG DANHGIAVNHANXET CAPNHATTTSP lOMoAR cPSD| 45734214
2. Thiết kế Hướng đối tượng
3. Thiết kế Dữ liệu
3.1 Các thực thể và thuộc tính
- PHUONGTHUCTT(IDPHUONGTHUCTT, TENPHUONGTHUC,
MOTA, PHIGIAODICH, TRANGTHAI, NGAYTAO/CAPNHAT)
- CAPNHATTTSP(IDCAPNHATTTSP, TENTRANGTHAI, MOTA,
MASP, NGAYCAPNHAT, NGUOICAPNHAT)
- DSNGUOIDUNG(IDDSNGUOIDUNG, HOTEN, EMAIL, SDT,
VAITRO, TRANGTHAITAIKHOAN, NGAYDK/DN)
- HOTRONGUOIDUNG(IDHOTRONGUOIDUNG, MANGUOIDUNG,
NOIDUNGYEUCAU, TRANGTHAI, NGUOIXULY, PHANHOI, NGAYGUI/XULY)
- DANHGIAVANHANXET(MASP, MANGUOIDUNG, NOIDUNG,
SOSAO, NGAYDANHGIA, TRANGTHAI, PHANHOIWEB) lOMoAR cPSD| 45734214 3.2 Mối liên kết
- DSNGUOIDUNG và PHUONGTHUCTT là liên kết 1 - N
DSNGUOIDUNGvà HOTRONGUOIDUNG là liên kết 1 - N
- DSNGUOIDUNGvà DANHGIAVANHANXET là liên kết M - N
- CAPNHATTTSP và DANHGIAVANHANXET là liên kết 1 - N
- CAPNHATTTSP và HOTRONGUOIDUNG là liên kết 1 - N 3.3 Chuyển sang quan hệ
- Liên kết 1 - N → Khóa chính của quan hệ bên một trở thành khóa ngoại của quan hệ bên nhiều.
- Liên kết M - N → Tạo bảng quan hệ mới, chuyển khóa chính của hai quan
hệ phía M và N thành khóa ngoại của quan hệ mới. Khóa chính của quan
hệ mới là sự kết hợp của hai khóa ngoại. Kết quả:
- PHUONGTHUCTT(IDPHUONGTHUCTT, TENPHUONGTHUC,
MOTA, PHIGIAODICH, TRANGTHAI, NGAYTAO/CAPNHAT)
- CAPNHATTTSP(IDCAPNHATTTSP, TENTRANGTHAI, MOTA,
MASP, NGAYCAPNHAT, NGUOICAPNHAT)
- DSNGUOIDUNG(IDDSNGUOIDUNG, HOTEN, EMAIL, SDT,
VAITRO, TRANGTHAITAIKHOAN, NGAYDK/DN)
- HOTRONGUOIDUNG(IDHOTRONGUOIDUNG, MANGUOIDUNG,
NOIDUNGYEUCAU, TRANGTHAI, NGUOIXULY, PHANHOI, NGAYGUI/XULY)
- DANHGIAVANHANXET(MASP, MANGUOIDUNG, NOIDUNG,
SOSAO, NGAYDANHGIA, TRANGTHAI, PHANHOIWEB) 3.4 Chuẩn hóa dữ liệu
3.4.1 Xác định phụ thuộc hàm
● IDPHUONGTHUCTT xác định duy nhất mỗi phương thức tt bao gồm :
tên phương thức, mô tả, phí giao dịch, trạng thái, ngày tạo/ cập nhật.
● IDCAPNHATTTSP xác định tất cả các thông tin khác bao gồm : tên trạng
thái, mô tả, ngày cập nhật, người cập nhật.
● IDDSNGUOIDUNG xác định duy nhất về mỗi người dùng bao gồm: họ
tên , email, số điện thoại, vai trò , trạng thái tài khoản, ngày đk/đăng nhập. lOMoAR cPSD| 45734214
● IDHOTRONGUOIDUNG xác định duy nhất mỗi yêu cầu hỗ trợ bao gồm
: mã người dùng, nội dung yêu cầu, trạng thái, người xử lý, phàn hồi, ngày gửi /xử lý
● MASP, MANGUOIDUNG xác định duy nhất nội dung đánh giá bao gồm
: nội dung, số sao, ngày đánh giá, trạng thái, phản hồi web)
3.4.2 Xét các dạng chuẩn
- PHUONGTHUCTT(IDPHUONGTHUCTT, TENPHUONGTHUC,
MOTA, PHIGIAODICH, TRANGTHAI, NGAYTAO/CAPNHAT)
Đặt IDPHUONGTHUCTT = A, TENPHUONGTHUC= B, MOTA = C,
PHIGIAODICH = D, TRANGTHAI = E, NGAYTAO/CAPNHAT= F) Phụ thuộc hàm:
F = {A → B, A → C, A → D, A → E, A → F }
=> Đạt 1NF vì không có thuộc tính đa trị
=> Đạt 2NF vì các thuộc tính không khóa phụ thuộc đầy đủ vào khóa chính A
=> Đạt 3NF vì các thuộc tính không khóa phụ thuộc trực tiếp vào khóa chính A
=> Đạt BCNF vì không có thuộc tính khóa nào phụ thuộc vào thuộc tính không khóa.
- CAPNHATTTSP(IDCAPNHATTTSP, TENTRANGTHAI, MOTA,
MASP, NGAYCAPNHAT, NGUOICAPNHAT)
Đặt IDCAPNHATTTSP = A, TENTRANGTHAI = B, MOTA = C, MASP =
D, NGAYCAPNHAT= E, NGUOICAPNHAT = F) Phụ thuộc hàm:
F = {A → B, A → C, A → D, A → E, A → F}
=> Đạt 1NF vì không có thuộc tính đa trị
=> Không đạt 2NF vì các thuộc tính không khóa phụ thuộc đầy đủ vào khóa chính A
=> Không đạt 3NF vì các thuộc tính không khóa phụ thuộc trực tiếp vào khóa chính A
=> Không đạt BCNF vì không có thuộc tính khóa nào phụ thuộc vào thuộc tính không khóa.
- DSNGUOIDUNG(IDDSNGUOIDUNG, HOTEN, EMAIL, SDT,
VAITRO, TRANGTHAITAIKHOAN, NGAYDK/DN)
Đặt IDDSNGUOIDUNG = A, HOTEN = B, EMAIL = C, SDT = D, VAITRO =
E, TRANGTHAITAIKHOAN = F , NGAYDK/DN = G) Phụ thuộc hàm:
F = {A → B, A → C, A → D, A → E, A → F, A → G}