Tải bản đầy đủ (.pdf) (64 trang)

Đồ án tìm hiểu về react native và xây dựng ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.54 MB, 64 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN
KHOA CƠNG NGHỆ PHẦN MỀM
*******************************************************

Mơn học: ĐỒ ÁN 1

BÁO CÁO ĐỒ ÁN
Tên đề tài: TÌM HIỂU VỀ REACT NATIVE VÀ
XÂY DỰNG ỨNG DỤNG
GVHD: Th.S Nguyễn Công Hoan

Tên thành viên:
● Nguyễn Đình Thi 20520771
● Trương Đức Thiện 20520778

TP HCM, tháng 7 năm 2023


LỜI CẢM ƠN
Đầu tiên, em gửi lời cảm ơn chân thành đến tập thể quý thầy cô trường
Đại học Công nghệ thông tin – Đại học Quốc gia Tp Hồ Chí Minh và q
thầy cơ khoa Cơng nghệ phần mềm đã giúp cho em có những kiến thức cơ
bản làm nền tảng để thực hiện đề tài này.
Đặc biệt, em xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới thầy
Nguyễn Công Hoan đã trực tiếp hướng dẫn tận tình, sửa chữa và đóng góp
nhiều ý kiến q báu giúp em hồn thành tốt báo cáo mơn học của mình.
Trong thời gian một kỳ thực hiện đề tài, em đã vận dụng những kiến
thức nền tảng đã tích lũy đồng thời kết hợp với việc học hỏi và nghiên cứu
những kiến thức mới.Từ đó, em vận dụng tối đa những gì đã thu thập được
để hồn thành một báo cáođồ án tốt nhất. Tuy nhiên, trong quá trình thực


hiện, em khơng tránh khỏi nhữngthiếu sót. Chính vì vậy, em rất mong nhận
được những sự góp ý từ phía các thầycơ nhằm hồn thiện những kiến thức
mà em đã học tập và là hành trang đểem thực hiện tiếp các đề tài khác trong
tương lai.

1


NHẬN XÉT CỦA GIẢNG VIÊN
…………………………………………………………………………………………..…
………………………………………………………………………………………..……
……………………………………………………………………………………..………
…………………………………………………………………………………..…………
………………………………………………………………………………..……………
……………………………………………………………………………..………………
…………………………………………………………………………..…………………
………………………………………………………………………..……………………
……………………………………………………………………..………………………
…………………………………………………………………..…………………………
………………………………………………………………..……………………………
……………………………………………………………..………………………………
…………………………………………………………..…………………………………
………………………………………………………..……………………………………
……………………………………………………..………………………………………
…………………………………………………..…………………………………………
………………………………………………..……………………………………………
……………………………………………..………………………………………………
…………………………………………..…………………………………………………
………………………………………..……………………………………………………
……………………………………..………………………………………………………

…………………………………..…………………………………………………………
………………………………..……………………………………………………………
……………………………..………………………………………………………………
…………………………..…………………………………………………………………
………………………..……………………………………………………………………
……………………..………………………………………………………………………
………………………..……………………………………………………………………
……………………..………………………………………………………………………
………………………..……………………………………………………………………
2


……………………..………………………………………………………………………

MỤC LỤC
CHƯƠNG 1: TỔNG QUAN
1.1.

Lý do chọn đề tài

7
7

1.1.1.

React Native

7

1.1.2.


Ứng dụng quản lí chi tiêu cá nhân

7

1.2. Mơi trường phát triển ứng dụng

7

1.3. Kết quả mong đợi

8

1.4. Quy trình thực hiện các cơng việc chính

8

1.5. Review các phần mềm tương tự trên thị trường

9

CHƯƠNG 2: KIẾN THỨC HỌC ĐƯỢC
2.1. React Native

10
10

2.1.1. Kiến trúc

10


2.1.2. Component

10

2.1.3. Device APIs

11

2.1.4. Ưu điểm

11

2.2. Firebase

12

2.2.1. Realtime Database

12

2.2.2. Authentication

12

2.2.3. Ưu điểm

13

2.2.3. Nhược điểm


13

2.3. MongoDB

13

2.3.1. Tính năng chính

13

2.3.2. Ưu điểm

14

2.3.3. Nhược điểm

15

CHƯƠNG 3: PHÂN TÍCH, THIẾT KẾ HỆ THỚNG
3.1. Xác định và mơ hình hóa các u cầu phần mềm

16
16

3.1.1. Xác định u cầu

16

3.1.2. Mơ hình hóa u cầu


16

3.2. Thiết kế dữ liệu
3.2.1. Sơ đồ lớp ở mức phân tích

24
24
3


3.3. Thiết kế giao diện

