You are on page 1of 24

<<Logo here>>

TITLE HERE

<<TÊN DỰ ÁN>>

Mã hiệu dự án: <<Mã dự án>>

Mã hiệu tài liệu: SRS_Mã hiệu dự án_version tài liệu

Hà Nội, mm/yyyy
Mã tài liệu v0.1

BẢNG GHI NHẬN THAY ĐỔI TÀI LIỆU

A* – Tạo mới, M – Sửa đổi, D – Xóa bỏ

Ngày Vị trí A* Phiên Phiên Người


Nguồn gốc Mô tả thay đổi
thay đổi thay đổi M, D bản cũ bản mới sửa đổi

20/06/2023 Toàn bộ A* Tạo mới toàn bộ nội dung v1.0 NVA

Mục Thay đổi luồng đăng ký


10/07/2023 M v1.0 v1.1 NVA
3.1.1 người dùng

2/24
Mã tài liệu v0.1

TRANG KÝ

Người lập: __<<Người lập 1>>__ Ngày: <<dd/mm/yyyy>>

__<< Người lập 2>>__

__<< Người lập 3>>__

Người xem xét: __<<Xem xét 1>>__ Ngày: <<dd/mm/yyyy>>

__<<Xem xét 2>>__

Người phê duyệt: __<<Phê duyệt 1>>__ Ngày: <<dd/mm/yyyy>>

__<<Phê duyệt 2>>__ <<dd/mm/yyyy>>

3/24
Mã tài liệu v0.1

MỤC LỤC

1 GIỚI THIỆU ............................................................................................................... 5

1.1 Mục đích .............................................................................................................. 5


1.2 Phạm vi ................................................................................................................ 5
1.3 Khái niệm, thuật ngữ ............................................................................................ 5
1.4 Tài liệu tham khảo ............................................................................................... 6
1.5 Mô tả tài liệu ........................................................................................................ 6
2 TỔNG QUAN THIẾT KẾ.......................................................................................... 6

2.1 Mô hình phân rã phân hệ/chức năng .................................................................... 7


2.2 Bảng ma trận phân quyền .................................................................................... 8
3 YÊU CẦU CHỨC NĂNG........................................................................................... 9

3.1 Chức năng 1 ......................................................................................................... 9


3.1.1 Thông tin chung chức năng............................................................................. 9

3.1.2 Luồng màn hình ............................................................................................ 10

3.1.3 Mô tả chi tiết các thành phần trên màn hình ................................................ 10

3.1.4 Luồng dữ liệu (DFD) .................................................................................... 21

3.1.5 Mô tả luồng dữ liệu ....................................................................................... 21

3.1.6 Xử lý luồng sự kiện tương tác ....................................................................... 22

4/24
1 GIỚI THIỆU

1.1 Mục đích

Tài liệu thiết kế chi tiết được tạo với mục đích:

Là tài liệu giúp liên kết các tài liệu BRD, Prototype/Mockup, TKCSDL, đủ để cán bộ phát
triển thực hiện lập trình chức năng, cán bộ kiểm thử thực hiện lập kịch bản kiểm thử và test
chương trình.

1.2 Phạm vi

Phần mềm được xây dựng dựa trên phạm vi như sau:

- Tên sản phẩm: Hệ thống Quản lý Khách hàng thân thiết


- Các thành phần chính:
o QL Tài khoản: có phân quyền cho phía Doanh nghiệp và phía Customer.
o QL Khách hàng.
o QL Role
o QL Lịch sử Hoạt động
o QL Chiến dịch quảng cáo.
o QL Điểm
o Tiến trình/API
Tài liệu này không chỉ viết một lần mà sẽ được cập nhật khi có các yêu cầu thay đổi trong
quá trình thực hiện dự án. Mỗi yêu cầu thay đổi trong tài liệu này sẽ ảnh hưởng trực tiếp đến
kết quả của quá trình phân tích thiết kế, phát triển và kiểm thử hệ thống.

