Xây dựng ứng dụng theo dõi chạy bộ trên Android

69 0 0
Tài liệu đã được kiểm tra trùng lặp
Xây dựng ứng dụng theo dõi chạy bộ trên Android

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Xây dựng ứng dụng theo dõi chạy bộ trên Android hoàn thành sinh viên đã vận dụng kiến thức và khảo sát thực tế để thực hiện yêu cầu bài toán. Ứng dụng đã được hoàn thành theo yêu cầu đã đặt ra ban đầu với các chức năng đã được thực hiện một các tương đối chỉn chu, ứng dụng đã đạt được mục tiêu ban đầu như: - Có thể giúp theo dõi những lần đi chạy bộ rèn luyện sức khỏe của người dùng và hiển thị lại sau khi kết thúc - Giúp người dùng xem lại lịch sử chạy bộ của mình giúp người dùng đưa ra những phương án rèn luyện hợp lý cho các lần chạy sau - Hiểu thị thông tin tổng quát về các lần chạy người dùng, giúp người dùng có cái nhìn tổng qut hơn về quá trình rèn luyện của bản thân.

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNGKHOA CÔNG NGHỆ THÔNG TIN

-MẪN XUÂN TUẤN ANH

PHÁT TRIỂN ỨNG DỤNG THEO DÕI CHẠY BỘ TRÊNANDROID

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

CHUYÊN NGÀNH KỸ THUẬT PHẦN MỀM

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN -

Trang 3

LỜI CẢM ƠN

Lời đầu tiên, em xin gửi lời cảm ơn chân thành đến Ban giám hiệu Trường Đại họcCông nghệ thông tin và Truyền thông, đặc biệt là Khoa Công nghệ thông tin đã tạo điềukiện cho em thực hiện và hoàn thành đồ án tốt nghiệp này.

Em xin trân trọng cảm ơn Thầy Nguyễn Văn Việt, giảng viên hướng dẫn đồ án, ngườiđã tận tình hướng dẫn, góp ý và hỗ trợ em trong suốt quá trình thực hiện đồ án Nhờ vàosự hướng dẫn cùng các kiến thức chuyên ngành của thầy, em đã có thể hoàn thành đượcđề tài "Phát triển ứng dụng theo dõi chạy bộ trên Android" một cách tốt nhất.

Em cũng xin gửi lời cảm ơn tất cả các giảng viên thuộc khoa Công nghệ thông tincũng như các giảng viên thuộc các bộ môn khác đã truyền đạt kiến thức và kỹ năng choem trong các lĩnh vực khác nhau đặc biệt là về Công nghệ thông tin trong suốt quá trìnhhọc tập tại trường.

Em nhận thức được rằng đồ án của em còn nhiều thiếu sót cần cải thiện và bổ sungthêm Vậy nên em mong muốn có được các góp ý và ý tưởng về đề tài này để em có thểtiếp tục học hỏi và nghiên cứu để cải thiện cũng như áp dụng cho các dự án sau này.

Em xin chân thành cảm ơn!

Thái Nguyên, ngày tháng năm 2024Sinh viên thực hiện

Mẫn Xuân Tuấn Anh

Trang 4

LỜI CAM ĐOAN

Em xin cam đoan rằng bài báo đồ án tốt nghiệp này là kết quả của quá trình tổng hợpvà nghiên cứu của cá nhân em, được thực hiện trên cơ sở nghiên cứu lý thuyết, kiến thứcdưới sự hướng dẫn tận tình giáo viên hướng dẫn ThS Nguyễn Văn Việt Trong báo cáođồ án tốt nghiệp này, em có tham khảo và sử dụng một số kiến thức từ các nguồn đã đượcliệt kê trong phần tài liệu tham khảo ở cuối bài báo cáo.

Trang 5

1.2 Các công cụ và tiện ích được sử dụng 17

1.2.1 Android Studio IDE 17

1.2.2 Ngôn ngữ lập trình Kotlin 18

1.2.3 Thư viện Jetpack Compose 19

1.2.4 Thư viện Dagger Hilt 20

2.2.2 Chức năng theo dõi chạy bộ 25

2.2.3 Chức năng dòng thời gian 25

2.2.4 Chức năng quản lí trang cá nhân 25

Trang 7

3.2.3 Chức năng theo dõi chạy 52

3.2.4 Giao diện bảng điều hướng 55

3.2.5 Giao diện trang cá nhân 56

3.2.6 Giao diện dòng thời gian 58

3.2.7 Giao diện bạn bè 60

3.2.8 Giao diện cài đặt 65

3.2.9 Hộp thoại đăng xuất 66

KẾT LUẬN 67

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

2 Những điểm hạn chế 67

3 Hướng phát triển 67

TÀI LIỆU THAM KHẢO 68

Ý KIẾN CỦA GIÁO VIÊN HƯỚNG DẪN 69

Trang 8

MỤC LỤC HÌNH ẢNH

Hình 2.1 Trường hợp sử dụng tổng quát 26

Hình 2.2: Biểu đồ hoạt động chức năng Đăng nhập bằng địa chỉ email 30

Hình 2.3 Biểu đồ hoạt động chức năng Đăng nhập bằng Google 31

Hình 2.4 Biểu đồ hoạt động chức năng Tạo tài khoản 31

Hình 2.5 Biểu đồ hoạt động chức năng Đặt lại mật khẩu 32

Hình 2.6 Biểu đồ trình tự chức năng Đăng nhập bằng email 32

Hình 2.7 Biểu đồ trình tự cho chức năng Đăng nhập bằng Google 33

Hình 2.8 Biểu đồ hoạt động cho chức năng Đăng ký 33

Hình 2.9 Biểu đồ hoạt động cho chức năng Đặt lại mật khẩu 34

Hình 2.10 Biểu đồ hoạt động khi bắt đầu theo dõi chạy 36

Hình 2.11 Biểu đồ hoạt động khi kết thúc phiên chạy 37

Hình 2.12 Biểu đồ hoạt động chức năng lưu lại phiên chạy 37

Hình 2.13 Biểu đồ trình tự khi bắt đầu phiên chạy 38

Hình 2.14 Biểu đồ trình tự khi kết thúc phiên chạy 38

Hình 2.15 Biểu đồ trình tự lưu phiên chạy 39

Hình 2.17 Biểu đồ hoạt động cho chức năng Xem và Lọc dòng thời gian 41

Hình 2.18 Biểu đồ hoạt động cho chức năng xóa bản ghi chạy 41

Hình 2.19 Biều đồ trình tự cho chức năng Xem và Lọc dòng thời gian 42

