Báo cáo phân tích thiết kế hệ thống bán thiết bị di động, Báo cáo thiết kế hệ thống hướng đối tượng xây dựng hệ thống bán thiết bị di động, xây dựng hệ thống bán thiết bị di dộng có đầy đủ tính năng quản lý sản phẩm, quản lý danh mục sản phẩm, quản lý người dùng, quản lý đơn hàng, quản lý thanh toán, quản lý hóa đơn, quản lý doanh thu ...
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA CÔNG NGHỆ THÔNG TIN VÀ AN TOÀN THÔNG TIN
BÁO CÁO MÔN HỌC PHÂN TÍCH THIẾT KẾ HỆ THỐNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN THIẾT BỊ DI ĐỘNG
TRỰC TUYẾN
GIẢNG VIÊN HƯỚNG DẪN: NGUYỄN MINH ĐẾ SINH VIÊN THỰC HIỆN:
TRẦN NGUYỄN ĐẮC LÃM – CT06N0130 ĐOÀN ANH KIỆT – CT06N0128
TP HCM, tháng 4/2024
Trang 2MỤC LỤC
LỜI CẢM ƠN 4
DANH SÁCH HÌNH 5
DANH SÁCH BẢNG 7
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG 8
1 LÝ DO CHỌN ĐỀ TÀI 8
2 PHÁT BIỂU BÀI TOÁN 8
3 PHƯƠNG PHÁP NGHIÊN CỨU 9
CHƯƠNG 2: KIẾN THỨC CƠ SỞ 10
1 CÁC BIỂU ĐỒ UML 10
1.1 Sơ đồ Use Case (Use Case Diagram) 10
1.2 Sơ đồ lớp (Class Diagram) 10
1.3 Biểu đồ tuần tự (Sequence Diagram) 10
1.4 Biểu đồ trạng thái (State Chart Diagram) 10
1.5 Biểu đồ cộng tác (Collaboration Diagram) 11
1.6 Biểu đồ hoạt động (Activity Diagram) 11
1.7 Biểu đồ thành phần (Component Diagram) 11
1.8 Biểu đồ triển khai (Deployment Diagram) 11
2 THIẾT KẾ CƠ SỞ DỮ LIỆU CHO HỆ THỐNG 12
2.1 Sơ đồ ERD của hệ thống 12
2.2 Các bảng thuộc tính của hệ thống 12
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 19
1 YÊU CẦU PHẦN MỀM 19
1.1 Yêu cầu chức năng 19
1.2 Yêu cầu phi chức năng 19
2 BIỂU ĐỒ USE CASE & ĐẶC TẢ (USE CASE DIAGRAM) 20
2.1 BIỂU ĐỒ USE CASE 20
2.2 MÔ TẢ ACTORS & USE CASE 23
2.3 ĐẶC TẢ USE CASE 24
3 BIỂU ĐỒ LỚP (CLASS DIAGRAM) 35
3.1 BIỂU ĐỒ CLASS TỔNG QUÁT 35
Trang 33.2 PHÂN TÍCH 36
3.3 TRIỂN KHAI LỚP CHỨC NĂNG 41
4 BIỂU ĐỒ TUẦN TỰ (SEQUENCE DIAGRAM) 48
4.1 BIỂU ĐỒ TUẦN TỰ CHO CÁC CHỨC NĂNG CỦA NGƯỜI DÙNG 48
4.2 BIỂU ĐỒ TUẦN TỰ CHO CHỨC NĂNG CỦA NGƯỜI QUẢN TRỊ 56
5 BIỂU ĐỒ CỘNG TÁC (COLLABORATION DIAGRAM) 60
5.1 BIỂU ĐỒ CỘNG TÁC CHO CÁC CHỨC NĂNG CỦA NGƯỜI DÙNG 60
5.2 BIỂU ĐỒ CỘNG TÁC CHO CÁC CHỨC NĂNG CỦA NGƯỜI QUẢN TRỊ 64
6 BIỂU ĐỒ TRẠNG THÁI (STATE MACHINE DIAGRAM) 68
6.1 BIỂU ĐỒ STATE TỔNG QUÁT 68
6.2 BIỂU ĐỒ TRẠNG THÁI PHÂN RÃ 69
7 BIỂU ĐỒ HOẠT ĐỘNG (ACTIVITY DIAGRAM) 72
7.1 BIỂU ĐỒ HOẠT ĐỘNG CHO CÁC CHỨC NĂNG CỦA KHÁCH HÀNG 72
7.2 BIỂU ĐỒ HOẠT ĐỘNG CHO CÁC CHỨC NĂNG CỦA QUẢN TRỊ VIÊN 79
8 BIỂU ĐỒ THÀNH PHẦN (COMPONENT DIAGRAM) 85
8.1 BIỂU ĐỒ THÀNH PHẦN TỔNG QUÁT 85
8.2 BIỂU ĐỒ THÀNH PHẦN PHÂN RÃ 85
9 BIỂU ĐỒ TRIỂN KHAI (DEPLOYMENT DIAGRAM) 86
9.1 BIỂU ĐỒ TRIỂN KHAI TỔNG THỂ 86
CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 87
1 KẾT QUẢ ĐẠT ĐƯỢC 87
2 HẠN CHẾ CỦA ĐỀ TÀI 87
3 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 87
Trang 4LỜI CẢM ƠN
Nhóm đề tài xin chân thành cảm ơn khoa Công nghệ thông tin và An toàn thông tin Học viện Kỹ thuật Mật mã đã tạo điều kiện tốt cho nhóm đề tài thực hiện tốt đề tài báo cáo này Nhóm đề tài xin chân thành cảm ơn quý thầy cô trong khoa Công nghệ thông tin và An toàn thông tin đã tận tình giảng dạy, trang bị cho nhóm những kiến thức quý báu trong những năm học qua, giúp nhóm có một nền tảng kiến thức vững chắc để hoàn thành đề tài này Đặc biệt nhóm đề tài xin chân thành cám ơn sự nhiệt tình hướng dẫn và đóng góp ý kiến của thầy
Nguyễn Minh Đế đã giúp nhóm đề tài hoàn thành tốt báo cáo này
Mặc dù nhóm đề tài đã cố gắng hoàn thành báo cáo trong phạm vi và khả năng cho phép nhưng chắc chắn vẫn không tránh khỏi những thiếu sót Nhóm đề tài kính mong nhận được
sự thông cảm và tận tình đóng góp ý kiến của quý thầy cô và các bạn
Nhóm đề tài xin chân thành cảm ơn!
Trang 5DANH SÁCH HÌNH
Hình 1 Sơ đồ ERD của hệ thống 12
Hình 2 Biểu đồ Use Case tổng quát 20
Hình 3 Biểu đồ Use Case đăng ký tài khoản 20
Hình 4 Biểu đồ Use Case đăng nhập 21
Hình 5.Biểu đồ Use Case thanh toán 21
Hình 6 Biểu đồ Use Case quản lý doanh thu 22
Hình 7 Biểu đồ class tổng quát 35
Hình 8 Biểu đồ class Product 36
Hình 9 Biểu đồ class OTP 36
Hình 10 Biểu đồ class User 37
Hình 11 Biểu đồ class Order 38
Hình 12 Biểu đồ class Oauth 38
Hình 13 Biểu đồ class Category 39
Hình 14 Biểu đồ class Cart 39
Hình 15 Biểu đồ PayPal class 40
Hình 16 Biểu đồ class Payment 40
Hình 17 Biểu đồ lớp đăng ký tài khoản khách hàng 41
Hình 18 Biểu đồ lớp đăng nhập tài khoản 41
Hình 19 Biểu đồ lớp khôi phục mật khẩu 42
Hình 20 Biểu đồ lớp tìm kiếm sản phẩm 42
Hình 21 Biểu đồ lớp thêm sản phẩm vào giỏ hàng 43
Hình 22 Biểu đồ lớp tạo đơn hàng 43
Hình 23 Biểu đồ lớp thanh toán đơn hàng 44
Hình 24 Biểu đồ lớp quản lý sản phẩm 44
Hình 25 Biểu đồ lớp quản lý danh mục sản phẩm 45
Hình 26 Biểu đồ lớp quản lý thông tin khách hàng 45
Hình 27 Biểu đồ lớp quản lý đơn hàng 46
Hình 28 Biểu đồ lớp quản lý doanh thu 46
Hình 29 Biểu đồ lớp quản lý hóa đơn 47
Hình 30 Biểu đồ Sequence chức năng đăng ký tài khoản khách hàng 48
Hình 31 Biểu đồ Sequence cho chức năng đăng nhập 49
Hình 32 Biểu đồ Sequence cho chức năng xác thực bằng Google 50
Hình 33 Biểu đồ Sequence cho chức năng khôi phục mật khẩu 51
Hình 34 Biểu đồ Sequence cho chức năng tìm kiếm sản phẩm 52
Hình 35 Biểu đồ Sequence cho chức năng thêm sản phẩm vào giỏ hàng 53
Hình 36 Biểu đồ Sequence cho chức năng tạo đơn hàng 54
Hình 37 Biểu đồ Sequence cho chức năng thanh toán online với Paypal 55
Hình 38 Biểu đồ Sequence cho chức năng tạo sản phẩm 56
Hình 39 Biểu đồ Sequence cho chức năng sửa sản phẩm 56
Hình 40 Biểu đồ Sequence cho chức năng xóa sản phẩm 57
Hình 41 Biểu đồ Sequence cho chức năng thêm danh mục sản phẩm 57
Hình 42 Biểu đồ Sequence cho chức năng cập nhật danh mục sản phẩm 58
Trang 6Hình 43 Biểu đồ Sequence cho chức năng xóa danh mục sản phẩm 58
Hình 44 Biểu đồ Sequence cho chức năng cập nhật thông tin khách hàng 59
Hình 45 Biểu đồ cộng tác cho chức năng đăng ký user 60
Hình 46 Biểu đồ cộng tác chức năng đăng nhập 60
Hình 47 Biểu đồ cộng tác chức năng xác thực với Google 61
Hình 48 Biểu đồ cộng tác chức năng khôi phục mật khẩu 61
Hình 49 Biểu đồ cộng tác chức năng tìm kiếm sản phẩm 62
Hình 50 Biểu đồ cộng tác chức năng thêm sản phẩm vào giỏ hàng 62
Hình 51 Biểu đồ cộng tác chức năng tạo đơn hàng 63
Hình 52 Biểu đồ cộng tác chức năng tạo thanh toán 63
Hình 53 Biểu đồ cộng tác thêm sản phẩm 64
Hình 54 Biểu đồ cộng tác cập nhật sản phẩm 64
Hình 55 Biểu đồ cộng tác xóa sản phẩm 65
Hình 56 Biểu đồ cộng tác thêm danh mục sản phẩm 65
Hình 57 Biểu đồ cộng tác cập nhật danh mục sản phẩm 66
Hình 58 Biểu đồ cộng tác xóa danh mục sản phẩm 66
Hình 59 Biểu đồ cộng tác cập nhật thông tin khách hàng 67
Hình 60 Biểu đồ trạng thái tổng quát cho khách hàng 68
Hình 61 Biểu đồ trạng thái tổng quát cho quản trị viên 69
Hình 62 Biểu đồ trạng thái cho chức năng đăng ký khách hàng 69
Hình 63 Biểu đồ trạng thái cho chức năng đăng nhập 70
Hình 64 Biểu đồ trạng thái cho chức năng xác thực với Google 70
Hình 65 Biểu đồ trạng thái cho chức năng khôi phục mật khẩu 70
Hình 66 Biểu đồ trạng thái thêm sản phẩm vào giỏ hàng 71
Hình 67 Biểu đồ trạng thái thủ tục mua hàng 71
Hình 68 Biểu đồ hoạt động đăng ký tài khoản 72
Hình 69 Biểu đồ hoạt động đăng nhập 73
Hình 70 Biểu đồ hoạt động xác thực tài khoản thông qua Google 74
Hình 71 Biểu đồ hoạt động khôi phục mật khẩu 75
Hình 72 Biểu đồ hoạt động tìm kiếm sản phẩm 76
Hình 73 Biểu đồ hoạt động thêm sản phẩm vào giỏ hàng 77
Hình 74 Biểu đồ hoạt động đặt hàng và thanh toán 78
Hình 75 Biểu đồ hoạt động quản lý sản phẩm 79
Hình 76 Biểu đồ hoạt động quản lý danh mục sản phẩm 80
Hình 77 Biểu đồ hoạt động quản lý khách hàng 81
Hình 78 Biểu đồ hoạt động quản lý đơn hàng 82
Hình 79 Biểu đồ hoạt động quản lý doanh thu 83
Hình 80 Biểu đồ hoạt động quản lý hóa đơn 84
Hình 81 Biểu đồ thành phần tổng quát 85
Hình 82 Biểu đồ thành phần triển khai chức năng của khách hàng 85
Hình 83 Biểu đồ thành phần triển khai chức năng quản trị viên 86
Hình 84 Biểu đồ triển khai tổng thể 86
Trang 7DANH SÁCH BẢNG
Bảng 1 Role - Vai trò của người dùng, để phân quyền người dùng 12
Bảng 2 User - Người dùng có tài khoản trong hệ thống 13
Bảng 3 Product - Sản phẩm được bán hệ thống 14
Bảng 4 Payment - Lưu trữ thông tin giao dịch trên hệ thống 15
Bảng 5 OTP - Mã OTP xác thực người dùng 16
Bảng 6 OrderStatus - Trạng thái đơn hàng 16
Bảng 7 OrderDetail - Chi tiết đơn hàng, chứa thông tin về từng sản phẩm đặt hàng 16
Bảng 8 Order - Đơn hàng 17
Bảng 9 Oauth - Open Authentication 17
Bảng 10 Category - Danh mục sản phẩm 17
Bảng 11 CartDetail: Thông tin về sản phẩm có trong giỏ hàng 18
Bảng 12 Cart: Giỏ hàng của khách hàng 18
Bảng 13 Mô tả các Actors 23
Bảng 14 Mô tả các Use Case 23
Bảng 15 Đặc tả Use Case UC01 – Đăng ký 24
Bảng 16 Đặc tả Use Case UC02 - Login 25
Bảng 17 Đặc tả Use Case UC03 – Đặt lại mật khẩu 26
Bảng 18 Đặc tả Use Case UC04 – Tìm kiếm sản phẩm 27
Bảng 19 Đặc tả Use Case UC05 – Xem sản phẩm 27
Bảng 20 Đặc tả Use Case UC06 – Quản lý tài khoản 28
Bảng 21 Đặc tả Use Case UC07 – Quản lý sản phẩm trong giỏ hàng 28
Bảng 22 Đặc tả Use Case UC08 – Đặt hàng 29
Bảng 23 Đặc tả Use Case UC09 – Quản lý sản phẩm 30
Bảng 24 Đặc tả Use Case UC10 – Quản lý danh mục sản phẩm 31
Bảng 25 Đặc tả Use Case UC11 – Quản lý người sử dụng 32
Bảng 26 Đặc tả Use Case UC12 – Quản lý đơn hàng 33
Bảng 27 Đặc tả Use Case UC13 – Quản lý doanh số 33
Bảng 28 Đặc tả Use Case UC14 – Quản lý hóa đơn 34
Trang 8CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG
1 LÝ DO CHỌN ĐỀ TÀI
Hiện nay, các công nghệ tiên tiến phát triển ngày càng mạnh mẽ và được ứng dụng ngày càng nhiều vào các lĩnh vực kinh tế, sản xuất cũng như đời sống thường nhật của con người Một điểm tiêu biểu trong việc phát triển các công nghệ đó phải kể đến việc ứng dụng công nghệ thông tin vào hầu khắp các hoạt động Nhờ đó, các công việc được thực hiện nhanh, chính xác và đạt kết quả cao hơn rất nhiều
Khi xã hội ngày càng phát triển, mức sống của người dân được nâng cao thu nhập kinh
tế ngày càng được cải thiện thì các thiết bị di động không còn trở nên xa lạ với mọi người nữa mà ngược lại nó là một vật dụng không thể thiếu đối với người dân hiện nay Hầu hết mỗi người đều trang bị cho mình một chiếc điện thoại phù hợp với nhu cầu và túi tiền của mình Tuy nhiên, với cuộc sống ngày càng bận rộn như hiện nay thì việc muốn mua một chiếc điện thoại mình ưa thích thì người tiêu dùng phải đến tận cửa hàng để chọn lựa vì thế
sẽ mất khá nhiều thời gian và công sức Cùng với các lý do nêu trên, qua tìm hiểu nhóm đồ
án được biết việc ứng dụng bán thiết bị di động trực tuyến sẽ giúp cho khách hàng giảm bớt được thời gian và công sức phải đến tận cửa hàng để mua
Muốn lựa chọn cho mình thiết bị di động ưng ý phù hợp với túi tiền thì khách hàng chỉ cần ngồi bên chiếc máy tính có nối mạng internet là có thế mua được mặt hàng di động mình cần Do đó nhóm đề tài chọn thực hiện đề tài “ Xây dựng hệ thống bán thiết bị di động trực tuyến”
2 PHÁT BIỂU BÀI TOÁN
Bài toán đặt ra : Xây dựng hệ thống bán thiết bị di động đáp ứng được nhu cầu mua bán online, các chức năng cơ bản cần đáp ứng:
– Quản lý thông tin khách hàng
– Quản lý doanh thu
– Đặt hàng và thanh toán đơn hàng
Trang 93 PHƯƠNG PHÁP NGHIÊN CỨU
Phương pháp phân tích hướng đối tượng là thuật ngữ thông dụng hiện thời của ngành
công nghiệp phần mềm Các công ty đang nhanh chóng tim cách áp dụng và tích hợp công nghệ mới này vào các ứng dụng của họ Thật sự là đa phần các ứng dụng hiện thời đều mang tính hướng đối tượng Lối tiếp cận hướng đối tượng là một lối tư duy về vấn đề theo lối ánh
xạ các thành phần trong bài toán vào các đối tượng ngoài đời thực Với lối tiếp cận này, chúng ta chia ứng dụng thành các thành phần nhỏ, gọi là các đối tượng, chúng tương đối độc lập với nhau Sau đó ta có thể xây dựng ứng dụng bằng cách chắp các đối tượng đó lại với nhau Hãy nghĩ đến trò chơi xây lâu đài bằng các mẫu gỗ Bước đầu tiên là tạo hay mua một vài loại mẫu gỗ căn bản, từ đó tạo nên các khối xây dựng căn bản của mình Một khi đã
có các khối xây dựng đó, bạn có thể chắp ráp chúng lại với nhau để tạo lâu đài Tương tự như vậy một khi đã xây dựng một số đối tượng căn bản trong thế giới máy tính, bạn có thể chấp chúng lại với nhau để tạo ứng dụng của mình
Các ưu điểm của phương pháp phân tích hướng đối tượng:
– Tập trung vào dữ liệu hơn là các thủ tục như trong Phân tích có cấu trúc
– Các nguyên tắc đóng gói và ẩn dữ liệu giúp nhà phát triển phát triển các hệ thống không thể bị can thiệp bởi các phần khác của hệ thống
– Cho phép quản lý hiệu quả sự phức tạp của phần mềm nhờ vào tính mô đun
– Có thể được nâng cấp từ các hệ thống nhỏ đến lớn một cách dễ dàng hơn so với các
hệ thống theo phân tích có cấu trúc
Phân tích hướng đối tượng :
Là giai đoạn phát triển một mô hình chính xác và súc tích của vấn đề, có thành phần là các đối tượng và khái niệm đời thực, dễ hiểu đối với người sử dụng vấn đề được trình bày bằng các thuật ngữ tương ứng với các đối tượng có thực Thêm vào đó, hệ thống cần phải được định nghĩa sao cho người không chuyên Tin học có thể dễ dàng hiểu được
Thiết kế hướng đối tượng :
Là giai đoạn tổ chức chương trình thành các tập hợp đối tượng cộng tác, mỗi đối tượng trong đó là thực thể của một lớp Các lớp là thành viên của một cây cầu trúc với mối quan
hệ thừa kế tập trung vào việc cải thiện kết quả của , tối ưu hóa giải pháp đã được cung cấp trong khi vẫn đảm bảo thoả mãn tất cả các yêu cầu đã được xác lập Trong giai đoạn nhà thiết kể định nghĩa các chức năng, thủ tục (operations), thuộc tỉnh (attributes) cũng như mối quan hệ của một hay nhiều lớp (class) và quyết định chung cần phải được điều chỉnh sao cho phù hợp với môi trường phát triển Đây cũng là giai đoạn để thiết kế ngân hàng dữ liệu
và áp dụng các kỹ thuật tiêu chuẩn hóa
Trang 10CHƯƠNG 2: KIẾN THỨC CƠ SỞ
1 CÁC BIỂU ĐỒ UML
1.1 Sơ đồ Use Case (Use Case Diagram)
Use Case được mô tả trong ngôn ngữ UML qua biểu đồ Use Case Một Use Case cần phải được mô tả sao cho dễ hiểu và dễ giao tiếp đối với người sử dụng, mà những cấu trúc phức tạp như một biểu đồ hoạt động có thể gây cảm giác xa lạ đối với những người không
quen sử dụng
Một biểu đồ UseCase gồm các thành phần: Hệ thống, Tác nhân, UseCase
1.2 Sơ đồ lớp (Class Diagram)
Class là thành phần chính của bản vẽ Class Diagram Class mô tả về một nhóm đối tượng có cùng tính chất, hành động trong hệ thống Class được mô tả gồm tên Class, thuộc tính và phương thức:
– Class Name: là tên của lớp
– Attributes (thuộc tính): mô tả tính chất của các đối tượng
– Method / Operation (Phương thức): chỉ các hành động mà đối tượng này có thể
thực hiện trong hệ thống Nó thể hiện hành vi của các đối tượng do lớp này tạo ra 1.3 Biểu đồ tuần tự (Sequence Diagram)
Biểu đồ tuần tự mô tả sự trao đổi thông điệp giữa các đối tượng tuần tự theo thời gian, thông điệp được gửi và nhận bởi các đối tượng đang hoạt động trong hệ thống Biểu đồ tuần tự được thể hiện theo hai trục:
– Trục dọc trên xuống chỉ thời gian xảy ra các sự kiện, hay sự truyền thông điệp, được biểu diễn bằng các đường thẳng đứng đứt nét bắt đầu từ đỉnh đến đáy của biểu
đồ
– Trục ngang từ trái qua phải là dãy các đối tượng tham gia vào việc trao đổi các thông điệp với nhau theo chiều ngang, có thể có cả các tác nhân
1.4 Biểu đồ trạng thái (State Chart Diagram)
Biểu đồ trạng thái mô tả chu kỳ tồn tại của đối tượng từ khi nó sinh ra đến khi nó bị phá hủy Sử dụng để mô hình hóa khía cạnh động của lớp Biểu đồ trạng thái bao gồm các thông tin sau:
– Các trạng thái của đối tượng
– Hành vi của đối tượng
– Sự kiện tác động làm thay đổi trạng thái
Trang 111.5 Biểu đồ cộng tác (Collaboration Diagram)
Một biểu đồ cộng tác miêu tả tương tác giữa các đối tượng cũng giống như biểu đồ tuần
tự, nhưng nó tập trung trước hết vào các sự kiện, tức là tập trung chủ yếu vào sự tương tác giữa các đối tượng
Trong một biểu đồ cộng tác, các đối tượng được biểu diễn bằng kí hiệu lớp Thứ tự trong biểu đồ cộng tác được thể hiện bằng cách đánh số các thông điệp Kỹ thuật đánh số được coi là hơi có phần khó hiểu hơn so với kỹ thuật mũi tên sử dụng trong biểu đồ tuần tự Nhưng
ưu điểm của biểu đồ cộng tác là nó có thể chỉ ra các chi tiết về các lệnh gọi hàm (thủ tục), yếu tố được né tránh trong biểu đồ tuần tự
1.6 Biểu đồ hoạt động (Activity Diagram)
Biểu đồ hoạt động nắm bắt hành động và các kết quả của chúng Biểu đồ hoạt động tập trung vào công việc được thực hiện trong khi thực thi một thủ tục (hàm), các hoạt động trong một lần thực thi một trường hợp sử dụng hoặc trong một đối tượng Biểu đồ hoạt động là một biến thể của biểu đồ trạng thái và có một mục tiêu tương đối khác, đó là nắm bắt hành động (công việc và những hoạt động phải được thực hiện) cũng như kết quả của chúng theo
sự biến đổi trạng thái Các trạng thái trong biểu đồ hoạt động (được gọi là các trạng thái hành động) sẽ chuyển sang giai đoạn kế tiếp khi hành động trong trạng thái này đã được thực hiện xong (mà không xác định bất kỳ một sự kiện nào theo như nội dung của biểu đồ trạng thái)
1.7 Biểu đồ thành phần (Component Diagram)
Biểu đồ thành phần (Component Diagram) là biểu đồ mô tả các thành phần và sự phụ thuộc của chúng trong hệ thống Các thành phần của hệ thống có thể là Thành phần mã nguồn, có ý nghĩa vào thời điểm dịch chương trình Thông thường nó là tập các chương trình cài đặt các lớp Trước khi phát sinh mã chương trình, phải thực hiện ánh xạ từng tệp vào thành phần tương ứng Thành phần thực thi là tệp chương trình có thể thực thi được (các tệp exe) Nó là kết quả của chương trình liên kết các thành phần nhị phân
Với biểu đồ thành phần, người phát triển hệ thống thực hiện dịch, triển khai hệ thống sẽ biết thư viện mã trình nào tồn tại và những tệp có thể thực thi (.exe) khi dịch và liên kết thành công
1.8 Biểu đồ triển khai (Deployment Diagram)
Biểu đồ triển khai (chỉ ra cấu hình các phần tử xử lý lúc chương trình chạy, các nút trên mạng và các tiến trình phần mềm thực hiện trên những phần tử đó Nó chỉ ra mối quan hệ giữa các phần cứng và phần mềm của hệ thống Biểu đồ triển khai chỉ ra toàn bộ các nút trên mạng, kết nối giữa chúng và các tiến trình chạy trên chúng
Trang 122 THIẾT KẾ CƠ SỞ DỮ LIỆU CHO HỆ THỐNG
2.1 Sơ đồ ERD của hệ thống
Hình 1 Sơ đồ ERD của hệ thống
2.2 Các bảng thuộc tính của hệ thống
Bảng 1 Role - Vai trò của người dùng, để phân quyền người dùng
createdAt timestamp CURRENT_TIMESTAMP Thời gian được tạo updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập nhật
Trang 13Bảng 2 User - Người dùng có tài khoản trong hệ thống
diện của người dùng
nhập vào hệ thống active
tinyint(1) 1
Mã trạng thái người dùng
Trạng thái xác thực tài khoản email đăng ký
createdAt timestamp CURRENT_TIMESTAMP Thời gian được tạo updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập nhật
Trang 14screen
varchar(200) NULL
Thông tin về màn hình
operatingSystem
Thông tin về hệ điều hành
vi xử lý
RAM storageCapacity int(UNSIGNED) NULL Dung lượng lưu
trữ weight
color
phẩm stockQuantity int(UNSIGNED) NOT_NULL Số lượng tồn createdAt timestamp CURRENT_TIMESTAMP Thời gian được
tạo updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập
nhật lần cuối
Trang 15Bảng 4 Payment - Lưu trữ thông tin giao dịch trên hệ thống
merchant_id varchar(255) NULL
Mã công ty ủy quyền thanh toán
merchant_email varchar(50) NULL
Nguồn thanh toán (đơn vị cung cấp)
thanh toán createdAt timestamp CURRENT_TIMESTAMP Thời gian được
tạo updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập
nhật lần cuối
Trang 16Bảng 5 OTP - Mã OTP xác thực người dùng
code createdAt timestamp CURRENT_TIMESTAMP Thời gian được tạo
Bảng 6 OrderStatus - Trạng thái đơn hàng
hàng
Tên trạng thái đơn hàng (pending, paid, delivering, delivered, pending cancel, cancelled) createdAt timestamp CURRENT_TIMESTAMP Thời gian được
tạo updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập
nhật lần cuối
Bảng 7 OrderDetail - Chi tiết đơn hàng, chứa thông tin về từng sản phẩm đặt hàng
createdAt timestamp CURRENT_TIMESTAMP Thời gian được
tạo updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập
nhật lần cuối
Trang 17Bảng 8 Order - Đơn hàng
orderStatusId tinyint FK
Bảng 9 Oauth - Open Authentication
oauth_provider
enum('google', 'facebook', 'twitter', 'linkedin')
NOT_NULL Dịch vụ cung cấp
Oauth
createdAt timestamp CURRENT_TIMESTAMP Thời gian được tạo updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập nhật
lần cuối
Bảng 10 Category - Danh mục sản phẩm
mục createdAt timestamp CURRENT_TIMESTAMP Thời gian được
tạo updatedAt Timestamp CURRENT_TIMESTAMP Thời gian cập
nhật lần cuối
Trang 18Bảng 11 CartDetail: Thông tin về sản phẩm có trong giỏ hàng
Tên thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
mua trong giỏ hàng createdAt timestamp CURRENT_TIMESTAMP Thời gian được tạo updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập nhật lần
cuối
Bảng 12 Cart: Giỏ hàng của khách hàng
createdAt timestamp CURRENT_TIMESTAMP Thời gian được tạo updatedAt timestamp CURRENT_TIMESTAMP Thời gian cập nhật lần
cuối
Trang 19CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
– Hệ thống cho phép người dùng thay đổi thông tin của mình như mật khẩu, ảnh đại diện, địa chỉ
Quản trị: Người quản trị có tài khoản riêng để kiểm soát các hoạt động của ứng dụng
Phần này đáp ứng các chức năng chính như:
– Quản lý sản phẩm
– Quản lý loại sản phẩm
– Tiếp nhận đơn hàng của khách hàng và xử lý đơn hàng
– Quản lý thông tin khách hàng
– Quản lý doanh thu
1.2 Yêu cầu phi chức năng
– Tốc độ tải trang nhanh chóng và cho phép số lượng người dùng truy cập đồng thời lớn
– Khả năng mở rộng, tính an toàn bảo mật thông tin – dữ liệu của khách hàng
– Khả năng tương thích hiệu quả trên đa dạng thiết bị, nền tảng và trình duyệt khác nhau
– Đảm bảo trải nghiệm của người dùng thuận tiện và dễ dàng
Trang 202 BIỂU ĐỒ USE CASE & ĐẶC TẢ (USE CASE DIAGRAM)
2.1 BIỂU ĐỒ USE CASE
2.1.1 Use Case tổng quát
Hình 2 Biểu đồ Use Case tổng quát
2.1.2 Use Case đăng ký tài khoản
Hình 3 Biểu đồ Use Case đăng ký tài khoản
Trang 212.1.3 Use Case đăng nhập
Hình 4 Biểu đồ Use Case đăng nhập
2.1.4 Use Case thanh toán
Hình 5.Biểu đồ Use Case thanh toán
Trang 222.1.5 Use Case quản lý doanh thu
Hình 6 Biểu đồ Use Case quản lý doanh thu
Trang 232.2 MÔ TẢ ACTORS & USE CASE
2.2.1 Mô tả Actors
1 Admin Toàn quyền trong hệ thống
2 Customer Các quyền cơ bản của người mua hàng
Bảng 13 Mô tả các Actors
2.2.2 Mô tả Use Case
1 UC01 Register Cho phép actor đăng ký vào hệ thống
2 UC02 Login Cho phép actor đăng nhập vào hệ thống
3 UC03 Forgot password Cho phép actor reset password
4 UC04 Search products Cho phép actor tìm kiếm sản phẩm
5 UC05 View products Cho phép actor xem chi tiết sản phẩm
6 UC06 Manage account Cho phép actor quản lý tài khoản
7 UC07 Manage cart Cho phép actor quản lý sản phẩm trong giỏ hàng
8 UC08 Place order Cho phép actor đặt hàng và thanh toán
9 UC09 Manage product Cho phép actor quản lý sản phẩm bán ra
10 UC10 Manage category Cho phép actor quản lý danh mục sản phẩm
11 UC11 Manage user Cho phép actor quản lý người dùng
12 UC12 Manage order Cho phép actor quản lý đơn hàng
13 UC13 Manage revenue Cho phép actor quản lý doanh thu
14 UC14 Manage invoice Cho phép actor quản lý hóa đơn
Bảng 14 Mô tả các Use Case
Trang 242.3 ĐẶC TẢ USE CASE
2.3.1 UC01: Register
ứng dụng
Basic Flow
1 Người dùng truy cập vào trang web thương mại
2 Người dùng chọn đăng ký tài khoản
3 Hệ thống xác thực thông tin đăng ký (gửi OTP) thành công và cho phép người dùng truy cập vào ứng dụng
4 Hệ thống ghi nhận hoạt động đăng ký thành công và Activity Logs
Alternative Flow
2a Người dùng chọn phương thức đăng ký với Google
3a Hệ thống chuyển sang màn hình đăng nhập tài khoản Google 3a1 Người dùng nhập tài khoản Google và tiến hành ủy quyền cho web thương mại
3a2 Google xác thực thông tin, cho phép người dùng truy cập ứng dụng
Use Case tiếp tục bước 4
Use Case dừng lại
đăng ký của email đăng ký tài khoản 15 phút
Bảng 15 Đặc tả Use Case UC01 – Đăng ký
Trang 252.3.2 UC02: Login
vụ của ứng dụng
Basic Flow
1 Người dùng truy cập ứng dụng web
2 Người dùng chọn phương thức đăng nhập bằng tài khoản đã đăng ký của trang thương mại
3 Người dùng nhập tài khoản đó và chọn lệnh đăng nhập
4 Hệ thống xác thực thông tin đăng nhập thành công và cho phép người dùng truy cập ứng dụng
5 Hệ thống ghi nhận hoạt động đăng nhập thành công vào Activity Log
Use Case tiếp tục bước 5
Exception Flow
4c Hệ thống xác thực thông tin đăng nhập không thành công và hiển thị thông báo
4c1 Người dùng chọn lệnh hủy đăng nhập
Use Case dừng lại
4c2 Người dùng chọn lệnh lấy lại mật khẩu
Use Case tiếp tục Use Case UC03
năng đăng nhập 15 phút
Bảng 16 Đặc tả Use Case UC02 - Login
Trang 262.3.3 UC03: Forgot Password
Post-Condition(s): Người dùng thay đổi mật khẩu thành công
Basic Flow
1 Người dùng truy cập ứng dụng web
2 Người dùng chọn phương thức đăng nhập bằng tài khoản đã đăng ký của trang thương mại
3 Người dùng chọn quên mật khẩu
4 Hệ thống chuyển đến trang khôi phục mật khẩu, người dùng nhập địa chỉ email để lấy mã khôi phục
5 Hệ thống kiểm tra tính hợp lệ của mã OTP và cho phép người dùng cập nhật mật khẩu mới
6 Cập nhật mật khẩu thành công, người dùng trở lại trang đăng nhập
5c1 Cho phép gửi lại mã OTP
Use Case tiếp tục bước 5
gửi OTP
Bảng 17 Đặc tả Use Case UC03 – Đặt lại mật khẩu
Trang 272.3.4 UC04: Search products
Post-Condition(s): Hiển thị danh sách sản phẩm
Basic Flow
1 Người dùng truy cập ứng dụng web
2 Người dùng nhập ký tự cần tìm kiếm
2 Hệ thống hiển thị sản phẩm cần tìm kiếm
Bảng 18 Đặc tả Use Case UC04 – Tìm kiếm sản phẩm
2.3.5 UC05: View products
Post-Condition(s): Hiển thị danh sách sản phẩm
2 Hệ thống hiển thị sản phẩm
Bảng 19 Đặc tả Use Case UC05 – Xem sản phẩm
Trang 282.3.6 UC06: Manage account
– Đăng nhập tài khoản thành công
Post-Condition(s): Người dùng xem, sửa đổi thông tin cá nhân thành công
Basic Flow
1 Người dùng đăng nhập vào hệ thống
2 Người dùng truy cập vào trang quản lý tài khoản
3 Người dùng xem, chỉnh sửa thông tin cá nhân
Bảng 20 Đặc tả Use Case UC06 – Quản lý tài khoản
2.3.7 UC07: Manage cart
– Đăng nhập tài khoản thành công
Post-Condition(s): Người dùng xem, sửa đổi thông tin cá nhân thành công
Basic Flow
1 Người dùng đăng nhập vào hệ thống
2 Người dùng truy cập vào giỏ hàng
3 Người dùng xem, thêm, xóa, sửa sản phẩm trong giỏ hàng
Bảng 21 Đặc tả Use Case UC07 – Quản lý sản phẩm trong giỏ hàng
Trang 292.3.8 UC08: Place order
– Đăng nhập tài khoản thành công
Post-Condition(s): Người dùng đặt hàng thành công, hệ thống ghi nhận đơn hàng
Basic Flow
1 Người dùng chọn sản phẩm, click chọn mua hàng
2 Người dùng nhập thông tin mua hàng
3 Hệ thống xác thực thông tin, tạo đơn hàng
4 Người dùng chọn phương thức thanh toán
5 Người dùng đăng nhập tài khoản thanh toán
6 Thực hiện thanh toán với khoảng tiền của đơn hàng
Exception Flow
5a Hệ thống xác thực thông tin đăng nhập thanh toán không thành công và hiển thị thông báo
5a1 Người dùng chọn lệnh hủy đăng nhập
Use Case dừng lại
Bảng 22 Đặc tả Use Case UC08 – Đặt hàng
Trang 302.3.9 UC09: Manage product
Pre-Condition(s): Đăng nhập bằng tài khoản quản trị viên
Basic Flow
1 Quản trị viên nhấn nút để hiển thị form
2 Quản trị viên nhập thông tin sản phẩm
3 Hệ thống xác thực thông tin sản phẩm
4 Sản phẩm được thêm, xóa, sửa thành công
3a1 Hiển thị thông điệp để quản trị viên biết
Use Case dừng lại
Bảng 23 Đặc tả Use Case UC09 – Quản lý sản phẩm
Trang 312.3.10 UC10: Manage category
Pre-Condition(s): Đăng nhập bằng tài khoản quản trị viên
Post-Condition(s): Thêm, xóa, sửa danh mục thành công
Basic Flow
1 Quản trị viên nhấn nút để hiển thị form
2 Quản trị viên nhập thông tin danh mục
3 Hệ thống xác thực thông tin danh mục
4 Danh mục được thêm, xóa, sửa thành công
3a1 Hiển thị thông điệp để quản trị viên biết
Use Case dừng lại
Bảng 24 Đặc tả Use Case UC10 – Quản lý danh mục sản phẩm
Trang 322.3.11 UC11: Manage user
trong hệ thống
Pre-Condition(s): Đăng nhập bằng tài khoản quản trị viên
Post-Condition(s): Thêm, xóa, sửa, chặn người dùng thành công
Basic Flow
1 Quản trị viên nhấn nút để hiển thị form
2 Quản trị viên nhập thông tin người dùng, hoặc thực hiện nhấn nút chặn, xóa người dùng
3 Hệ thống xác thực thông tin người dùng
4 Người dùng được thêm, xóa, sửa, chặn thành công
Exception Flow 3a Hệ thống xác thực thông tin người dùng thất bại
3a1 Hiển thị thông điệp để quản trị viên biết
Use Case dừng lại
Bảng 25 Đặc tả Use Case UC11 – Quản lý người sử dụng
Trang 332.3.12 UC12: Manage order
tiết đơn hàng
Pre-Condition(s): Đăng nhập bằng tài khoản quản trị viên
Post-Condition(s): Duyệt, hủy, xem chi tiết đơn hàng thành công
Basic Flow
1 Quản trị viên nhấn duyệt, hủy, xem chi tiết đơn hàng
2 Quản trị viên xác nhận duyệt, hủy, xem chi tiết đơn hàng
3 Quản trị viên duyệt, hủy, xem chi tiết đơn hàng thành công
Exception Flow 3a Hệ thống duyệt, hủy, xem chi tiết đơn hàng thất bại
3a1 Hiển thị thông điệp để quản trị viên biết
Use Case dừng lại
Bảng 26 Đặc tả Use Case UC12 – Quản lý đơn hàng
2.3.13 UC13: Manage revenue
thời gian, và theo loại sản phẩm
Pre-Condition(s): Đăng nhập bằng tài khoản quản trị viên
Bảng 27 Đặc tả Use Case UC13 – Quản lý doanh số
Trang 342.3.14 UC14: Manage invoice
đơn theo đơn hàng, hóa đơn theo khách hàng
Pre-Condition(s): Đăng nhập bằng tài khoản quản trị viên
Bảng 28 Đặc tả Use Case UC14 – Quản lý hóa đơn
Trang 353 BIỂU ĐỒ LỚP (CLASS DIAGRAM)
3.1 BIỂU ĐỒ CLASS TỔNG QUÁT
Hình 7 Biểu đồ class tổng quát
Trang 363.2 PHÂN TÍCH
3.2.1 Product class
Product class biểu diễn các thuộc tính và operations Product class chứa các thông tin liên quan đến sản phẩm cần bán, thí dụ name, categoryId, description và các thông số kỹ thuật khác
Hình 8 Biểu đồ class Product
3.2.2 OTP class
OTP class biểu diễn các thuộc tính và operations OTP class sử dụng cho việc quản lý việc tạo và lưu trữ cũng như xác minh mã OTP, đảm bảo rằng thông tin user là hợp lệ OTP class chứa các thuộc tính và phương thức như sau:
Hình 9 Biểu đồ class OTP
Trang 373.2.3 User class
User class biểu diễn các thuộc tính và operations User class chứa các thông tin quan trọng liên quan đến khách hàng như email, password, phone, ngoài ra còn có roleId để phân quyền giữa admin và user
Các property như active đại diện cho user đó có bị khóa hay không, verified cho biết user đó đã xác minh tài khoản qua OTP hay chưa
User class chứa các thuộc tính và phương thức như sau:
Hình 10 Biểu đồ class User
3.2.4 Order class
Order class biểu diễn các thuộc tính và operations Order class chứa các thông tin liên quan đến đơn hàng cần đặt, bao gồm: mã đơn hàng – orderId, mã sản phẩm – productId, số lượng của sản phẩm – quantity, giá sản phẩm – price
Order class chứa các thuộc tính và phương thức như sau:
Trang 38Hình 11 Biểu đồ class Order
3.2.5 Oauth class
Oauth class được sử dụng để lưu mã authentication của nhà cung cấp dịch vụ
Ví dụ: sử dụng google authentication cho tài khoản example@gmail.com, google service sẽ trả về một mã oauth_uid duy nhất cho một tài khoản google
Hàm register() có chức năng lưu trữ thông tin của oauth table về userId, oauth_id và oauth_provider
Hàm getOauth() lấy một record trong CSDL, có thể sử dụng để xác định user đó có sử dụng Oauth hay không
Hình 12 Biểu đồ class Oauth
Trang 39Hình 14 Biểu đồ class Cart
Trang 40Hình 15 Biểu đồ PayPal class
3.2.9 Payment class
Payment class chứa các thông tin về thanh toán được Paypal Payment trả về sau khi thanh toán thành công, chứa các thông tin quan trọng như order_id, invoice_id, transaction_id – có thể dùng để tra soát giao dịch và hoàn tiền cho khách hàng, paid_amount – khoảng tiền đã thanh toán, paid_amount_currency – đơn vị tiền tệ thanh toán, payment_source – nhà cung cấp dịch vụ thanh toán, payment_status: trạng thái thanh toán Phương thức getPayment(), lấy ra thông tin thanh toán của đơn hàng
Phương thức createPayment(), tạo một thanh toán mới cho đơn hàng
Hình 16 Biểu đồ class Payment