ĐẠI HỌC BÁCH KHOA HÀ NỘI
TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG
Đồ Án Thiết Kế Hệ Thống Thơng Tin
Tài liệu phân tích thiết kế
GIẢ LẬP HỆ THỐNG ATM
Giảng viên hướng dẫn:
TS. Nguyễn Bá Ngọc
Nhóm sinh viên thực hiện:
Nguyễn Minh Đăng
20172998
Hồng Mạnh Hùng
20173155
Phạm Văn Chung
20172983
Nguyễn Đình Đạt
20173011
Hà Nội, 2022
MỤC LỤC
1. Giới thiệu
1.1. Mục đích
1.2. Phạm vi sản phẩm
1.3. Tài liệu tham khảo
4
4
4
4
2. Mô tả tổng quan
2.1. Đặt vấn đề
2.2. Chức năng chính
4
4
4
3. Các yêu cầu chức năng
3.1. Tổng quan
3.1.1. Các tác nhân
3.1.2. Tổng quan các ca sử dụng
3.2. Đặc tả các ca sử dụng
3.2.1. Đặc tả ca sử dụng UC01 - Xác thực thẻ
3.2.2. Đặc tả ca sử dụng UC02 - Kiểm tra số dư
3.2.3. Đặc tả ca sử dụng UC03 - Đổi mã PIN
3.2.4. Đặc tả ca sử dụng UC04 - Rút tiền mặt
3.2.5. Đặc tả ca sử dụng UC05 - Chuyển khoản
3.3. Biểu đồ hoạt động
3.3.1. Biểu đồ hoạt động Xác thực thẻ
3.3.2. Biểu đồ hoạt động Kiểm tra số dư
3.3.3. Biểu đồ hoạt động Đổi mã PIN
3.3.4. Biểu đồ hoạt động Rút tiền mặt
3.3.5. Biểu đồ hoạt động Chuyển khoản
4
4
4
5
5
5
7
7
8
10
12
12
13
14
15
16
4. Các yêu cầu phi chức năng
4.1. Giao diện
4.1.1. Giao diện người dùng
4.1.2. Giao diện phần mềm
4.1.3. Giao diện phần cứng
4.1.4. Giao diện truyền thông
4.2. Chất lượng
4.2.1. Hiệu năng
4.2.2. Tỉnh khả dụng
4.2.3. Độ tin cậy
17
17
17
17
17
17
17
17
17
17
5. Kiến trúc hệ thống
5.1. Sơ đồ kiến trúc hệ thống
5.2. Sơ đồ gói
5.2.1. Mơ đun Giao diện tương tác
5.2.2. Mơ đun Đọc thẻ
17
17
17
18
18
1
5.2.3. Mô đun Trả tiền
5.2.4. Mô đun Giao tiếp ngân hàng (Ngân hàng)
5.3. Sơ đồ triển khai hệ thống
19
20
20
6. Thiết kế API
6.1. Module Đọc thẻ
6.1.1. Encode card
6.1.2. Decode card
6.2. Module Ngân hàng
6.2.1. Login
6.2.2. Get balance
6.2.3. Make withdraw
6.2.4. Make transfer
6.2.5. Reset pinHash
6.2.6. Check transfer
6.2.7. Check withdraw
6.3. Module Trả tiền
6.3.1. Make withdraw
6.3.2. Make receipt
20
21
21
21
22
22
23
23
24
25
26
26
27
27
28
7. Thiết kế cơ sở dữ liệu
7.1. Cơ sở dữ liệu ngân hàng
7.1.1. users
7.1.2. cards
7.1.3. transactions
7.1.4. atms
7.2. Cơ sở dữ liệu tại ATM
7.2.1. systems
29
29
29
30
30
31
31
31
8. Thiết kế giao diện
8.1. Giao diện chào
8.2. Giao diện xác thực thẻ
8.3. Giao diện chọn ngơn ngữ
8.4. Giao diện màn hình chính
8.5. Giao diện rút tiền mặt
8.6. Giao diện đổi mã PIN
8.7. Giao diện kiểm tra số dư
8.8. Biên lai giao dịch
8.8.1. Biên lai rút tiền
8.8.2. Biên lai chuyển khoản
32
32
34
35
36
37
41
44
44
45
45
9. Phân công công việc
45
2
3
1. Giới thiệu
1.1. Mục đích
Tài liệu này mơ tả chi tiết yêu cầu về ứng hệ thống cho người dùng, người sở hữu,
nhà phát triển và các bên liên quan
1.2. Phạm vi sản phẩm
Xây dựng hệ thống cho các máy ATM, phục vụ cho nhu cầu của người sử dụng thẻ
ATM và giao tiếp an tồn, bảo mật, nhanh chóng với các hệ thống ngân hàng
1.3. Tài liệu tham khảo
Trống
2. Mô tả tổng quan
2.1. Đặt vấn đề
Ngày nay, công nghệ phát triển nhanh chóng, các kiến trúc hệ thống, cơ sở hạ tầng và
công nghệ ngày càng phát triển, mạnh mẽ và tối ưu. Hệ thống ATM là một trong những hệ
thống cũ. Các ngân hàng hiện nay đang chạy đua trong cuộc đua số hóa, việc ra ngân hàng
ngày càng ít đi. Các hệ thống ngân hàng trực tuyến trở nên nhanh chóng và tiện lợi. Các nhu
cầu cơ bản không cần thiết phải tới ngân hàng với các thủ tục rườm rà. Vì vậy, cải tiến các
máy ATM để trở hỗ trợ khách hàng là điều tất yếu. TPBank Livebank là một ví dụ điển hình
hiện nay. Để làm được các chức năng mới như kích hoạt tài khoản, làm thẻ tại chỗ hay
chuyển tiền, gửi tiền cần một hệ thống máy ATM hiện đại hơn, an toàn hơn, bảo mật hơn, đa
dụng hơn. Do đó, nhóm đưa ra đề xuất chia hệ thống ngân hàng có sẵn thành các mơ đun nhỏ
hơn để dễ dàng bảo trì và nâng cấp, phát triển tính năng mới.
2.2. Chức năng chính
Về cơ bản, hệ thống sẽ phát triển từ các chức năng cơ bản, và tiếp tục mở rộng về sau.
Các chức năng chính:
- Xác thực thẻ
- Kiểm tra số dư
- Đổi mã PIN
- Rút tiền mặt
- Chuyển khoản
3. Các yêu cầu chức năng
3.1. Tổng quan
3.1.1. Các tác nhân
Tác nhân
Mô tả
Khách
(Visitor)
- Là người sử dụng hệ thống ATM chưa được xác thực thẻ
- Không thể thực hiện các chức năng của hệ thống khi
chưa xác thực thẻ
4
Người dùng
(User)
- Là người sử dụng hệ thống ATM đã được xác thực thẻ
- Sử dụng được toàn bộ các chức năng mà hệ thống cung
cấp
Ngân hàng
(Bank)
- Là hệ thống riêng của các ngân hàng, cung cấp một số
chức năng để ATM có thể hỗ trợ người dùng
- Trong dự án này sử dụng một mô đun để thay thế
3.1.2. Tổng quan các ca sử dụng
3.2. Đặc tả các ca sử dụng
3.2.1. Đặc tả ca sử dụng UC01 - Xác thực thẻ
5
Mã Use case
UC01
Tên Use case
Tác nhân
Khách, Ngân hàng
Xác thực thẻ
Tiền điều kiện Khách chưa được xác thực thẻ
Luồng sự kiện
chính
(Thành công)
Luồng sự kiện
thay thế
STT
Thực hiện bởi
1
Khách
Khách đưa thẻ vào hệ thống
2
Hệ thống
Hệ thống đọc thẻ thành công
3
Ngân hàng
Ngân hàng kiểm tra trạng thái thẻ hoạt
động
4
Hệ thống
Yêu cầu nhập mã PIN
5
Khách
Nhập mã PIN
6
Ngân hàng
Ngân hàng kiểm tra mã PIN hợp lệ
7
Hệ thống
Hiển thị giao diện màn hình chính
STT Thực hiện bởi
Hành động
Hành động
2a
Hệ thống
Thông báo đọc thẻ thất bại
2b
Hệ thống
Trả thẻ
3a
Hệ thống
Thông báo thẻ không hoạt động
3b
Hệ thống
Trả thẻ
6a
Hệ thống
Thông báo mã PIN không hợp lệ
6b
Hệ thống
Quay lại bước 4, nếu quá 5 lần, khóa tài
khoản
6
Hậu điều kiện
Thẻ của Khách được xác thực, Khách có thể sử dụng các chức năng hệ
thống
3.2.2. Đặc tả ca sử dụng UC02 - Kiểm tra số dư
Mã Use case
UC02
Tên Use case
Tác nhân
Người dùng, Ngân hàng
Kiểm tra số dư
Tiền điều kiện Người dùng đã được xác thực thẻ
Luồng sự kiện
chính
(Thành công)
Luồng sự kiện
thay thế
Hậu điều kiện
STT
Thực hiện bởi
1
Người dùng
Chọn xem số dư
2
Ngân hàng
Truy vấn số dư thành công
3
Hệ thống
Hỏi in biên lai
4
Người dùng
Chọn in hoặc không in biên lai
5
Hệ thống
In hoặc không in biên lai dựa trên 4
6
Hệ thống
Hiển thị thông tin số dư
STT Thực hiện bởi
Hành động
Hành động
2a
Hệ thống
Thông báo lỗi hệ thống
2b
Hệ thống
Hiển thị giao diện màn hình chính
Khơng
3.2.3. Đặc tả ca sử dụng UC03 - Đổi mã PIN
Mã Use case
UC03
Tên Use case
Tác nhân
Người dùng, Ngân hàng
Đổi mã PIN
7
Tiền điều kiện Người dùng đã được xác thực thẻ
Luồng sự kiện
chính
(Thành cơng)
Luồng sự kiện
thay thế
Hậu điều kiện
STT
Thực hiện bởi
1
Người dùng
Chọn đổi mã PIN
2
Hệ thống
Yêu cầu nhập mã PIN mới
3
Người dùng
Nhập mã PIN mới
4
Hệ thống
Yêu cầu nhập lại mã PIN mới
5
Người dùng
Nhập lại mã PIN mới
6
Hệ thống
Kiểm tra mã PIN chính xác
7
Ngân hàng
Đổi mã PIN thành cơng
8
Hệ thống
Thơng báo đổi mã PIN thành cơng
9
Hệ thống
Hiển thị giao diện màn hình chính
STT Thực hiện bởi
Hành động
Hành động
6a
Hệ thống
Thơng báo nhập lại mã PIN không khớp
6b
Hệ thống
Quay lại bước 4
7a
Hệ thống
Thông báo đổi mã PIN thất bại
7b
Hệ thống
Hiển thị giao diện màn hình chính
Mã PIN của thẻ được đổi thành mã PIN mới
3.2.4. Đặc tả ca sử dụng UC04 - Rút tiền mặt
Mã Use case
UC04
Tên Use case
Tác nhân
Người dùng, Ngân hàng
Rút tiền mặt
8
Tiền điều kiện Người dùng đã được xác thực thẻ
Luồng sự kiện
chính
(Thành cơng)
Luồng sự kiện
thay thế
STT
Thực hiện bởi
1
Người dùng
Chọn rút tiền mặt
2
Hệ thống
Yêu cầu nhập số tiền muốn rút
3
Người dùng
Nhập số tiền muốn rút
4
Hệ thống
Kiểm tra tiền mặt có sẵn đủ
5
Ngân hàng
Kiểm tra số dư đủ
6
Ngân hàng
Thực hiện giao dịch thành công
7
Hệ thống
Hỏi in biên lai
8
Người dùng
Chọn in biên lai hoặc không
9
Hệ thống
In hoặc không in biên lai dựa trên 9
10
Hệ thống
Trả tiền mặt cho người dùng
11
Hệ thống
Hỏi người dùng có thực hiện giao dịch
khác khơng
12
Người dùng
Chọn tiếp tục
13
Hệ thống
Quay lại bước 2
STT Thực hiện bởi
Hành động
Hành động
4a
Hệ thống
Thông báo tiền mặt có sẵn khơng đủ
4b
Hệ thống
Hỏi khách có muốn thực hiện giao dịch
khác, nếu có quay lại bước 2, ngược lại,
hiển thị giao diện màn hình chính
5a
Hệ thống
Thơng báo số dư không đủ
9
Hậu điều kiện
5b
Hệ thống
Hỏi khách có muốn thực hiện giao dịch
khác, nếu có quay lại bước 2, ngược lại,
hiển thị giao diện màn hình chính
6a
Hệ thống
Thơng báo thực hiện giao dịch thất bại
6b
Hệ thống
Hỏi khách có muốn thử lại, nếu có quay lại
bước 2, ngược lại, hiển thị giao diện màn
hình chính
Giao dịch được thực hiện thành cơng ở cả Hệ thống và Ngân hàng
3.2.5. Đặc tả ca sử dụng UC05 - Chuyển khoản
Mã Use case
UC05
Tên Use case
Tác nhân
Người dùng, Ngân hàng
Chuyển khoản
Tiền điều kiện Người dùng đã được xác thực thẻ
Luồng sự kiện
chính
(Thành cơng)
STT
Thực hiện bởi
Hành động
1
Người dùng
Chọn chuyển khoản
2
Hệ thống
Yêu cầu nhập số thẻ muốn chuyển khoản
3
Người dùng
Nhập số thẻ muốn chuyển khoản
4
Hệ thống
Kiểm tra số thẻ hợp lệ
5
Ngân hàng
Kiểm tra số thẻ tồn tại
6
Hệ thống
Yêu cầu nhập số tiền muốn chuyển
7
Người dùng
Nhập số tiền muốn chuyển
8
Ngân hàng
Kiểm tra số dư thẻ đủ
9
Ngân hàng
Thực hiện giao dịch thành công
10
Hệ thống
Hỏi in biên lai
10
Luồng sự kiện
thay thế
Hậu điều kiện
11
Người dùng
Chọn in biên lai hoặc không
12
Hệ thống
In hoặc không in biên lai dựa trên 10
13
Hệ thống
Hỏi người dùng có thực hiện giao dịch
khác khơng
14
Người dùng
Chọn tiếp tục
15
Hệ thống
Quay lại bước 2
STT Thực hiện bởi
Hành động
4a
Hệ thống
Thông báo số thẻ không hợp lệ
5a
Hệ thống
Thông báo số thẻ không tồn tại
8a
Hệ thống
Thông báo số dư không đủ
9a
Hệ thống
Thông báo thực hiện giao dịch thất bại
Giao dịch được thực hiện thành công ở cả Hệ thống và Ngân hàng
11
3.3. Biểu đồ hoạt động
3.3.1. Biểu đồ hoạt động Xác thực thẻ
12
3.3.2. Biểu đồ hoạt động Kiểm tra số dư
13
3.3.3. Biểu đồ hoạt động Đổi mã PIN
14
3.3.4. Biểu đồ hoạt động Rút tiền mặt
15
3.3.5. Biểu đồ hoạt động Chuyển khoản
16
4. Các yêu cầu phi chức năng
4.1. Giao diện
4.1.1. Giao diện người dùng
-
Giao diện người dùng phải sạch, đơn giản, và dễ dàng thao tác
Giao diện phải tương thích với màn hình
4.1.2. Giao diện phần mềm
-
Hệ thống kết nối với Ngân hàng
4.1.3. Giao diện phần cứng
-
Thiết bị phải được kết nối với Internet
4.1.4. Giao diện truyền thông
-
Không
4.2. Chất lượng
4.2.1. Hiệu năng
-
Thời gian phản hồi không được vượt quá 1 giây với điều kiện Internet bình
thường
4.2.2. Tỉnh khả dụng
-
Hệ thống ln phản hồi khi được sử dụng
4.2.3. Độ tin cậy
-
Sử dụng JWT để quản lý đăng nhập và xác thực các giao tiếp nội bộ
5. Kiến trúc hệ thống
5.1. Sơ đồ kiến trúc hệ thống
17
5.2. Sơ đồ gói
5.2.1. Mơ đun Giao diện tương tác
5.2.2. Mô đun Đọc thẻ
18
5.2.3. Mô đun Trả tiền
19
5.2.4. Mô đun Giao tiếp ngân hàng (Ngân hàng)
5.3. Sơ đồ triển khai hệ thống
20
6. Thiết kế API
6.1. Module Đọc thẻ
6.1.1. Encode card
Information
Name
Encode card
URI
/api/v1/read_card/encode
Description
Mã hóa thơng tin thẻ
Request
Method
POST
Header
- Content-Type: application/json
Path Parameters
None
Query Parameters
None
Request Body
Thơng tin thẻ cần được mã hóa
CardInformation {
"cardNumber": "string",
"name": "string",
"gender": "string",
"citizenId": "string"
}
Response
200
Chuỗi chứa thơng tin thẻ được mã hóa
string
400
Thơng tin thẻ sai định dạng
string
6.1.2. Decode card
Information
Name
Decode card
URI
/api/v1/read_card/decode
Description
Giải mã thông tin thẻ
Request
21
Method
POST
Header
None
Path Parameters
None
Query Parameters
None
Request Body
File chứa đoạn thông tin thẻ được mã hóa
Response
200
Thơng tin thẻ
CardInformation {
"cardNumber": "string",
"name": "string",
"gender": "string",
"citizenId": "string"
}
400
Thơng tin thẻ sai định dạng
string
6.2. Module Ngân hàng
6.2.1. Login
Information
Name
Login
URI
/api/v1/card/login
Description
Đăng nhập thẻ vào hệ thống ATM
Request
Method
POST
Header
None
Path Parameters
None
Query Parameters
None
Request Body
{
“number”: ”string”,
“pinHash”: ”string”
}
Response
22
200
Successfully response
{
“accessToken”: “String”,
“tokenType”:”string”
}
400
Bad Request
6.2.2. Get balance
Information
Name
Get balance
URI
/api/v1/card/balance?{number}
Description
Truy vấn thông tin số dư thẻ
Request
Method
GET
Header
- Content-Type: application/json
- Authorization: Bearer <JWT>
Path Parameters
Number
Query Parameters
None
Request Body
None
Response
200
Successfully response
Information balance :”Money”
404
NOT FOUND
6.2.3. Make withdraw
Information
Name
Make withdraw
URI
/api/v1/transaction/withdraw
Description
Tạo yêu cầu rút tiền mặt
Request
23
Method
POST
Header
- Content-Type: application/json
- Authorization: Bearer <JWT>
Path Parameters
None
Query Parameters
None
Request Body
TransferRequest {
"number": "string",
"ip": “string”,
“money”: double,
}
Response
200
Successfully response
Transfer Response {
"name": “string”,
"number": "string",
"amount": 0,
"description": “string”,
"ip": “string”,
"created_at":
"2022-02-26T06:02:52.815Z"
}
404
Bad Request
6.2.4. Make transfer
Information
Name
Make transfer
URI
/api/v1/transaction/transfer
Description
Tạo yêu cầu chuyển khoản
Request
Method
POST
Header
- Content-Type: application/json
- Authorization: Bearer <JWT>
Path Parameters
None
24