33

3.3.1. Sơ đồ liên kết các màn hình

33

3.3.2. Danh sách các màn hình

33

3.3.3. Mô tả các màn hình

34

3.3.3.1 Màn hình giới thiệu

34


3.3.3.2 Màn hình đăng nhập

35

3.3.3.3 Màn hình đăng ký

36

3.3.3.4 Màn hình quên mật khẩu

38

3.3.3.5 Màn hình xác thực email

39

3.3.3.6 Màn hình thiết lập số dư ban đầu

40

3.3.3.7 Màn hình trang chủ

41

3.3.3.8 Màn hình giao dịch

43

3.3.3.9 Màn hình thêm giao dịch


45

3.3.3.10 Màn hình chỉnh sửa giao dịch

47

3.3.3.11 Màn hình xem giao dịch trong ngày

49

3.3.3.12 Màn hình báo cáo

50

3.3.3.13 Màn hình cài đặt

52

3.3.3.14 Màn hình tìm kiếm

54

3.3.3.15 Màn hình thay đổi thông tin cá nhân

56

3.3.3.16 Màn hình đổi mật khẩu

58


3.3.3.17 Màn hình chỉnh sửa hạn mức chi tiêu

59

CHƯƠNG 4. KẾT LUẬN

62

4.1.

Kết quả đạt được

62

4.2.

Hạn chế

62

4.3.

Hướng phát triển

62

CHƯƠNG 5: TÀI LIỆU THAM KHẢO

62


4


DANH MỤC ẢNH
Hình 1 Bảng khảo sát các phầm mềm tương tự trên thị trường ...................................................................... 9
Hình 2 Kiến trúc hoạt động React Native ..................................................................................................... 10
Hình 3 Một số component phổ biến ............................................................................................................. 11
Hình 4 Một số Device APIs phổ biến ......................................................................................................... 11
Hình 5 Cách thức hoạt động firebase ............................................................................................................ 12
Hình 6 Lược đồ user-case tổng thể ............................................................................................................... 17
Hình 7 Bảng user-case tổng thể .................................................................................................................... 18
Hình 8 Lược đồ user-case đăng nhập ............................................................................................................ 18
Hình 9 Bảng user-case đăng nhập ................................................................................................................. 19
Hình 10 Lược đồ user-case quản lí chi tiêu .................................................................................................. 19
Hình 11 Bảng user-case thêm chi tiêu .......................................................................................................... 20
Hình 12 Bảng user-case sửa chi tiêu ............................................................................................................. 21
Hình 13 Bảng user-case xóa chi tiêu ............................................................................................................. 21
Hình 14 Sơ đồ user-case quản lí ví ............................................................................................................... 22
Hình 15 Bảng user-case quản lí ví ................................................................................................................ 22
Hình 16 Sơ đồ user-case quản lí tài khoản .................................................................................................... 23
Hình 17 Bảng user-case đổi mật khẩu .......................................................................................................... 24
Hình 18 Bảng user-case sửa thông tin người dùng ....................................................................................... 24
Hình 19 Bảng danh sách các lớp ................................................................................................................... 25
Hình 20 Bảng danh sách thuộc tính User...................................................................................................... 25
Hình 21 Bảng danh sách phương thức User ................................................................................................. 25
Hình 22 Bảng danh sách thuộc tính spending ............................................................................................... 26
Hình 23 Bảng danh sách phương thức Spending .......................................................................................... 26
Hình 24 Bảng thiết kế dữ liệu lưu trữ ........................................................................................................... 27
Hình 25 Bảng danh sách các bảng trong dữ liệu........................................................................................... 27

Hình 26 Bảng danh sách thuộc tính NGUOIDUNG ..................................................................................... 28
Hình 27 Bảng danh sách thuộc tính GIAODICH.......................................................................................... 28
Hình 28 Bảng danh sách thuộc tính CHITIETBANBE ................................................................................ 28
Hình 29 Bảng danh sách thuộc tính LOAI .................................................................................................... 29
Hình 30 Bảng danh sách thuộc tính VI ......................................................................................................... 29
Hình 31 Bảng danh sách thuộc tính LICHSU ............................................................................................... 29
Hình 32 Chi tiết dữ liệu trên firebase ........................................................................................................... 30
Hình 33 Bảng dữ liệu collection Data ........................................................................................................... 31
Hình 34 Bảng dữ liệu collection History ...................................................................................................... 31
Hình 35 Bảng dữ liệu collection Info............................................................................................................ 32
Hình 36 Bảng dữ liệu collection Spending ................................................................................................... 32
Hình 37 Bảng dữ liệu collection wallet ........................................................................................................ 33
Hình 38 Sơ đồ liên kết các màn hình ............................................................................................................ 33
Hình 39 Màn hình giới thiệu ......................................................................................................................... 34
Hình 40 Mơ tả các đối tượng màn hình giới thiệu ........................................................................................ 35
Hình 41 Màn hình đăng nhập........................................................................................................................ 35
Hình 42 Mô tả các đối tượng trê màn hình đăng nhập .................................................................................. 36
Hình 43 Màn hình đăng kí ............................................................................................................................ 37
5