Hình 2.20 Biểu đồ trình tự cho chức năng Xóa bản ghi chạy 42

Hình 2.22 Biểu đồ hoạt động cho chức năng Xem trang cá nhân 44

Hình 2.23 Biểu đồ hoạt động cho chức năng chỉnh sửa trang cá nhân 44

Hình 2.24 Biểu đồ trình tự cho chức năng Xem trang cá nhân 45

Hình 2.25 Biểu đồ trình tự Chỉnh sửa trang cá nhân 45

Hình 3.1 Màn hình xác thực 47

Hình 3.2 Biểu mẫu Đăng nhập bằng địa chỉ email 48

Trang 9

Hình 3.3 Biểu mẫu Đăng ký 49

Hình 3.4 Biểu mẫu Đặt lại mật khẩu 50

Hình 3.5 Màn hình chính kèm theo các thông số của người dùng 51

Hình 3.6 Màn hình theo dõi chạy 52

Hình 3.7 Màn hình theo dõi chạy khi đã bắt đầu 53

Hình 3.8 Màn hình sau khi kết thúc phiên chạy 54

Hình 3.15 Hộp thoại gửi lời mời kết bạn 61

Hình 3.16 Menu các chức năng với mỗi bạn bè 62

Hình 3.17 Màn hình cho Lời mời kết bạn đã gửi đi 63

Hình 3.18 Màn hình Yêu cầu kết bạn đến 64

Hình 3.19 Màn hình Cài đặt trong ứng dụng 65

Hình 3.20 Hộp thoại xác nhận đăng xuất 66

Trang 10

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT1.1 Các công nghệ được áp dụng

1.1.1 MVVM Design Pattern

Mô hình MVVM (Model-View-ViewModel) là một Design Pattern (mẫu thiết kế)được sử dụng rộng rãi trong phát triển phần mềm để tách biệt logic xử lý dữ liệu và giaodiện người dùng MVVM kết hợp các khái niệm của Mô hình (Model), Giao diện (View)và Mô-đun xử lý hiển thị (ViewModel) để tạo ra một cấu trúc ứng dụng có thể quản lý dễdàng và mở rộng.

Trong MVVM, Model đại diện cho dữ liệu và logic xử lý dữ liệu Nó không biết gì vềgiao diện người dùng và không phụ thuộc vào nó Model thực hiện các hoạt động nhưtruy xuất, cập nhật và xử lý dữ liệu.

View là thành phần hiển thị giao diện người dùng Nó đảm nhận vai trò hiển thị dữ liệutừ ViewModel và tương tác với người dùng View không chứa logic xử lý dữ liệu và chỉlàm nhiệm vụ hiển thị thông tin.

ViewModel là một lớp trung gian giữa Model và View Nó nhận dữ liệu từ Model vàchuyển đổi nó thành dữ liệu phù hợp để hiển thị trên View ViewModel cung cấp cácthuộc tính và lệnh mà View sử dụng để hiển thị và tương tác với dữ liệu Nó không biết gìvề giao diện người dùng cụ thể, điều này giúp tách biệt hoàn toàn logic xử lý dữ liệu vàgiao diện người dùng.

Ưu điểm của MVVM bao gồm:

- Tách biệt rõ ràng giữa logic xử lý dữ liệu và giao diện người dùng, giúp dễ dàng quảnlý và bảo trì ứng dụng.

- Tính linh hoạt và khả năng kiểm thử tốt do logic xử lý nằm trong ViewModel.

- Khả năng tái sử dụng cao, vì ViewModel không phụ thuộc vào giao diện người dùngcụ thể.

Tuy nhiên, MVVM cũng có một số nhược điểm:

- Đòi hỏi việc tạo ra một số lượng lớn các lớp cho ViewModel và khái niệm khá phứctạp hơn so với các mô hình truyền thống.

- Yêu cầu một số kiến thức về data binding và sử dụng các framework hỗ trợ để triển

Trang 11

So sánh với MVC (Model-View-Controller) và MVP (Model-View-Presenter):

- Trong MVC, Controller hoặc Presenter đảm nhận vai trò trung gian giữa Model vàView, trong khi MVVM sử dụng ViewModel MVC và MVP chủ yếu tập trung vào việcđiều phối và điều khiển, trong khi MVVM tập trung vào việc quản lý dữ liệu và giao diệnngười dùng.

- MVVM thường sử dụng data binding để liên kết dữ liệu giữa ViewModel và View,trong khi MVC và MVP không có tính năng này mặc định.

- MVP đặt nặng tính tương tác giữa Presenter và View, trong khi MVVM tập trung vàoviệc cung cấp dữ liệu cho View thông qua ViewModel.

Tóm lại, MVVM là một mô hình thiết kế phát triển phần mềm mạnh mẽ và linh hoạt.Nó tách biệt rõ ràng giữa logic xử lý dữ liệu và giao diện người dùng, giúp dễ dàngquảnlý và bảo trì ứng dụng MVVM có ưu điểm về tính linh hoạt, khả năng kiểm thử tốt vàkhả năng tái sử dụng cao Tuy nhiên, nó đòi hỏi việc tạo ra nhiều lớp và có một số kháiniệm phức tạp So với MVC và MVP, MVVM tập trung vào việc quản lý dữ liệu và giaodiện người dùng, sử dụng data binding để liên kết dữ liệu và cung cấp dữ liệu cho Viewthông qua ViewModel.

1.1.2 Clean Architecture

Clean Architecture (Kiến trúc sạch) là một phương pháp thiết kế phần mềm được pháttriển bởi Robert C Martin, còn được gọi là Uncle Bob Nó tập trung vào việc tách biệtcác thành phần và lớp của hệ thống thành các lớp độc lập với nhau, đồng thời đảm bảotính mở rộng, bảo trì và kiểm thử dễ dàng.

Mục tiêu chính của Clean Architecture là tạo ra một hệ thống có thể thay đổi các chitiết bên trong mà không ảnh hưởng đến các thành phần bên ngoài Nó đề cao sự phântách giữa các lớp và sự tuân thủ các nguyên tắc SOLID (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation và Dependency Inversion).

Clean Architecture được chia thành các lớp theo các mức độ phụ thuộc và trách nhiệmkhác nhau Các lớp này bao gồm:

Trang 12

1 Entities (Thực thể): Đây là các đối tượng cơ bản của hệ thống, biểu diễn các kháiniệm cốt lõi và logic của ứng dụng.