1.3 Khái niệm, thuật ngữ

Thuật ngữ Định nghĩa Ghi chú

Goods Sản phẩm, hàng hóa vật lí N/A

Coupon Mã giảm giá

5/24
1.4 Tài liệu tham khảo

Tên tài liệu Ngày phát hành Nguồn Ghi chú

1.5 Mô tả tài liệu

Bố cục của tài liệu gồm 6 phần:

- Phần 1: Giới thiệu chung – Giới thiệu tổng thể về tài liệu
- Phần 2: Tổng quan thiết kế - Mô tả tổng quan về mô hình hệ thống
- Phần 3: Yêu cầu chức năng – Mô tả chi tiết các chức năng của hệ thống
2 TỔNG QUAN THIẾT KẾ

Mô hình tổng quan

Giao tiếp hệ thống

<< Mô tả chung chung>>

- Tiến trình chạy tự động cập nhật điểm hàng ngày

- API đồng bộ dữ liệu

Giao tiếp người dùng

<< Mô tả sơ bộ các tương tác mà người dùng (các actor) có thể sử dụng>>

- Thêm, sửa, xóa, xem thông tin hạng khách

Giao tiếp phần mềm

<<Optional>>

- Tương tác với hệ thống ABC thông qua các API.

Môi trường phát triển và triển khai

6/24
Môi trường phát triển Môi trường triển khai

- iOS 10.0 +, Android 8.0 + iOS 10.0 +, Android 8.0 +

- Web browser: - Web browser:

oFirefox 30.6 + oFirefox 30.6 +

oChrome 35.5+ oChrome 35.5+

oSafari 10,0+ oSafari 10,0+

- REDIS

- MySQL Server

- MongoDB

Giả định và phụ thuộc

N/A

2.1 Mô hình phân rã phân hệ/chức năng

<<Mô hình phân ra chức năng – Thể hiện các chức năng của hệ thống ở đây, vẽ theo hình
cây để dễ theo dõi>>

Hình 1 Mô hình phân rã chức năng hệ thống

7/24
2.2 Bảng ma trận phân quyền

<<Optional, nên sử dụng với các hệ thống có phân quyền>>

Y Được full quyền tác động trên mọi tài khoản

Y* Được quyền tác động trên tài khoản của mình mà không ảnh hưởng đến tài khoản
người khác

N Không được quyền

Admin Customer Guess

QL Hạng khách

Thêm mới Hạng Khách Y N N

Sửa hạng khách Y N N

Xem thông tin hạng khách Y Y* N

Tìm kiếm hạng khách Y Y Y

QL Rule

Thêm mới Rule Y N N

Sửa rule Y N N

Xóa rule Y N N

Tìm kiếm rule Y N N

8/24
3 YÊU CẦU CHỨC NĂNG

3.1 Chức năng 1

3.1.1 Thông tin chung chức năng

<< Mô tả chung chung để khi đọc đến, biết được là chức năng này mục đích để làm gì>>

<<Nêu mục đích của chức năng>>


Mục đích Ví dụ: Chức năng dùng để đăng ký tài khoản người dùng Mobile
qua username/mật khẩu

<<Nêu tác nhân kích hoạt chức năng>>


Tác nhân
Ví dụ: End user

<<Nêu thao tác kích hoạt chức năng>>


Trigger
Ví dụ: Chọn “Đăng ký” băng username/mật khẩu

<<Nêu điều kiện tiên quyết>>


Pre-Condition
Ví dụ: username chưa tồn tại trên hệ thống

<<Nêu điều kiện hoàn thành>>


Post-Condition Ví dụ: người dùng đăng ký thành công và đăng nhập thành công
vào hệ thống.
3.1.2 Luồng màn hình

Hình 2: Màn hình thêm mới Hạng khách

3.1.3 Mô tả chi tiết các thành phần trên màn hình