Hình 44 Mô tả các đối tượng trên màn hình đăng kí .................................................................................... 38
Hình 45 :Màn hình đăng kí ........................................................................................................................... 38
Hình 46 Mơ tả màn hình đăng kí .................................................................................................................. 39
Hình 47 Màn hình xác thực email................................................................................................................. 39
Hình 48 Mơ tả màn hình xác thực email ....................................................................................................... 40
Hình 49 màn hình ví ..................................................................................................................................... 40
Hình 50 Mơ tả màn hình ví ........................................................................................................................... 41
:Hình 51 Màn hình trang chủ ........................................................................................................................ 42
Hình 52 Mơ tả màn hình trang chủ ............................................................................................................... 43

Hình 53 Màn hình giao dịch ......................................................................................................................... 44
Hình 54 Mơ tả màn hình giao dịch ............................................................................................................... 45
Hình 55 màn hình thêm giao dịch ................................................................................................................. 46
Hình 56 Mơ tả màn hình thêm giao dịch ...................................................................................................... 47
Hình 57 Màn hình sửa giao dịch ................................................................................................................... 48
Hình 58 Mơ tả màn hình sửa giao dịch ......................................................................................................... 49
Hình 59 Màn hình xem giao dịch trong ngày ............................................................................................... 49
Hình 60 Mơ tả màn hình xem giao dịch trong ngày ..................................................................................... 50
Hình 61 Màn hình báo cáo ............................................................................................................................ 51
Hình 62 Mơ tả màn hình báo cáo .................................................................................................................. 52
Hình 63 Màn hình cài đặt.............................................................................................................................. 52
Hình 64 Mô tả màn hình cài đặt.................................................................................................................... 54
Hình 65 Màn hình tìm kiếm .......................................................................................................................... 55
Hình 66 Mơ tả màn hình tìm kiếm ................................................................................................................ 56
Hình 67 Màn hình sửa tài khoản ................................................................................................................... 57
Hình 68 Mơ tả màn hình sửa tài khoản ......................................................................................................... 58
Hình 69 Màn hình sửa mật khẩu ................................................................................................................... 58
Hình 70 Mơ tả màn hình sửa mật khẩu ......................................................................................................... 59
Hình 71 Màn hình sửa hạn mức chi tiêu ....................................................................................................... 60
Hình 72 Mơ tả màn hình sửa hạn mức chi tiêu ............................................................................................ 61

6


CHƯƠNG 1: TỔNG QUAN

1.1. Lý do chọn đề tài
1.1.1. React Native
React native là một framework tiềm năng với cộng động lớn sử dụng trên
thế giới kể cả các ông lớn trên thế giới sử dụng để phát triển các ứng dụng

di động . Các ứng dụng được xây dựng bởi React native là các ứng dụng
crossplat-form có thể chạy cả hai nền tảng chỉ với một lần code . Tính dễ
học và tiếp cận , chi phí thấp nhưng mang lai kết quả cao cũng là một lí
do cần thiết . Vì thế nhóm chúng em quyết định lựa chọn React Native .
1.1.2. Ứng dụng quản lí chi tiêu cá nhân
- Hiện nay thiết bị di dộng – smart phone ngày càng phổ biến. Việc đưa
một ứng dụng lên các kho lưu trữ tương đối dễ dàng. Hơn nữa, người sử
dụng cũng sẵn sàng chi trả một khoảng tiền phù hợp cho những ứng dụng
mà họ cảm thấy cần thiết hơn so với trước đây.
- Vấn đề cân đối giữa thu-cho, khoản vay nợ và kỳ han phải trả luôn là một
vấn đề khó khăn với đa phần tầng lớp trong xã hội. Bởi vậy, một ứng
dụng chạy trên thiết bị di động và giúp đỡ người sử dụng trong việc quản
lý chi tiêu là rất cần thiết.
- Một số phần mềm có tính năng tương tự đã được phát triển trên các nền
tảng Android, IOS, … như: Money lover, Sổ thu chi, Sổ thu chi misa, …,
tuy nhiên các phần mềm này còn nhiều bất lợi cho người dùng như: thu
phí các tính năng nâng cao, khơng đồng bộ dữ liệu giữa các thiết bị,
không hỗ trợ đầy đủ chức năng, …
- Xuất phát từ những nhận định đó, tôi đã chọn đề tài “Phần mềm quản lý
chi tiêu cá nhân trên di động” nhằm hỗ trợ người dùng giải quyết các vấn
đề trên.