2 Use Cases (Các trường hợp sử dụng): Lớp này chứa các quy trình kinh doanh cụ thểvà các tác vụ sử dụng các đối tượng Entities để thực hiện các nhiệm vụ cụ thể.

3 Interface Adapters (Bộ chuyển đổi giao diện): Lớp này chứa các thành phần liênquan đến việc giao tiếp với bên ngoài của hệ thống, bao gồm các lớp giao diện ngườidùng, lớp giao tiếp với các dịch vụ bên ngoài (API, cơ sở dữ liệu, v.v.) và các lớp chuyểnđổi dữ liệu.

4 Frameworks & Drivers (Các khung ứng dụng và trình điều khiển): Đây là thànhphần giao tiếp trực tiếp với các công nghệ và framework bên ngoài như UI frameworks,databases, web servers, v.v Nó chịu trách nhiệm kết nối các thành phần bên trong với cácthành phần bên ngoài.

Ưu điểm của Clean Architecture bao gồm:

- Tính linh hoạt và dễ dàng mở rộng: Các thành phần được tách biệt rõ ràng, cho phépthay đổi và bảo trì dễ dàng mà không ảnh hưởng đến các thành phần khác.

- Khả năng kiểm thử tốt: Các thành phần có thể được kiểm thử độc lập mà không cầnphụ thuộc vào các thành phần khác.

- Tính tái sử dụng cao: Sự phân tách giữa các lớp và nguyên tắc SOLID tạo điều kiệncho việc tái sử dụng mã nguồn.

Tuy nhiên, Clean Architecture cũng có một số nhược điểm:

- Đòi hỏi sự hiểu biết về nguyên tắc và quy tắc thiết kế phần mềm.

- Tạo ra một số lớp và thành phần phụ để xử lý sự tách biệt và phân chia trách nhiệm,gây ra một lượng mã nguồn và công việc phát triển thêm.

Clean Architecture giúp xây dựng hệ thống phần mềm linh hoạt, dễ bảo trì và dễ kiểmthử Nó tách biệt các thành phần và lớp của hệ thống thành các lớp độc lập với nhau,đồng thời đảm bảo tính mở rộng và bảo trì dễ dàng Các lớp trong Clean Architecture

Trang 13

được tổ chức theo mức độ phụ thuộc và trách nhiệm, bao gồm Entities, Use Cases,Interface Adapters và Frameworks & Drivers.

Entities đại diện cho các đối tượng cốt lõi của hệ thống, biểu diễn các khái niệm vàlogic chính Use Cases chứa các trường hợp sử dụng và tác vụ kinh doanh, sử dụng cácđối tượng Entities để thực hiện các nhiệm vụ cụ thể Interface Adapters chứa các thànhphần liên quan đến giao tiếp với bên ngoài, bao gồm giao diện người dùng, dịch vụ bênngoài và chuyển đổi dữ liệu Cuối cùng, Frameworks & Drivers là thành phần giao tiếpvới các công nghệ và framework bên ngoài, như UI frameworks hay cơ sở dữ liệu.

Clean Architecture có nhiều ưu điểm, bao gồm tính linh hoạt và dễ mở rộng, khả năngkiểm thử tốt và khả năng tái sử dụng cao Việc tách biệt rõ ràng giữa các thành phần giúpthay đổi và bảo trì dễ dàng, đồng thời cho phép kiểm thử độc lập các thành phần Tuynhiên, việc áp dụng Clean Architecture đòi hỏi hiểu biết về nguyên tắc và quy tắc thiết kếphần mềm, cũng như tạo ra một số lớp và công việc phát triển thêm.

Clean Architecture là một phương pháp thiết kế phần mềm mạnh mẽ, giúp xây dựng hệthống linh hoạt, bảo trì dễ dàng và dễ kiểm thử Nó đảm bảo sự tách biệt giữa các thànhphần và lớp trong hệ thống, đồng thời tuân thủ nguyên tắc SOLID để tạo ra một kiến trúcsạch và dễ mở rộng.

1.1.3 Dependency Injection

Dependency Injection (DI) là một nguyên tắc trong lập trình phần mềm giúp quản lýcác thành phần phụ thuộc (dependencies) trong một ứng dụng Nó tạo điều kiện cho việcchèn (inject) các đối tượng hoặc các phụ thuộc vào một thành phần từ bên ngoài, thay vìthành phần tự tạo hay quản lý chúng.

Mục tiêu chính của Dependency Injection là giảm sự phụ thuộc chặt chẽ giữa cácthành phần trong một hệ thống phần mềm Thay vì các thành phần tự tạo hoặc trực tiếpgọi các thành phần phụ thuộc, DI cho phép các phụ thuộc được cung cấp từ bên ngoài,thông qua việc chèn chúng vào thành phần cần sử dụng Điều này tạo ra một cách linhhoạt để thay đổi và tái sử dụng các thành phần mà không làm thay đổi mã nguồn của cácthành phần khác.

Có ba phương pháp chính để thực hiện Dependency Injection:

Trang 14

1 Constructor Injection (Chèn thông qua Constructor): Trong phương pháp này, cácphụ thuộc được chèn vào thông qua các tham số của constructor của một lớp Khi khởitạo một đối tượng từ lớp đó, các phụ thuộc sẽ được cung cấp và gán cho các biến thànhviên tương ứng.

2 Setter Injection (Chèn thông qua Setter): Trong phương pháp này, các phụ thuộcđược chèn vào thông qua các phương thức setter của một lớp Sau khi khởi tạo đối tượng,các phương thức setter sẽ được gọi để cung cấp các phụ thuộc.

3 Interface Injection (Chèn thông qua Interface): Trong phương pháp này, mộtinterface được sử dụng để chèn các phụ thuộc vào thành phần Lớp thành phần sẽ triểnkhai interface này và cung cấp implement cho các phương thức chèn phụ thuộc.

Ưu điểm của Dependency Injection bao gồm:

- Giảm sự phụ thuộc: DI giúp giảm sự phụ thuộc chặt chẽ giữa các thành phần, làmcho mã nguồn linh hoạt hơn và dễ mở rộng hơn.

- Tái sử dụng và kiểm thử dễ dàng: Các phụ thuộc có thể được thay thế hoặc mô phỏngtrong quá trình kiểm thử hoặc thay đổi logic mà không cần thay đổi mã nguồn của thànhphần.

- Quản lý các thành phần phụ thuộc: DI giúp quản lý việc tạo và cung cấp các thànhphần phụ thuộc, đảm bảo rằng các phiên bản và tài nguyên được quản lý một cách hiệuquả.

Tuy nhiên, DI cũng có một số nhược điểm:

- Điều phối phụ thuộc: Việc quản lý và điều phối các phụ thuộc có thể trở nên phức tạpvà khó khăn trong các ứng dụng lớn.

- Cần hiểu rõ cấu trúc và quy tắc: Áp dụng DI đòi hỏi hiểu rõ nguyên tắc và quy tắccủa nó để đảm bảo việc chèn phụ thuộc được thực hiện đúng cách.

Dependency Injection là một nguyên tắc quan trọng trong lập trình phần mềm, giúpgiảm sựphụ thuộc và tạo ra các ứng dụng dễ dàng mở rộng, linh hoạt và dễ quản lý Nó làmột công cụ mạnh mẽ trong việc xây dựng các hệ thống phần mềm có khả năng thay đổivà bảo trì tốt.

Trang 15

1.1.4 SOLID Principles

SOLID là một bộ nguyên tắc thiết kế phần mềm được đưa ra để tạo ra các hệ thốngphần mềm dễ dàng bảo trì, mở rộng và linh hoạt Tên gọi SOLID đại diện cho nămnguyên tắc chính: Single Responsibility (SRP), Open-Closed (OCP), Liskov Substitution(LSP), Interface Segregation (ISP) và Dependency Inversion (DIP).

1 Single Responsibility (SRP): Nguyên tắc SRP khuyến khích mỗi lớp hoặc modulechỉ nên có một trách nhiệm duy nhất Một lớp nên chỉ chịu trách nhiệm về một khía cạnhcụ thể của chương trình và nhiệm vụ của nó không nên phụ thuộc vào quá nhiều yếu tốbên ngoài Nếu một lớp có quá nhiều trách nhiệm, nó sẽ trở nên khó bảo trì và dễ gây lỗi.

2 Open-Closed (OCP): Nguyên tắc OCP khuyến khích việc thiết kế các thành phầnphần mềm mở rộng được và đóng với việc sửa đổi Theo nguyên tắc này, một thành phầnphần mềm nên mở cho việc mở rộng bằng cách cho phép thay đổi hành vi của nó thôngqua kế thừa, ghi đè hoặc chèn thêm mã mới, mà không cần sửa đổi mã nguồn của thànhphần gốc.

3 Liskov Substitution (LSP): Nguyên tắc LSP tạo ra một quy ước cho việc kế thừatrong lập trình hướng đối tượng Nó nói rằng các đối tượng của lớp con nên có thể thaythế các đối tượng của lớp cha mà không làm thay đổi tính năng chính hoặc sự đúng đắncủa chương trình Điều này đảm bảo tính nhất quán và tương thích trong việc sử dụng cácđối tượng kế thừa.

4 Interface Segregation (ISP): Nguyên tắc ISP khuyến khích việc chia nhỏ các giaodiện lớn thành các giao diện nhỏ hơn, cung cấp các phương thức tương ứng với các khíacạnh cụ thể của chương trình Điều này giúp tránh việc lớp phải triển khai các phươngthức không cần thiết, giảm sự phụ thuộc và làm cho mã nguồn dễ đọc, bảo trì và mở rộnghơn.

5 Dependency Inversion (DIP): Nguyên tắc DIP tạo ra một cơ chế để quản lý phụthuộc giữa các thành phần phần mềm Thay vì các thành phần phụ thuộc trực tiếp vàonhau, nguyên tắc này khuyến khích sử dụng Dependency Injection (DI) để chèn các phụthuộc từ bên ngoài Điều này giúp giảm sự phụ thuộc chặt chẽ, tăng tính linh hoạt và khảnăng thay đổi của hệ thống.

SOLID là một tập hợp các nguyên tắc thiết kế phần mềm quan trọng, giúp tạo ra cáchệ thống phần mềm dễ bảo trì, mở rộng và linh hoạt Áp dụng đúng SOLID giúp tăng

Trang 16

tính module, giảm sự phụ thuộc vàgiúp phát triển mã nguồn dễ đọc, dễ kiểm thử và dễ táisử dụng Các nguyên tắc SOLID cung cấp một khung chắc chắn để xây dựng kiến trúcphần mềm chất lượng cao và giúp các nhà phát triển tạo ra các ứng dụng linh hoạt, mởrộng và dễ quản lý.

1.1.5 Serverless

Serverless là một mô hình phát triển ứng dụng trong đó nhà phát triển không cần quantâm đến việc quản lý cơ sở hạ tầng máy chủ (server infrastructure) Thay vì tập trung vàoviệc triển khai và quản lý máy chủ, nhà phát triển chỉ cần tập trung vào việc viết mã vàtriển khai các chức năng (functions) hoặc logic của ứng dụng.

Mô hình serverless cho phép nhà phát triển xây dựng ứng dụng phân tán và tự độngmở rộng mà không cần lo lắng về việc mua sắm, cấu hình và duy trì các máy chủ Cácchức năng (functions) trong mô hình này được triển khai và chạy trên nền tảng điện toánđám mây, và việc quản lý tài nguyên và mở rộng đều do nhà cung cấp điện toán đám mây(cloud provider) chịu trách nhiệm.

Có nhiều nhà cung cấp serverless phổ biến trên thị trường, mỗi nhà cung cấp đều cungcấp một dịch vụ serverless riêng với các tính năng và công cụ hỗ trợ Dưới đây là một sốví dụ về các nhà cung cấp serverless:

1 Amazon Web Services (AWS) Lambda: AWS Lambda là dịch vụ serverless củaAmazon Nó cho phép bạn triển khai các hàm (functions) và chạy chúng mà không cầnquan tâm đến việc quản lý máy chủ Lambda hỗ trợ nhiều ngôn ngữ lập trình và tích hợptốt với các dịch vụ khác trong hệ sinh thái AWS.

2 Microsoft Azure Functions: Azure Functions là dịch vụ serverless của MicrosoftAzure Nó cung cấp một môi trường để triển khai các chức năng (functions) mà khôngcần lo lắng về việc cấu hình máy chủ Azure Functions tích hợp tốt với các dịch vụ kháccủa Azure và hỗ trợ nhiều ngôn ngữ lập trình.

3 Google Cloud Functions: Google Cloud Functions là dịch vụ serverless của GoogleCloud Platform Nó cho phép bạn triển khai chức năng (functions) và chạy chúng màkhông cần quản lý cơ sở hạ tầng Cloud Functions tích hợp tốt với các dịch vụ khác củaGoogle Cloud và hỗ trợ nhiều ngôn ngữ lập trình.

Trang 17