STT Tên Loại Bắt Độ dài Read Mô tả (Mapping với CSDL


Control buộc tối đa only nếu có)

1. txtCusLevel Textbox X 30 N/A Trường này để mô tả về tên


của Hạng khách (ví dụ: Khách
hàng Thân thiết, VIP, Hạng
vàng, hạng bạc….).
Chấp nhận chữ hoa, thường,
số, kí tự đặc biệt.
Validate:

- Không nhập: báo lỗi,


hiển thị lỗi dạng tooltip
hoặc focus vào trường
lỗi hoặc hiển thị thông
báo “Bạn vui lòng nhập
tên Hạng khách”
- Nhập quá maxlength:
chặn nhập tiếp

- Maxlength bao gồm cả


kí tự space, tab ở đầu
và cuối.

- Trim space, trim tab


đầu cuối trước khi lưu

10/24
STT Tên Loại Bắt Độ dài Read Mô tả (Mapping với CSDL
Control buộc tối đa only nếu có)
vào DB.
- Không cần check trùng
(đã phân biệt bằng mã
Khách hàng)
2. txtCusLevelID Textbox X 20 N/A Trường này sử dụng để đặt mã
cho hạng khách.
- Chấp nhận kí tự chữ
hoa, chữ thường, số,
không chấp nhận kí tự
đặc biệt ngoài các kí tự
“.”, “_” (không bao
gồm dấu “”)
- KHÔNG phân biệt hoa
thường, giá trị sau nhập
tự động được upper
case.
Validate:

- Không nhập: báo lỗi,


hiển thị lỗi dạng tooltip
hoặc focus vào trường
lỗi hoặc hiển thị thông
báo “Bạn vui lòng nhập
mã Hạng khách”
- Nhập quá maxlength:
chặn nhập tiếp
- Maxlength bao gồm cả
kí tự space, tab ở đầu
và cuối.
- Trim space, trim tab
đầu cuối trước khi lưu
vào DB

- Check trùng, hiển thị


thông báo “Mã hạng
khách đã tồn tại, vui

11/24
STT Tên Loại Bắt Độ dài Read Mô tả (Mapping với CSDL
Control buộc tối đa only nếu có)
lòng nhập mã hạng
khách khác”.

3. txtCusLevelDes Textarea 2000 N/A Trường này dùng để mô tả cho


nội dung của việc định nghĩa
một hạng khách. Chấp nhận kí
tự hoa thường, số, kí tự đặc
biệt.
Validate:

- Nhập quá maxlength,


chặn nhập maxlength.

- Maxlength tính bao


gồm các kí tự space,
tab đầu cuối.

4. btnAdd Button N/A Enable Button này sử dụng để kích


hoạt tính năng thêm mới Hạng
khách.
Lưu ý:
- Các validate ở trên
được kích hoạt khi
click vào chọn Button
này.
- Thêm mới thành công,
thông tin được lưu vào
DB, hiển thị thông báo
“Thêm mới Hạng
khách thành công”. Các
trường thông tin được
lưu vào DB gồm
(tương tự cho chức
năng sửa, xóa):
o Tên Hạng khách

o Mã hạng khách
o Mô tả

12/24
STT Tên Loại Bắt Độ dài Read Mô tả (Mapping với CSDL
Control buộc tối đa only nếu có)

o Trạng thái hiện tại


(current state): Đang
kích hoạt (Activated)
o Trạng thái trước đó
(last state): null
o Ngày tạo created date
(lấy theo timestamp của
server)
o Ngày thay đổi
(modified date): null
o Người tạo (creator): lấy
theo username đăng
nhập hệ thống

o Người thay đổi


(modifier): Null

5. btnCancel Button Enable Button được sử dụng để thoát


khỏi pop-up Thêm mới hạng
khác.

Khi click chọn button này,


hiển thị confirm pop-up để xác
nhận việc thoát khỏi tính năng.
Nội dung của confirm pop-up
“Dữ liệu sẽ không được lưu
lại, bạn có chắc muốn thoát?”.