1.2. Môi trường phát triển ứng dụng
- Hệ điều hành phát triển: Microsoft Windows
- Hệ điều hành cài đặt: Android
- Cơ sở dữ liệu đám mây: Firebase
- Cơng cụ phân tích thiết kế: figma.com
- Cơng cụ phân chia nhiệm vụ: Trello
7



-

Công cụ xây dựng ứng dụng: Visual Studio Code
Ngôn ngữ sử dụng: Javascript
Framework: ReactNative
Công cụ quản lý source code: Github

1.3. Kết quả mong đợi
- Học hỏi cách phát triển một ứng dụng trên di động qua quá trình làm đề
tài.
- Triển khai được một sản phẩm hồn thiện, có ích cho người dùng.
- Hiểu được và áp dụng quy trình phát triển phần mềm.
- Trau dồi kinh nghiệm làm việc nhóm.

1.4. Quy trình thực hiện các cơng việc chính
Hiện nay có rất nhiều quy trình phát triển phần mềm khác nhau. Tuy nhiên
theo yêu cầu của đề tài, nhóm đã sử dụng mô hình thác nước cải tiến. Mô hình
trên bao gồm các trình tự: xác định yêu cầu, phân tích, thiết kế, cài đặt, kiểm thử,
bảo trì. Trong đó, kết quả của giai đoạn trước là cơ sở đầu vào của giai đoạn sau.
Vì vậy, nếu như có lỡi xảy ra, nhóm có thể quay lui để sửa lỡi và tối ưu phần mềm
trong khi tiến độ hiện tại vẫn được duy trì.
Cụ thể các trình tự phát triển phần mềm của nhóm như sau:
- Xác định yêu cầu: Khảo sát yêu cầu người dùng, lập ra bảng các yêu cầu
và quy định cụ thể cho phần mềm.
- Phân tích: Phân loại các yêu cầu và lập sơ đồ luồng dữ liệu cho từng yêu
cầu.
- Thiết kế: Mô tả các thành phần của phần mềm một cách rõ ràng, gồm
các bước:
● Thiết kế hệ thống, kiến trúc, các đối tượng.

● Thiết kế cơ sở dữ liệu.
● Thiết kế giao diện.

8


● Cài đặt: Dựa theo những thiết kế và phân tích, tiến hành xây dựng
chương trình thực tế.
● Kiểm thử: Chạy thực nghiệm và đánh giá, tìm và sửa lỗi.

1.5. Review các phần mềm tương tự trên thị trường

Chức năng

Mon
ey
lover

Sở
thu
chi

Sở
thu
chi
misa

Nhóm

Thêm, chỉnh sửa thu chi


X

X

X

Khả quan

Tra cứu thu chi

X

X

X

Khả quan

Báo cáo theo tuần , tháng,năm

X

X

X

Khả quan

Liên kết theo dõi tài khoản ngân hàng


X

Sử dụng trên nhiều thiết bị

X

Nhắc nhở các khoản thu chi định kì

X

Chuyển đởi tiền tệ

X

Qt hóa đơn

X

Lập hạn mức chi tiêu

X

Thiết lập số dư ban đầu

X

Sổ tiết kiệm

X


Sổ nợ

X

Xuất dữ liệu

X

Ứng dụng

Không khả quan

X

X

Khả quan

X

Khả quan

X

Không khả quan
Không khả quan

X


Khả quan

X

X

Khả quan

X

X

Không khả quan
Không khả quan

X

Khả quan

Danh sách mua sắm,du lịch

X

Khơng khả quan

Tính lãi vay, thuế TNCN

X

Khơng khả quan


X

Hình 1 Bảng khảo sát các phầm mềm tương tự trên thị trường

9


CHƯƠNG 2: KIẾN THỨC HỌC ĐƯỢC

2.1. React Native
2.1.1. Kiến trúc
Khi bạn khởi chạy một React Native app, phần code JS của bạn sẽ
được package (được gọi là JS Bundle) và được tách riêng ra với phần Native
Code (Android/IOS).Lúc này, app của bạn sẽ được thực thi bởi 3 threads sau:
• JS thread (Javascript thread/ Main thread): Được sử dụng bởi JS Engine,
dùng để chạy JS bundle
• Native/UI thread: Được sử dụng để khởi chạy các native module, các tiến
trình render UI, animations, gesture handle, ...
• Shadow thread: Được sử dụng để tính tốn Layout của element trước khi
render ra màn hình.
React Native sẽ hoạt động bằng cách tích hợp Main Thread và JS Thread cho
một ứng dụng mobile. Main Thread sẽ có vai trò cập nhật giao diện người dùng
(UI) và xử lý tương tác của người dùng. JS Thread là nơi thực thi và xử lỹ mã
Javascript.