4 IBM Cloud Functions: IBM Cloud Functions là dịch vụ serverless của IBM Cloud.Nó cho phép bạn triển khai các hàm (functions) và chạy chúng mà không cần quản lýmáy chủ IBM Cloud Functions hỗ trợ nhiều ngôn ngữ lập trình và tích hợp tốt với cácdịch vụ khác trong hệ sinh thái IBM Cloud.

Mô hình serverless giúp giảm sự phụ thuộc vào cơ sở hạ tầng và tập trung vào việc tạora các chức năng (functions) và logic của ứng dụng Nó mang lại sự linh hoạt, mở rộng vàgiảm chi phí cho việc phát triển ứng dụng Các nhà cung cấp serverless cung cấp cáccông cụ và dịch vụ để hỗ trợ triển khai và quản lý serverless một cách dễ dàng và hiệuquả.

1.2 Các công cụ và tiện ích được sử dụng

1.2.1 Android Studio IDE

Android Studio là một môi trường phát triển tích hợp (Integrated DevelopmentEnvironment - IDE) được phát triển bởi Google, chuyên dùng cho việc phát triển ứngdụng di động trên nền tảng Android Với các công cụ, tính năng và sự tích hợp đặc biệtcho việc phát triển Android, Android Studio là một lựa chọn hàng đầu cho các nhà pháttriển ứng dụng di động.

Dưới đây là một số đặc điểm và tính năng chính của Android Studio:

1 Tích hợp dễ dàng: Android Studio tích hợp tốt với trình quản lý mã nguồn Git và hệthống kiểm soát phiên bản, cho phép nhà phát triển dễ dàng quản lý mã nguồn và làmviệc trong nhóm Nó cũng tích hợp với Gradle, một công cụ xây dựng mạnh mẽ cho việcxây dựng, kiểm thử và triển khai ứng dụng Android.

2 Trình biên tập thông minh: Android Studio cung cấp trình biên tập mã nguồn thôngminh với các tính năng như gợi ý mã, kiểm tra lỗi cú pháp, tự động hoàn thành và địnhdạng mã tự động Điều này giúp tăng năng suất và giảm thời gian phát triển.

3 Thiết kế giao diện người dùng (UI): Android Studio cung cấp trình chỉnh sửa giaodiện người dùng (Layout Editor) cho phép nhà phát triển thiết kế giao diện người dùngmột cách trực quan Bằng cách kéo và thả các thành phần, sắp xếp và tùy chỉnh các yếutố giao diện, nhà phát triển có thể dễ dàng tạo ra giao diện người dùng hấp dẫn và tươngtác.

Trang 18

4 Trình giả lập thiết bị: Android Studio đi kèm với Android Emulator, một trình giảlập thiết bị Android tích hợp Trình giả lập này cho phép nhà phát triển thử nghiệm ứngdụng trên nhiều thiết bị Android khác nhau, mô phỏng các tính năng và hành vi của thiếtbị thực tế.

5 Hỗ trợ kiểm thử và gỡ lỗi: Android Studio cung cấp các công cụ mạnh mẽ để kiểmthử ứng dụng, bao gồm kiểm thử đơn vị (unit testing), kiểm thử chức năng (functionaltesting) và kiểm thử giao diện người dùng (UI testing) Nó cũng hỗ trợ gỡ lỗi (debugging)chi tiết, cho phép nhà phát triển theo dõi và sửa lỗi trong quá trình thực thi ứng dụng.

6 Tích hợp các công cụ và thư viện: Android Studio tích hợp và hỗ trợ một loạt cáccông cụ và thư viện hữu ích để giúp nhà phát triển xây dựng ứng dụng đa dạng và mạnhmẽ Điều này bao gồm hỗ trợ Kotlin (ngôn ngữ lập trình chính thức của Android), thưviện hỗ trợ Android Jetpack, Firebase, Google Play Services và nhiều công cụ và pluginkhác.

Android Studio là một IDE mạnh mẽ và toàn diện cho việc phát triển ứng dụngAndroid Với các tính năng và công cụ đa dạng cộng thêm sự hỗ trợ và cập nhật mạnhmẽ đến từ Google và nhà phát triển của IDE IntelliJ, việc phát triển ứng dụng di độngtrên hệ điều hành Android sẽ trở nên tiện lợi và dễ dàng hơn nhiều.

1.2.2 Ngôn ngữ lập trình Kotlin

Kotlin là một ngôn ngữ lập trình hiện đại, có tính năng tương thích ngược với Java,được phát triển bởi JetBrains Được giới thiệu lần đầu vào năm 2011, Kotlin đã nhanhchóng trở thành một ngôn ngữ phổ biến trong cộng đồng phát triển phần mềm và được sửdụng rộng rãi cho việc phát triển ứng dụng di động, ứng dụng máy chủ, và ứng dụng web.Một trong những đặc điểm chính của Kotlin là tính tương thích ngược với Java Điều nàycó nghĩa là bạn có thể sử dụng mã nguồn Java hiện có trong dự án Kotlin mà không cầnchỉnh sửa nhiều Kotlin cung cấp một trình biên dịch thông minh có khả năng hiểu vàbiên dịch mã Java, cho phép nhà phát triển chuyển đổi từ Java sang Kotlin một cách dễdàng và mượt mà.

Một trong những ưu điểm quan trọng của Kotlin là sự an toàn và thân thiện với lập trìnhviên Kotlin áp dụng nhiều quy tắc an toàn trong quá trình phát triển, giúp tránh được

Trang 19

nhiều lỗi phổ biến trong Java như null pointer exceptions Nó cung cấp một hệ thốngkiểm tra kiểu mạnh mẽ và thông minh, cho phép phát hiện lỗi tại thời điểm biên dịch vàcung cấp mã gợi ý để sửa chữa Điều này giúp tăng tính ổn định và tin cậy của ứng dụngKotlin.

Kotlin cung cấp rất nhiều tính năng mạnh mẽ để giúp nhà phát triển viết mã ngắn, dễ đọcvà dễ bảo trì Nó hỗ trợ cú pháp súc tích và linh hoạt, cho phép nhà phát triển viết mã mộtcách nhanh chóng và hiệu quả Kotlin cũng có nhiều tính năng tiện ích như hàm mở rộng,lớp dữ liệu, null safety, lambda expressions và coroutine Điều này giúp tăng năng suất vàgiảm thiểu lỗi trong quá trình phát triển.