6. btnYes Button Enable Button được sử dụng xác nhận


việc thoát khỏi chức năng. Khi
button được kích hoạt, đóng
màn hình pop-up thêm mới
hạng khách, thông tin KHÔNG
được lưu vào DB.

13/24
STT Tên Loại Bắt Độ dài Read Mô tả (Mapping với CSDL
Control buộc tối đa only nếu có)

7. btnNo Button Enable Button được sử dụng để xác


nhận vẫn tiếp tục thực hiện
pop-up Thêm mới Hạng khách.
Khi button này được kích hoạt,
đóng màn hình confirm pop-up
để quay về pop-up thêm mới
Hạng khách.

8. txtCusLevelID Textbox X 20 N/A Trường này sử dụng để đặt mã


cho hạng khách.
- Chấp nhận kí tự chữ
hoa, chữ thường, số,
không chấp nhận kí tự
đặc biệt ngoài các kí tự
“.”, “_” (không bao
gồm dấu “”)
- KHÔNG phân biệt hoa
thường, giá trị sau nhập
tự động được upper
case.
Validate:

- Không nhập: báo lỗi,


hiển thị lỗi dạng tooltip
hoặc focus vào trường
lỗi hoặc hiển thị thông
báo “Bạn vui lòng nhập
mã Hạng khách”
- Nhập quá maxlength:
chặn nhập tiếp
- Maxlength bao gồm cả
kí tự space, tab ở đầu
và cuối.

- Trim space, trim tab


đầu cuối trước khi lưu

14/24
STT Tên Loại Bắt Độ dài Read Mô tả (Mapping với CSDL
Control buộc tối đa only nếu có)
vào DB

- Check trùng, hiển thị


thông báo “Mã hạng
khách đã tồn tại, vui
lòng nhập mã hạng
khách khác”.

9. txtCusLevelDes Textarea 2000 N/A Trường này dùng để mô tả cho


nội dung của việc định nghĩa
một hạng khách. Chấp nhận kí
tự hoa thường, số, kí tự đặc
biệt.
Validate:

- Nhập quá maxlength,


chặn nhập maxlength.

- Maxlength tính bao


gồm các kí tự space,
tab đầu cuối.

10. btnAdd Button N/A Enable Button này sử dụng để kích


hoạt tính năng thêm mới Hạng
khách.
Lưu ý:
- Các validate ở trên được
kích hoạt khi click vào
chọn Button này.
- Thêm mới thành công,
thông tin được lưu vào DB,
hiển thị thông báo “Thêm
mới Hạng khách thành
công”. Các trường thông
tin được lưu vào DB gồm
(tương tự cho chức năng
sửa, xóa):

15/24
STT Tên Loại Bắt Độ dài Read Mô tả (Mapping với CSDL
Control buộc tối đa only nếu có)

o Tên Hạng khách

o Mã hạng khách
o Mô tả
o Trạng thái hiện tại
(current state): Đang
kích hoạt (Activated)

o Trạng thái trước đó


(last state): null
o Ngày tạo created date
(lấy theo timestamp của
server)
o Ngày thay đổi
(modified date): null
o Người tạo (creator): lấy
theo username đăng
nhập hệ thống

o Người thay đổi


(modifier): Null

11. btnCancel Button Enable Button được sử dụng để thoát


khỏi pop-up Thêm mới hạng
khác.
- Khi click chọn
button này, hiển
thị confirm pop-up
để xác nhận việc
thoát khỏi tính
năng. Nội dung
của confirm pop-
up “Dữ liệu sẽ
không được lưu lại,
bạn có chắc muốn
thoát?”.

16/24
STT Tên Loại Bắt Độ dài Read Mô tả (Mapping với CSDL
Control buộc tối đa only nếu có)

12. btnYes Button Enable Button được sử dụng xác nhận