Hình 2 Kiến trúc hoạt động React Native

2.1.2. Component
Component trong React Native là các đối tượng đại diện cho một phần

của UI trong ứng dụng.
10


Với React Native, các component được cung cấp là các đối tượng trung
gian, chứ không phải là các thành phần native của iOS hoặc Android. Mỗi
component trong React Native sẽ bao gồm một hoặc nhiều đối tượng View, tùy
thuộc vào loại component. Tức là không cần biết các thành phần native ở
android và ios làm gì, chỉ cần làm việc với những component mà react native
cung cấp.

Hình 3 Một số component phổ biến

2.1.3. Device APIs
Các api này cho phép người dùng can thiệp,truy cập vào tài nguyên của thiết bị .

Hình 4 Một số Device APIs phổ biến

2.1.4. Ưu điểm






Khả năng tái sử dụng mã
Live reload
Tập trung vào giao diện người dùng
Rút ngắn thời gian học
Chi phí ít-Hiệu quả

11


• Plugin của bên thứ ba

• Cộng đồng phát triển

2.2. Firebase
Firebase là một nền tảng giúp phát triển các ứng dụng di động trong web. Bên
cạnh đó, Firebase còn được hiểu là một dịch vụ cơ sở dữ liệu hoạt động trên nền
tảng đám mây cloud với hệ thống máy chủ mạnh mẽ của Google.
Firebase chứa cơ sở dữ liệu mang đến khả năng code nhanh và thuận tiện hơn.
Lập trình viên có thể dễ dàng lập trình ứng dụng bằng cách đơn giản hóa các
thao tác với cơ sở dữ liệu sẵn có.

Hình 5 Cách thức hoạt động firebase

2.2.1. Realtime Database
Realtime Database là một cơ sở dữ liệu thời gian thực. Ngay sau khi bạn đăng
ký tài khoản trên Firebase, bạn sẽ nhận được Realtime Database được lưu trữ
dưới dạng JSON và được đồng bộ hóa theo thời gian thực đối với mọi kết nối.
2.2.2. Authentication
Authentication là tính năng giúp xác thực danh tính của người dùng ứng dụng.
Firebase cung cấp các bước xác thực thông qua Email, Facebook, Twitter, GitHub
12


hay Google. Điều này giúp cho các thông tin cá nhân của khách hàng được bảo
vệ một cách tốt nhất, hạn chế được tình trạng bị hacker đánh cắp. Đồng thời việc
xác thực danh tính qua Firebase sẽ giúp người dùng tiếp cận sản phẩm nhanh

chóng và an tồn hơn.
2.2.3. Ưu điểm





Sử dụng miễn phí và thuận tiện
Dễ sử dụng và tích hợp
Đáp ứng nhu cầu của người dùng
Cập nhật liên tục và đa nền tảng

2.2.3. Nhược điểm
• Giới hạn về quy mơ ứng dụng
• Khả năng tùy chỉnh hạn chế
• Bảo mật cịn yếu

2.3. MongoDB
MongoDB là một cơ sở dữ liệu NoSQL, một dạng database hướng tài liệu.
Chúng thường được sử dụng để lưu trữ dữ liệu khối lượng lớn. MongoDB không sử
dụng cấu trúc dạng bảng như relational database. Thay vào đó, MongoDB sẽ lưu trữ
dữ liệu dưới dạng Document JSON. Vì vậy, mỡi một collection sẽ các các kích cỡ và
các document khác nhau. Bên cạnh đó, việc các dữ liệu được lưu trữ trong document
kiểu JSON dẫn đến chúng được truy vấn rất nhanh.

2.3.1. Tính năng chính
Hướng tài liệu
Vì MongoDB là cơ sở dữ liệu kiểu NoSQL. Nó lưu trữ dữ liệu dưới dạng
Document JSON nên mỡi một collection sẽ có các kích cỡ và các document khác
nhau, linh hoạt trong việc lưu trữ dữ liệu, thích ứng với tình hình và u cầu thực

tế của doanh nghiệp.
Các ad hoc query
MongoDB hỡ trợ tìm kiếm bằng field, range query, regular expression và
các phép tìm kiếm thơng thường.
Indexing
13