Kotlin không chỉ hỗ trợ phát triển ứng dụng di động với Android, mà còn hỗ trợ phát triểnứng dụng máy chủ và ứng dụng web Kotlin/JVM cho phép bạn viết mã Java chạy trênmáy ảo Java (JVM) và Kotlin/Native cho phép bạn viết mã Kotlin chạy trên nền tảngnative như iOS và máy tính cá nhân Kotlin/JS cho phép bạn viết mã Kotlin và biên dịchthành JavaScript để phát triển ứng dụng web.

Tóm lại, Kotlin là một ngôn ngữ lập trình hiện đại, tương thích ngược với Java, vàđược phát triển bởi JetBrains Với tính tương thích ngược, tính an toàn, tính thân thiệnvới lập trình viên và nhiều tính năng mạnh mẽ, Kotlin là một lựa chọn tuyệt vời cho việcphát triển ứng dụng di động, ứng dụng máy chủ và ứng dụng web.

1.2.3 Thư viện Jetpack Compose

Jetpack Compose là một thư viện phát triển giao diện người dùng (UI) hiện đại và kháiniệm mới cho việc xây dựng ứng dụng Android Được phát triển bởi Google, JetpackCompose giúp các nhà phát triển tạo ra giao diện người dùng đẹp mắt, linh hoạt và dễdàng trong việc xây dựng ứng dụng di động.

Một trong những điểm nổi bật của Jetpack Compose là cú pháp khai báo giao diện dựatrên nguyên tắc "code là giao diện" Thay vì sử dụng XML như trong các phiên bản trướcđây, Jetpack Compose sử dụng Kotlin để tạo ra giao diện người dùng Điều này mang lạilợi ích lớn về sự linh hoạt, dễ đọc và dễ hiểu mã nguồn, giúp tăng năng suất phát triển vàgiảm thiểu lỗi.

Jetpack Compose cung cấp một loạt các thành phần UI tiện ích và mạnh mẽ Các thànhphần này được xây dựng dựa trên khái niệm "composables", có thể được kết hợp và tái sửdụng để tạo ra giao diện phức tạp Ví dụ, bạn có thể tạo các thành phần như nút (button),

Trang 20

danh sách (list), bảng điều khiển (checkbox), và rất nhiều nữa bằng cách sử dụng các hàmcomposables có sẵn hoặc tạo các composables tùy chỉnh của riêng bạn.

Jetpack Compose cũng cung cấp một hệ sinh thái mạnh mẽ của các công cụ hỗ trợ nhưAndroid Studio và các thư viện khác trong Jetpack Các công cụ này giúp đơn giản hóavà tăng tốc quá trình phát triển, bao gồm xem trước giao diện người dùng trực tiếp trongquá trình phát triển, kiểm tra nhanh chóng và dễ dàng, và phân tích hiệu năng ứng dụng.

Với Jetpack Compose, bạn có thể tận dụng các tính năng hiện đại như tạo hiệu ứngchuyển động mượt mà, tương tác đa điểm, và giao diện người dùng tối đa hóa cho cácthiết bị di động khác nhau Bên cạnh đó, Jetpack Compose được tích hợp tốt với hệ sinhthái Android hiện có, cho phép bạn kết hợp các thành phần Compose với các thành phầnAndroid truyền thống và sử dụng các tính năng mạnh mẽ của Android như cảm biến, dịchvụ nền, và quản lý vòng đời ứng dụng.

Với sự phát triển nhanh chóng và sự hỗ trợ từ cộng đồng, Jetpack Compose đang trởthành một công cụ phát triển giao diện người dùng quan trọng cho ứng dụng Android Nócung cấp sự linh hoạt, hiệu suất và khả năng mở rộng, giúp bạn xây dựng các ứng dụngAndroid tuyệt vời với giao diện người dùng đẹp và tương tác mạnh mẽ.

1.2.4 Thư viện Dagger Hilt

Dagger Hilt là một thư viện phổ biến trong cộng đồng phát triển Android, được pháttriển bởi Google và xây dựng dựa trên thư viện dependency injection (DI) Dagger.Dagger Hilt cung cấp một cách tiếp cận đơn giản và dễ sử dụng hơn để triển khai DItrong các ứng dụng Android.

Với Dagger Hilt, việc quản lý các phụ thuộc và cung cấp các đối tượng (objects) trongứng dụng trở nên dễ dàng hơn bằng cách sử dụng các annotated classes và cácannotations như @Inject, @Module và @Provides Thư viện giúp tự động tạo ra các đốitượng phụ thuộc và quản lý vòng đời của chúng, từ việc khởi tạo đến việc giải phóng bộnhớ.

Một trong những tính năng nổi bật của Dagger Hilt là sự tích hợp mạnh mẽ vớiAndroid Jetpack Thư viện cung cấp các annotation và cách tiếp cận tối ưu cho việc triểnkhai DI trong các thành phần Jetpack như Activities, Fragments, ViewModels và

Trang 21

Services Điều này giúp giảm bớt công việc lập trình và giúp bạn tập trung vào việc pháttriển chức năng chính của ứng dụng.

Dagger Hilt cũng hỗ trợ việc tạo ra các graph phụ thuộc (dependency graph) tự động.Thư viện tự động quét và phân tích các annotated classes để xác định các phụ thuộc vàtạo ra các đối tượng tương ứng Điều này giúp giảm thiểu công việc cấu hình thủ công vàđảm bảo tính nhất quán trong việc quản lý phụ thuộc.

Ngoài ra, Dagger Hilt cung cấp các tính năng như scoping, lazy injection và assistedinjection Scoping cho phép bạn xác định vòng đời của các đối tượng phụ thuộc, trong đóscoping annotation như @Singleton hay @ActivityScoped giúp quản lý vòng đời của cácđối tượng Lazy injection cho phép bạn trì hoãn việc tạo đối tượng cho đến khi nó đượcyêu cầu thực sự Assisted injection cho phép bạn cung cấp các giá trị động vào quá trìnhtạo đối tượng.

Dagger Hilt cũng được tích hợp tốt với các công cụ phát triển Android như AndroidStudio và Kotlin Thư viện cung cấp hỗ trợ code autocompletion, kiểm tra lỗi tĩnh và gợiý thông minh khi triển khai DI Điều này giúp tăng năng suất phát triển và đảm bảo tínhchính xác của việc triển khai DI trong dự án.

Tóm lại, Dagger Hilt là một thư viện dependency injection mạnh mẽ và dễ sử dụngtrong phát triển ứng dụng Android Với tích hợp tốt với Android Jetpack và các tính năngnhư scoping, lazy injection và assisted injection, Dagger Hilt giúp bạn quản lý phụ thuộcvà triển khai DI một cách dễ dàng và hiệu quả.

1.2.5 Google Firebase