việc thoát khỏi chức năng. Khi
button được kích hoạt, đóng
màn hình pop-up thêm mới
hạng khách, thông tin KHÔNG
được lưu vào DB.

13. btnNo Button Enable Button được sử dụng để xác


nhận vẫn tiếp tục thực hiện
pop-up Thêm mới Hạng khách.
Khi button này được kích hoạt,
đóng màn hình confirm pop-up
để quay về pop-up thêm mới
Hạng khách.

14. cldFromDate Calendar Trường dữ liệu tìm kiếm “Từ


ngày”

15. cldEndDate Calendar Trường dữ liệu tìm kiếm “Đến


ngày”

16. btnSearch Button X Dùng để tìm kiếm dữ liệu

17. tblSubComplaintR Table X Bảng dùng để hiển thị thông


eturnedHistory tin về lịch sử khiếu nại bị trả
lại của thuê bao, gồm:

- Subscriber (số thuê bao)

- Receipt date (Ngày tiếp


nhận)

- Return date (ngày trả lại)

17/24
STT Tên Loại Bắt Độ dài Read Mô tả (Mapping với CSDL
Control buộc tối đa only nếu có)

- Return reason (Lý do trả


lại)

- Complaint content (Nội


dung khiếu nại)

- Complaint type (loại khiếu


nại)

- Process result (kết quả xử


lý)

- Edit (Sửa), chứa các icon


edit

18. btnEdit Button X Là một icon, sử dụng để edit


nội dung của bản ghi tương
ứng

19. btnClose Button X Button dùng để đóng pop-up

20. cldFromDate Calendar Trường dữ liệu tìm kiếm “Từ


ngày”

21. cldEndDate Calendar Trường dữ liệu tìm kiếm “Đến


ngày”

22. btnSearch Button X Dùng để tìm kiếm dữ liệu

23. tblSubPromotionPr Table X Bảng dùng để hiển thị thông


ogram tin về lịch sử khuyến mại của
thuê bao, gồm:

- Subscriber/Account (số
thuê bao/số Account)

- Promotion Cycle (Chu kỳ

18/24
STT Tên Loại Bắt Độ dài Read Mô tả (Mapping với CSDL
Control buộc tối đa only nếu có)
khuyến mại)

- Promotion Program Code


(Mã chương trình khuyến
mại)

- Content of Promotion
program (Nội dung chương
trình khuyến mại)

- Start date of promotion


(Ngày bắt đầu khuyến mại)

- End date of promotion


(Ngày kết thúc khuyến
mại)

- Amount of promotion (Giá


trị khuyến mại)

24. btnClose Button X Button dùng để đóng pop-up

25. cldFromDate Calendar Trường dữ liệu tìm kiếm “Từ


ngày”

26. cldEndDate Calendar Trường dữ liệu tìm kiếm “Đến


ngày”

27. btnSearch Button X Dùng để tìm kiếm dữ liệu

28. tblPresentHistory Table X Bảng dùng để hiển thị thông


tin về lịch sử tặng quà của thuê
bao, gồm:

- Customer Care program

19/24
STT Tên Loại Bắt Độ dài Read Mô tả (Mapping với CSDL
Control buộc tối đa only nếu có)
type (Loại chương trình
chăm sóc khách hàng)

- Formality Name (Tên hình


thức)

- Present Name (Tên quà


tặng)

- Present worth (Giá trị quà


tặng)

- Presenter (Người tặng quà)

- Receiver (Người nhận quà)

- Descrption (Mô tả)

Một số exception chung:


- Session timeout: 5 phút (600 giây) nếu không thực hiện bất kì thao tác nào. Thời gian
bắt đầu tính timeout kể từ lần cuối có hành vi sử dụng hệ thống (trên cùng 01 trình
duyệt, windows)
- Đang thực hiện thao tác ở pop-up thêm mới Hạng khách:

o Chuyển sang tab khác rồi chuyển lại tab đang thực hiện, hệ thống vẫn cho phép thực
hiện thao tác như bình thường.
o Chuyển sang menu khác trên hệ thống Loyalty, thì mọi thao tác thực hiện trước đó
không được lưu lại.
- Với các luồng thực hiện song song: trên cùng trình duyệt, khác trình duyệt, cùng thiết
bị, khác thiết bị: dữ liệu hợp lệ ghi nhận theo timestamp của server, bản dữ liệu nào
đến trước sẽ được ghi nhận, bản dữ liệu đến sau thì ở frontend hiển thị thông báo
“Hạng khách đã tồn tại, vui lòng nhập hạng khách khác”.
- Lỗi khi lưu thông tin xuống DB: thực hiện rollback toàn bộ, hiển thị lên màn hình
“thêm mới hạng khách không thành công, vui lòng thử lại”.

20/24
3.1.4 Luồng dữ liệu (DFD)

Hình 3 Biểu đồ luồng hoạt động chức năng Thêm mới hạng khách

3.1.5 Mô tả luồng dữ liệu

<< Thể hiện được luồng thực hiện, các tác nhân/phân hệ xử lí, có thể nhiều hơn 1 tác nhân,
thì tách càng chi tiết tác nhân/phân hệ ra càng tốt ➔ tương tự như sequence diagram, xem ở
dưới>>

Bước thực hiện Người dùng Hệ thống

(1) Chọn Thêm mới Hạng khách Hiển thị pop-up Thêm mới Hạng
khách

21/24
(2) Người dùng thực hiện nhập thông tin
vào các form trên pop-up

(2.1) Chọn “Thoát” Hiển thị confirm pop-up

(2.1.1) Đồng ý thoát Thoát ra khỏi màn hình pop-up Thêm


mới Hạng khách

(2.1.2) Không đồng ý thoát Quay trở lại màn hình pop-up Thêm
mới Hạng khách

(2.2) Chọn “Thêm mới” Kiểm tra tính hợp lệ dữ liệu.


- Nếu dữ liệu không hợp lệ, hiển thị
thông báo lỗi, quay về bước (2)

- Nếu dữ liệu hợp lệ, thông báo


thành công, lưu dữ liệu vào DB,
đóng màn hình pop-up để ra màn
hình chính của QL Danh mục
Hạng khách.

3.1.6 Xử lý luồng sự kiện tương tác

<<Optional, sử dụng khi có nhiều tương tác giữa các phân hệ Client-Web service – backend
– DB…, có thể vẽ dưới dạng biểu đồ tuần tự (sequence diagram) hoặc biểu đồ giao tiếp
(communication diagram), Dev nên thực hiện phần này>>.

22/24
Hình 4 Biểu đồ tuần tự chức năng thêm mới Hạng khách

- Việc validate xử lí ở Client, thành công thì chuyển bước tiếp theo, thất bại thì trả về
thông báo cho người dùng.

- Backend xử lí cập nhật dữ liệu và phản hồi về cho người dùng:

o Cập nhật DB thành công, thông báo thành công “Thêm mới Hạng khách thành
công”.

o Có lỗi khi cập nhật, thực hiện rollback dữ liệu, thông báo lỗi “Thêm mới thất
bại, vui lòng thử lại”.

- Dữ liệu cập nhật vào DB vào các trường (refer tài liệu thiết kế Database):

o Tên Hạng khách

o Mã hạng khách
o Mô tả

o Trạng thái hiện tại (current state): Đang kích hoạt (Activated)

23/24
o Trạng thái trước đó (last state): null
o Ngày tạo created date (lấy theo timestamp của server)

o Ngày thay đổi (modified date): null


o Người tạo (creator): lấy theo username đăng nhập hệ thống

o Người thay đổi (modifier): Null

Câu truy vấn để kiểm tra lại:

SELECT * from TBL_CUST_LEVEL where CUST_LEVEL_ID = ‘’;

24/24

You might also like