Các index có thể được tạo để cải thiện hiệu suất của các tìm kiếm trong
MongoDB. Bất kỳ field nào trong MongoDB document đều có thể được index.
Replication
“Nhân bản” là có một phiên bản giống hệt phiên bản đang tồn tại, đang sử
dụng. Với cơ sở dữ liệu, nhu cầu lưu trữ lớn, đòi hỏi cơ sở dữ liệu toàn vẹn, khơng
bị mất mát trước những sự cố ngồi ý muốn. Vì vậy, người ta nghĩ ra khái niệm
“nhân bản”, nghĩa là tạo một phiên bản cơ sở dữ liệu giống hệt cơ sở dữ liệu đang
tồn tại, và lưu trữ chúng ở một nơi khác, đề phịng có sự cố.
Aggregation
Các Aggregation operation xử lý các bản ghi dữ liệu và trả về kết quả đã
được tính tốn. Các phép tốn tập hợp nhóm các giá trị từ nhiều Document lại với
nhau, và có thể thực hiện nhiều phép tốn đa dạng trên dữ liệu đã được nhóm đó
để trả về một kết quả duy nhất. Trong SQL, count(*) và GROUP BY là tương
đương với Aggregation trong MongoDB.
Lưu trữ file
MongoDB được dùng như một hệ thống file tận dụng những function trên
và hoạt động như một cách phân phối qua Sharding.
Cân bằng tải
Bằng cách sử dụng Sharding, MongoDB chia tỷ lệ theo chiều ngang để
người dùng chọn một Shard key, xác định các dữ liệu được phân phối trong
collection. Nhìn chung, dữ liệu được chia thành các phạm vi và được phân phối
đồng đều dựa trên các Shard key. Nó chạy trên nhiều máy chủ, cân bằng tải hoặc

sao chép dữ liệu để giữ hệ thống luôn hoạt động trong trường hợp có lỡi về phần
cứng.
2.3.2. Ưu điểm


Đầu tiên có thể nhắc đến là tính linh hoạt lưu trữ dữ liệu theo các kích cỡ
khác nhau. Do dữ liệu dưới dạng hướng tài liệu JSON nên bạn có thể chèn
vào thoải mái bất cứ thơng tin gì bạn muốn.



Khác với RDBMS, dữ liệu ở đây không bị ràng buộc và không phải tuân
theo khuôn khổ nhất định. Điều này giúp bạn tiết kiệm thời gian cho việc
14


kiểm tra sự thỏa mãn về cấu trúc nếu muốn chèn, xóa, cập nhật hay thay
đởi các dữ liệu trong bảng.


MongoDB dễ dàng mở rộng hệ thống bằng cách thêm node vào cluster –
cụm các node chứa dữ liệu giao tiếp với nhau.



Ưu điểm thứ tư là tốc độ truy vấn nhanh hơn nhiều so với hệ quản trị cơ
sở dữ liệu quan hệ RDBMS do dữ liệu truy vấn được cached lên bộ nhớ
RAM để lượt truy vấn sau diễn ra nhanh hơn mà không cần đọc từ ổ cứng.




Cuối cùng cũng là một ưu điểm về hiệu suất truy vấn của MongoDB.
Trường dữ liệu “_id” luôn được tự động đánh chỉ mục để đạt hiệu suất
cao nhất.

2.3.3. Nhược điểm
Ngồi các ưu điểm vượt trội, vẫn cịn một số hạn chế khi cài đặt và sử dụng bạn
cần chú ý như sau:


Dữ liệu trong MongoDB khơng bị ràng buộc như RDBMS. Nhưng người
sử dụng lưu ý cẩn thận mọi thao tác để khơng xảy ra các kết quả ngồi ý
muốn gây ảnh hưởng đến dữ liệu.



Một nhược điểm mà “dân công nghệ” hay lo ngại là bộ nhớ của thiết bị.
Chương trình này thường tốn bộ nhớ do dữ liệu được lưu dưới dạng keyvalue. Trong khi các collection chỉ khác về value nên sẽ lặp lại key dẫn
đến thừa dữ liệu.



Thơng thường, dữ liệu thay đởi từ RAM xuống ổ cứng phải qua 60 giây
thì chương trình mới thực hiện hoàn tất. Đây là nguy cơ bị mất dữ liệu
nếu bất ngờ xảy ra mất điện trong vòng 60 giây đó.

15


CHƯƠNG 3: PHÂN TÍCH, THIẾT KẾ HỆ THỐNG