Firebase là một nền tảng phát triển ứng dụng di động và web đám mây, được cung cấpbởi Google Nó cung cấp một loạt các dịch vụ dựa trên đám mây để giúp các nhà pháttriển xây dựng, triển khai và quản lý ứng dụng một cách dễ dàng và hiệu quả Firebasebao gồm nhiều dịch vụ khác nhau, trong đó có hai dịch vụ quan trọng sẽ được áp dụngvào trong dự án này đó là là Authentication và Firestore.

Firebase Authentication là một dịch vụ xác thực người dùng mạnh mẽ và dễ sử dụng.Nó cung cấp các phương thức xác thực linh hoạt như đăng nhập bằng email, đăng nhậpbằng mạng xã hội (Google, Facebook, Twitter), đăng nhập bằng số điện thoại và đăngnhập bằng tài khoản người dùng tùy chỉnh Firebase Authentication giúp bạn xây dựng hệthống đăng nhập an toàn và quản lý danh sách người dùng một cách dễ dàng Nó cũng

Trang 22

tích hợp tốt với các tính năng bảo mật khác của Firebase như quyền truy cập dựa trên vaitrò và kiểm soát truy cập.

Firestore là một cơ sở dữ liệu đám mây NoSQL linh hoạt và mạnh mẽ Nó cung cấpmột lưu trữ dựa trên tài liệu và cơ chế đồng bộ thời gian thực, cho phép bạn lưu trữ vàtruy xuất dữ liệu một cách dễ dàng Firestore được tổ chức theo cấu trúc tàiliệu/collection/document, giúp bạn tổ chức và truy xuất dữ liệu theo cách linh hoạt Nócung cấp tính năng đồng bộ thời gian thực, cho phép dữ liệu được cập nhật ngay lập tứctrên tất cả các thiết bị kết nối Firestore cũng tích hợp tốt với các dịch vụ khác củaFirebase như Authentication, Cloud Functions và Storage, giúp bạn xây dựng ứng dụnghoàn chỉnh và mạnh mẽ.

Ngoài Authentication và Firestore, Firebase còn cung cấp nhiều dịch vụ khác nhưRealtime Database, Cloud Storage, Cloud Functions, Cloud Messaging và Analytics.Realtime Database là một cơ sở dữ liệu thời gian thực, Cloud Storage cung cấp lưu trữđám mây, Cloud Functions cho phép bạn xây dựng và triển khai các chức năng máy chủkhông cần máy chủ riêng, Cloud Messaging giúp gửi thông báo đến người dùng vàAnalytics giúp bạn hiểu rõ hơn về hành vi người dùng và hiệu suất ứng dụng.

Tóm lại, Firebase là một nền tảng đám mây mạnh mẽ cho phát triển ứng dụng di độngvà web Với dịch vụ như Authentication và Firestore, bạn có thể xây dựng hệ thống xácthực người dùng và quản lý dữ liệu một cách dễ dàng và linh hoạt Firebase cũng cungcấp một loạt các dịch vụ khác nhau để giúp bạn xây dựng các ứng dụng đa dạng và mạnhmẽ.

1.2.6 Star UML

Star UML là một ứng dụng phần mềm mạnh mẽ và linh hoạt để mô hình hóa và thiếtkế các hệ thống phần mềm Nó cung cấp một môi trường đồ họa dễ sử dụng và được sửdụng rộng rãi trong lĩnh vực phát triển phần mềm và quản lý dự án.

Với Star UML, bạn có thể tạo ra các biểu đồ UML (Unified Modeling Language) nhưbiểu đồ lớp, biểu đồ tuần tự, biểu đồ hoạt động, biểu đồ trạng thái và nhiều loại biểu đồkhác Các biểu đồ UML giúp bạn diễn đạt và trực quan hóa các khía cạnh cấu trúc, hànhvi và tương tác của hệ thống phần mềm, giúp cải thiện việc hiểu và truyền đạt thông tingiữa các thành viên trong dự án.

Trang 23

Star UML cung cấp một loạt các tính năng và công cụ để hỗ trợ quá trình phát triển phầnmềm Bạn có thể tạo ra các mô hình UML chính xác và chi tiết bằng cách kéo và thả cácphần tử, kết nối chúng với nhau và tùy chỉnh thuộc tính và phương thức của chúng Nócũng cho phép bạn tạo ra các mô hình mô phỏng tiến trình kinh doanh, cung cấp một cáinhìn tổng quan về cấu trúc của dự án.

Một trong những ưu điểm của Star UML là khả năng mở rộng của nó Bạn có thể tảixuống và cài đặt các plugin và extension từ cộng đồng người dùng, mở rộng tính năng vàkhả năng của ứng dụng theo nhu cầu cụ thể Điều này giúp bạn tùy chỉnh và linh hoạttrong việc sử dụng Star UML để phù hợp với yêu cầu cụ thể của dự án.

Ngoài ra, Star UML hỗ trợ xuất và nhập các tệp tin UML theo các định dạng chuẩn nhưXMI, XML, PNG và PDF, giúp bạn chia sẻ và trình bày mô hình của mình cho các thànhviên khác trong dự án Bạn cũng có thể tích hợp Star UML với các công cụ quản lý phiênbản như Git để theo dõi và quản lý lịch sử thay đổi của mô hình.

Tóm lại, Star UML là một ứng dụng mô hình hóa phần mềm mạnh mẽ và đa dạng Vớikhả năng tạo ra các biểu đồ UML và hỗ trợ mở rộng, nó giúp bạn thiết kế và trực quanhóa hệ thống phần mềm một cách dễ dàng và linh hoạt Với tính năng xuất và nhập tệptin UML và tích hợp với các công cụ khác, Star UML cung cấp một môi trường làm việctoàn diện để phát triển và quản lý dự án phần mềm.

Trang 24

CHƯƠNG 2 KHẢO SÁT & PHÂN TÍCH THIẾT KẾ2.1 Khảo sát

Trong những năm gần đây, xu hướng sử dụng các ứng dụng theo dõi chạy bộ đã trởthành một phần không thể thiếu của cuộc sống hiện đại Với sự phát triển của công nghệdi động và các thiết bị thông minh, việc sử dụng các ứng dụng chạy bộ trên điện thoại diđộng đã trở nên phổ biến và hấp dẫn đối với người dùng.

Nhờ vào tính tiện lợi và khả năng tương tác hoạt động, các ứng dụng theo dõi chạy bộđã trở thành người bạn đồng hành đáng tin cậy của mọi người khi tập luyện và rèn luyệnsức khỏe Những ứng dụng này cho phép người dùng ghi lại thông tin về quãng đường đãchạy, tốc độ, thời gian và nhiều thông số khác, giúp họ theo dõi tiến bộ và đạt được mụctiêu tập luyện cá nhân.