3.1. Xác định và mô hình hóa các yêu cầu phần mềm
3.1.1. Xác định yêu cầu
a. Một số yêu cầu phần mềm phải có
- Đăng ký, đăng nhập
- Xác thực email khi đăng ký tài khoản
- Người sử dụng có thể lưu lại các thông tin chi tiêu hàng ngày. Các
thông tin lưu trữ cho một phần chi tiêu bao gồm: thời gian, lý do,
mục chi tiêu, hình ảnh liên quan....
- Thêm, xem, chỉnh sửa, xóa chi tiêu
- Có phần thống kê, đánh giá theo các khoảng thời gian nhất định.
- Các danh mục chi tiêu có thể được tạo ra bởi một người dùng một
cách linh hoạt.
- Có chức năng tìm kiếm theo tên, ngày tháng, mơ tả....
- Có chức năng thay đởi thơng tin người dùng
- Có chức năng qn mật khẩu, thay đởi mật khẩu.
- Có thể thay đởi ngơn ngữ
- Đồng bộ dữ liệu tài khoản trên mọi thiết bị đăng nhập
b. Ràng buộc logic ban đầu
- Người dùng mới sẽ nhập vào số dư ban đầu mỗi tháng khi tạo tài
khoản
- Tự động khởi tạo số dư mỗi đầu tháng bằng số tiền người dùng đã
nhập vào ban đầu.
- Mọi giao dịch trong hệ thống chỉ thực hiện đến đơn vị hàng triệu tỉ
(tức 15 chữ số).
- Mọi loại hình chi tiêu hay thu nhâp chỉ thực hiện với số tiền dương
3.1.2. Mô hình hóa yêu cầu
a. Danh sách chức năng
-


Đăng ký, đăng nhập
Quên mật khẩu, thay đổi mật khẩu
Thêm, sửa, xóa chi tiêu
Xem thống kê, báo cáo theo các khoảng thời gian nhất định
16


-

Thay đổi thông tin cá nhân
Thay đổi ngôn ngữ
Thay đổi số tiền quản lý
Tìm kiếm chi tiêu
Xuất dữ liệu chi tiêu

b. Lược đồ Use-case
Lược đồ Use-case

Hình 6 Lược đồ user-case tổng thể

STT

Tên use case

Mô tả

1

Đăng nhập


Đăng nhập vào hệ thống và sử dụng chức năng quản
lý tương ứng

2

Quản lý chi tiêu

Thêm, xóa, sửa chi tiêu

3

Quản lý ví

Sửa số dư trong ví

4

Quản lý tài khoản

Sửa thơng tin tài khoản
17


Hình 7 Bảng user-case tổng thể

Đặc tả use-case
Đặc tả use case đăng nhập

Hình 8 Lược đồ user-case đăng nhập


Tên use case

Đăng nhập

Tác nhân sử dụng

Người dùng

Mục đích
Mơ tả
Tiền điều kiện
Kích hoạt
Diễn biến chính

Đăng nhập vào hệ thống và sử dụng chức năng quản lý
tương ứng
Nhập thông tin tài khoản và mật khẩu, hệ thống ghi nhận, xử
lý và trả về kết quả
Người dùng có tài khoản và mật khẩu đăng nhập vào hệ
thống
Mở phần mềm
1.

Mở phần mềm
18


2.

Màn hình đăng nhập được hiển thị


3.

Nhập thông tin tài khoản và mật khẩu

4.

Xử lý thông tin và trả về kết quả

5.
Màn hình chính được hiển thị với các chức năng
tương ứng
Ngoại lệ

Nếu kết quả kiểm tra thông tin đăng nhập là không hợp lệ,
chương trình sẽ yêu cầu đăng nhập lại
Hình 9 Bảng user-case đăng nhập

Đặc tả use case quản lý chi tiêu

Hình 10 Lược đồ user-case quản lí chi tiêu

Thêm chi tiêu

19


Tên use case

Thêm chi tiêu


Tác nhân sử dụng

Người dùng

Mục đích

Thêm thông tin chi tiêu mới vào hệ thống

Mô tả

Nhập thông tin về chi tiêu mới vào hệ thống dựa trên nhu
cầu của người dùng

Tiền điều kiện

Người dùng đã đăng nhập vào hệ thống

Kích hoạt

Nhân viên chọn chức năng thêm chi tiêu ở màn hình

Diễn biến chính

1.

Yêu cầu tạo chi tiêu mới

2.


Hiện form nhập thông tin chi tiêu

3.

Nhập thông tin chi tiêu

4.

Xử lý thông tin và trả kết quả

Diễn biến phụ
Ngoại lệ

Nếu thống tin về số tiền chi tiêu là không hợp lệ, chương
trình sẽ yêu cầu nhập lại
Hình 11 Bảng user-case thêm chi tiêu

Sửa chi tiêu
Tên use case

Sửa chi tiêu

Tác nhân sử dụng

Người dùng

Mục đích

Sửa thơng tin chi tiêu trong hệ thống


Mô tả

Nhập thông tin về chi tiêu mới vào hệ thống dựa trên nhu
cầu của người dùng

Tiền điều kiện

Người dùng đã đăng nhập vào hệ thống

Kích hoạt

Nhân viên chọn chức năng thêm chi tiêu ở màn hình

20


Diễn biến chính

1.

u cầu sửa chi tiêu

2.

Hiện form sửa thơng tin chi tiêu

3.

Nhập lại thông tin chi tiêu


4.

Xử lý thông tin và trả kết quả

Diễn biến phụ

Khơng có

Ngoại lệ

Nếu thống tin về số tiền chi tiêu là không hợp lệ, chương
trình sẽ yêu cầu nhập lại
Hình 12 Bảng user-case sửa chi tiêu

Xóa chi tiêu
Tên use case

Xóa chi tiêu

Tác nhân sử dụng

Người dùng

Mục đích

Xóa thơng tin chi tiêu có trong hệ thống

Mơ tả

Tìm đến chi tiêu cần xóa và tiến hành xóa tất cả thơng tin

liên quan đến chi tiêu đó

Tiền điều kiện

Người dùng đã đăng nhập vào hệ thống

Kích hoạt

Nhân viên chọn chức năng trang chủ/lịch ở màn hình

Diễn biến chính

1.

tìm kiếm chi tiêu cần xóa

2.

Chọn chức năng xóa chi tiêu

3.

Sử lý thông tin và trả kết quả

Diễn biến phụ

Không có

Ngoại lệ


Khơng có
Hình 13 Bảng user-case xóa chi tiêu

Đặc tả use case quản lý ví

21


Hình 14 Sơ đồ user-case quản lí ví

Tên use case

Sửa số tiền trong ví

Tác nhân sử dụng

Người dùng

Mục đích

Chỉnh sửa số tiền (ví) trong hệ thống

Mơ tả

Nhập số mới vào hệ thống dựa trên nhu cầu của người
dùng

Tiền điều kiện

Người dùng đã đăng nhập vào hệ thống


Kích hoạt

Nhân viên chọn chức năng điều chỉnh số dư ở màn hình
cài đặt

Diễn biến chính

1.

u cầu sửa chi tiêu

2.

Hiện form sửa thơng tin số dư ví

3.

Nhập lại số dư trong ví

4.

Xử lý thơng tin và trả kết quả

Diễn biến phụ

Khơng có

Ngoại lệ


Nếu thống tin về số dư là không hợp lệ, chương trình sẽ
yêu cầu nhập lại
Hình 15 Bảng user-case quản lí ví

Đặc tả use case quản lý tài khoản

22


Hình 16 Sơ đồ user-case quản lí tài khoản

Đổi mật khẩu
Tên use case

Sửa đổi mật khẩu

Tác nhân sử dụng

Người dùng

Mục đích

Chỉnh sửa mật khẩu người dùng trong hệ thống

Mơ tả

Nhập mật khẩu mới vào hệ thống dựa trên nhu cầu của
người dùng

Tiền điều kiện


Người dùng đã đăng nhập vào hệ thống

Kích hoạt

Nhân viên chọn chức năng đởi mật khẩu ở màn hình cài
đặt

Diễn biến chính

1.

u cầu đởi mật khẩu

2.

Hiện form đổi mật khẩu

3.

Nhập mật khẩu cũ

4.

Nhập lại mật khẩu mới

5.

Nhập lại mật khẩu mới lần 2


6.

Xử lý thông tin và trả kết quả
23


Diễn biến phụ

Khơng có

Ngoại lệ

Khơng có
Hình 17 Bảng user-case đổi mật khẩu

Sửa thông tin người dùng
Tên use case

Sửa thông tin người dùng

Tác nhân sử dụng

Người dùng

Mục đích

Chỉnh lại thơng tin người dùng trong hệ thống

Mô tả


Nhập thông tin mới vào hệ thống dựa trên nhu cầu của
người dùng

Tiền điều kiện

Người dùng đã đăng nhập vào hệ thống

Kích hoạt

Nhân viên chọn chức năng sửa thông tin người dùng ở
màn hình cài đặt

Diễn biến chính

1.

u cầu sửa thơng tin

2.

Hiện form sửa thơng tin người dùng

3.

Nhập lại thông tin người dùng

4.

Xử lý thông tin và trả kết quả


Diễn biến phụ

Khơng có

Ngoại lệ

Khơng có
Hình 18 Bảng user-case sửa thông tin người dùng

3.2. Thiết kế dữ liệu
3.2.1. Sơ đồ lớp ở mức phân tích
a. Sơ đồ lớp

b. Danh sách các lớp đối tượng
24


×