Một trong những lợi ích chính của việc sử dụng các ứng dụng theo dõi chạy bộ là khảnăng cung cấp phản hồi và gợi ý cá nhân hóa Các ứng dụng này có khả năng phân tíchdữ liệu và đưa ra những phản hồi thông minh về hiệu suất chạy bộ của người dùng Bằngcách theo dõi tiến bộ và đề xuất các bài tập tùy chỉnh, người dùng có thể nâng cao kỹnăng chạy bộ của mình và đạt được mục tiêu tập luyện một cách hiệu quả.

Ngoài ra, tính năng xã hội cũng là một phần quan trọng trong các ứng dụng theo dõi chạybộ Người dùng có thể chia sẻ thành tích của mình trên các mạng xã hội, tham gia vào cácnhóm cộng đồng chạy bộ và thách thức bạn bè Điều này không chỉ tạo ra một môitrường thân thiện và động lực cho người dùng, mà còn khuyến khích họ duy trì một lốisống lành mạnh và hoạt động thể chất đều đặn.

Tuy nhiên, cần lưu ý rằng việc sử dụng các ứng dụng theo dõi chạy bộ cần được thựchiện một cách cân nhắc và chính xác Bảo mật dữ liệu cá nhân là vấn đề quan trọng, dođó, người dùng nên kiểm tra và chọn lựa các ứng dụng có độ tin cậy và bảo mật cao.

Tóm lại, các ứng dụng theo dõi chạy bộ ngày nay đem lại nhiều lợi ích cho ngườidùng Từ việc theo dõi tiến bộ, cung cấp phản hồi cá nhân hóa cho đến khả năng kết nốixã hội, các ứng dụng này không chỉ giúp người dùng rèn luyện sức khỏe mà còn tạo nramột cộng đồng sôi động và đầy động lực.

Trang 25

2.2 Yêu cầu cơ bản về chức năng

2.2.1 Chức năng xác thực người dùng

Trước khi có thể sử dụng các chức năng chính của ứng dụng người dùng phải thựchiện Đăng nhập tài khoản trước Ứng dụng dự định sẽ cung cấp 2 hình thức đăng nhập làĐăng nhập bằng Google và Đăng nhập bằng địa chỉ email Nếu người dùng muốn sửdụng chức năng Đăng nhập bằng địa chỉ email thì trước hết phải thực hiện Đăng ký tàikhoản mới Sau khi người dùng thực hiện đăng ký, người dùng sẽ được gán một uid tựđộng, uid này sẽ được sử dụng để truy cập đến dữ liệu của người dùng trên cơ sở dữ liệu.Trong trường hợp người dùng quên mật khẩu, họ có thể thực hiện Đặt lại mật khẩu bằngcách sử dụng địa chỉ email đã đăng ký tài khoản trước đó.

2.2.2 Chức năng theo dõi chạy bộ

Đây là chức năng lòng cốt của ứng dụng Khi người dùng bắt đầu phiên chạy, ứngdụng sẽ thực hiện ghi lại các thông tin như quãng đường đã chạy được, vận tốc hiện tại,thời gian, vị trí hiện tại (dùng để hiển thị tuyến đường đã chạy qua trên bản đồ) cho đếnkhi kết thúc phiên chạy Toàn bộ thông tin của phiên chạy sẽ được lưu lại dưới dạng Bảnghi, các bản ghi đã được lưu sẽ được hiển thị ở Dòng thời gian.

2.2.3 Chức năng dòng thời gian

Toàn bộ Bản ghi sẽ được hiển thị ở đây kèm theo đó sẽ có một bộ lọc theo thời giangiúp người dùng có thể dễ dàng tìm và xem lại các Bản ghi cũ hơn.

2.2.4 Chức năng quản lí trang cá nhân

Toàn bộ thông tin của người dùng sẽ được hiển thị tại đây Người dùng có thể chọnnhững thông tin mà mình muốn hiển thị tới người khác ví dụ như tên, địa chỉ email, ngàysinh, số điện thoại, địa chỉ, sở thích, ngoài ra người dùng còn có thể đặt một đoạn giớithiệu ngắn để hiển thị trên cùng.

Trang 26

2.3 Tổng quan

2.3.1.Biểu đồ trường hợp sử dụng

Hình 2.1 Trường hợp sử dụng tổng quát2.3.2 Mô tả các tác nhân

1 User (Người dùng) ứng dụngNgười trực tiếp thực hiện các thao tác trên

Trang 27

2 UC2000 Track running đến khi người dùng kết thúc phiênGhi lại các thông tin cần thiết chochạy.

3 UC3000 Manage timeline chạy từ trước tới nay.Xem lại các bản ghi của các phiên

4 UC4000 Manage personal profile đặt cách hiển thị các thông tin nàyQuản lí các thông tin cá nhân và đến người dùng khác.

5 UC5000 Manage friends Quản lí bạn bè.

6 UC6000 Setttings ứng dụng.Chỉnh sửa các cài đặt cơ bản của

Trang 28

2.3.4 Biểu đồ lớp

Trang 30

- Chức năng đăng nhập bằng Email:

Hình 2.2: Biểu đồ hoạt động chức năng Đăng nhập bằng địa chỉ email

Trang 31

- Chức năng đăng nhập bằng Google:

Hình 2.3 Biểu đồ hoạt động chức năng Đăng nhập bằng Google

- Chức năng đăng ký:

Hình 2.4 Biểu đồ hoạt động chức năng Tạo tài khoản

Trang 32

- Chức năng đặt lại mật khẩu:

Hình 2.5 Biểu đồ hoạt động chức năng Đặt lại mật khẩu2.4.3 Biểu đồ trình tự

- Chức năng đăng nhập bằng email:

Hình 2.6 Biểu đồ trình tự chức năng Đăng nhập bằng email

Trang 33

- Chức năng đăng nhập bằng Google:

Hình 2.7 Biểu đồ trình tự cho chức năng Đăng nhập bằng Google

- Chức năng Đăng ký:

Hình 2.8 Biểu đồ hoạt động cho chức năng Đăng ký

Trang 34

- Chức năng Đặt lại mật khẩu:

Hình 2.9 Biểu đồ hoạt động cho chức năng Đặt lại mật khẩu

Ngày đăng: 16/05/2024, 01:28

Tài liệu cùng người dùng

Tài liệu liên quan