Qua các bất cập trên Tôi xin chọn đề tài nghiên cứu “Xây dựng ứng dụng ngân hàng máu nóng trực tuyến trên hệ điều hành Android” nhằm giúp cho công tác quản lý, kêu gọi, tìm kiếm các nhóm
Trang 1Giảng viên hướng dẫn : TS PHẠM ANH PHƯƠNG
Lớp sinh hoạt : 13CNTT
ĐÀ NẴNG, 04/2017
Trang 2LỜI CẢM ƠN
Lời đầu tiên, Tôi xin chân thành cảm ơn quý thầy cô trong khoa Tin học cũng như các quý thầy cô đang giảng dạy và công tác tại trường Đại học Sư Phạm - Đại học Đà Nẵng đã truyền đạt những kiến thức quý báu cho chúng tôi trong những năm học vừa qua
Đặc biệt, Tôi xin chân thành cảm ơn thầy TS Phạm Anh Phương và các thầy cô giáo của Khoa Tin học, Trường Đại học Sư Phạm Đà Nẵng xin cảm ơn quý thầy cô đã tận tình dạy bảo, giúp đỡ trong suốt thời gian Tôi thực hiện đề tài
Và cho Tôi được gửi lời cảm ơn đến Công Ty TNHH Tin Học & Thương Mại (AsNet) đã tạo điều kiện cho Tôi được tham gia thực tập tại đơn vị cũng như cung cấp tất cả các cơ sở vật chất và trang thiết bị có thể cho Tôi trong thời gian vừa qua Xin cảm ơn các anh chị trong công ty, đặc biệt là anh Trần Quốc Huy đã tận tình hướng dẫn giúp đỡ Tôi trong suốt thời gian Tôi tham gia thực tập
Xin trân trọng cảm ơn!
Đà Nẵng, ngày 25 tháng 04 năm 2017
Sinh viên thực hiện
Đặng Duy Hậu
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan:
1 Những nội dung trong báo cáo này là do Tôi thực hiện dưới sự hướng dẫn trực tiếp của TS Phạm Anh Phương và các anh chị trong Công ty TNHH Tin Học & Thương Mại (AsNet)
2 Mọi tham khảo dùng trong báo cáo này đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, Tôi xin chịu hoàn toàn trách nhiệm
Sinh viên thực hiện,
Đặng Duy Hậu
Trang 4NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN
Đà Nẵng, ngày tháng năm 2017
Cán bộ hướng dẫn
Trang 5NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN
Đà Nẵng, ngày tháng năm 2017
Hội đồng phản biện
Trang 6Đặng Duy Hậu – 13CNTT (2013 – 2017) Báo cáo khóa luận tốt nghiệp
MỤC LỤC LỜI CẢM ƠN
LỜI CAM ĐOAN
MỤC LỤC i
DANH MỤC CÁC TỪ VIẾT TẮT iii
DANH MỤC CÁC BẢNG iv
DANH MỤC HÌNH VẼ vi
MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN CÔNG NGHỆ LẬP TRÌNH DI ĐỘNG 5
1.1 Phân tích thiết kế hệ thống 5
1.2 Phân tích thiết kế hệ thống hướng đối tượng 5
1.2.1 Khái niệm về phân tích thiết kế hướng đối tượng 5
1.2.2 Khái niệm về UML 8
1.2.3 Phân tích thiết kế hướng đối tượng sử dụng UML 8
1.3 Nền tảng công nghệ 10
1.3.1 Giới thiệu về Java 10
1.3.2 Giới thiệu về mô hình MVC 11
1.3.3 Giới thiệu về hệ điều hành Android 13
1.3.4 Giới thiệu về Firebase 13
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG NGÂN HÀNG MÁU NÓNG TRỰC TUYẾN 15
2.1 Đặt vấn đề 15
2.2 Yêu cầu chức năng 15
2.3 Yêu cầu phi chức năng 16
2.4 Phân tích thiết kế hệ thống 17
Trang 7Đặng Duy Hậu – 13CNTT (2013 – 2017) Báo cáo khóa luận tốt nghiệp
2.4.1 Sơ đồ ca sử dụng 17
2.4.2 Đặc tả ca sử dụng chung cho tất cả loại tài khoản 23
2.4.3 Đặc tả ca sử dụng riêng cho thành viên 27
2.4.4 Đặc tả ca sử dụng riêng cho quản trị viên 28
2.4.5 Thiết kế cơ sở dữ liệu 32
2.4.6 Sơ đồ lớp 37
2.4.7 Sơ đồ tuần tự 38
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH NGÂN HÀNG MÁU NÓNG TRỰC TUYẾN 44
3.1 Môi trường triển khai 44
3.2 Kết quả triển khai 44
3.2.1 Giao diện giới thiệu các tính năng nổi bật của sản phẩm 44
3.2.2 Giao diện đăng nhập – đăng ký – quên mật khẩu 45
3.2.3 Giao diện trang chủ 45
3.2.4 Giao diện tìm kiếm nhóm máu 46
3.2.5 Giao diện tìm kiếm câu lạc bộ 46
3.2.6 Giao diện xem thông tin chi tiết câu lạc bộ 47
3.2.7 Giao diện tài khoản 47
3.2.8 Giao diện lịch sử hiến máu 48
3.2.9 Giao diện quản lý câu lạc bộ 48
3.2.10 Giao diện thảo luận trong câu lạc bộ 49
3.2.11 Giao diện thống kê 49
TÀI LIỆU THAM KHẢO 52
Trang 8Đặng Duy Hậu – 13CNTT (2013 – 2017) Báo cáo khóa luận tốt nghiệp
DANH MỤC CÁC TỪ VIẾT TẮT
STT Ký hiệu viết tắt Tên của ký hiệu viết tắt
2 JSON JavaScript Object Notation
3 OOAD Object Oriented Analysis and Design
4 OOP Object Oriented Programming
6 SQL Structured Query Language
7 HOOD Hierarchical Object Oriented Design
8 RDD Responsibility Driven Design
10 MVC Model - View - Controller
11 NoSQL Not only Structured Query Language
Trang 9Đặng Duy Hậu – 13CNTT (2013 – 2017) Báo cáo khóa luận tốt nghiệp
DANH MỤC CÁC BẢNG
Số hiệu
2.1 Bảng mô tả luồng sự kiện chính của ca sử dụng đăng ký 23
2.2 Bảng mô tả luồng sự kiện chính của ca sử dụng đăng
2.3 Bảng mô tả luồng sự kiện chính của ca sử dụng cập nhật
2.4 Bảng mô tả luồng sự kiện chính của ca sử dụng xem bài
2.5 Bảng mô tả luồng sự kiện chính của ca sử dụng tìm kiếm 25
2.6 Bảng mô tả luồng sự kiện chính của ca sử dụng tạo câu
2.9 Bảng mô tả luồng sự kiện chính của ca sử dụng quản lý
2.10 Bảng mô tả luồng sự kiện chính của ca sử dụng quản lý
2.11 Bảng mô tả luồng sự kiện chính của ca sử dụng quản lý
2.12 Bảng mô tả luồng sự kiện chính của ca sử dụng quản lý
2.13 Bảng mô tả luồng sự kiện chính của ca sử dụng quản lý
Trang 10Đặng Duy Hậu – 13CNTT (2013 – 2017) Báo cáo khóa luận tốt nghiệp
Trang 11Đặng Duy Hậu – 13CNTT (2013 – 2017) Báo cáo khóa luận tốt nghiệp
DANH MỤC HÌNH VẼ
Số hiệu
2.1 Ca sử dụng tổng quát cho tất cả loại tài khoản 17 2.2 Ca sử dụng tổng quát của thành viên câu lạc bộ 18 2.3 Ca sử dụng tổng quát của quản trị viên câu lạc bộ 19
2.18 Sơ đồ tuần tự quản lý thông tin cá nhân 39 2.19 Sơ đồ tuần tự xem bài đăng câu lạc bộ 39
Trang 12Đặng Duy Hậu – 13CNTT (2013 – 2017) Báo cáo khóa luận tốt nghiệp
2.20 Sơ đồ tuần tự xem thông tin câu lạc bộ 40
2.23 Sơ đồ tuần tự câu lạc bộ đã tham gia 41 2.24 Sơ đồ tuần tự quản lý câu lạc bộ - chỉnh sửa thông tin 42 2.25 Sơ đồ tuần tự quản lý câu lạc bộ - quản lý bài đăng 42 2.26 Sơ đồ tuần tự quản lý câu lạc bộ - quản lý thành viên 43 3.1 Giao diện giới thiệu các tính năng nổi bật của sản phẩm 44 3.2 Giao diện đăng nhập – đăng ký – quên mật khẩu 45
3.6 Giao diện xem thông tin chi tiết câu lạc bộ 47
3.10 Giao diện thảo luận trong câu lạc bộ 49
Trang 13MỞ ĐẦU
1 Lý do chọn đề tài
Trong cuộc sống ngày nay, máu là món quà vô giá mà cuộc sống đã ban tặng cho mỗi chúng ta Hàng ngày hàng ngàn người không may mắn đang khao khát chờ có máu để được cứu sống nên việc hiến máu tình nguyện là vô cùng cần thiết, góp phần đáp ứng nhu cầu máu, đảm bảo chất lượng máu an toàn phục vụ công tác cấp cứu, điều trị bệnh, tạo thêm niềm hy vọng sống cho nhiều người
Hiện nay ứng dụng về “máu nóng” chưa có ứng dụng nào để quản lý thành viên mà thường các nhóm trưởng kêu gọi trên cộng đồng mạng xã hội
là chính, nhiều lúc bị động phải chờ đợi người đăng ký và gặp trường hợp nguy cấp cần máu gấp thì lại không thể giải quyết ngay được
Qua các bất cập trên Tôi xin chọn đề tài nghiên cứu “Xây dựng ứng dụng ngân hàng máu nóng trực tuyến trên hệ điều hành Android” nhằm giúp cho công tác quản lý, kêu gọi, tìm kiếm các nhóm máu của các thành viên một các thuận tiện hơn, quản lý lịch sử hiến máu của thành viên một cách chính xác nhằm giúp người quản lý và các thành viên có thể nắm bắt thông tin một cách nhanh nhất để giúp đỡ người đang cần máu nóng gấp
2 Mục tiêu và nhiệm vụ đề tài
2.1 Mục tiêu
- Tìm hiểu thông tin về cách thức hoạt động của ngân hàng máu nóng
- Nghiên cứu mô hình hoạt động của các câu lạc bộ máu nóng
- Phân tích thiết kế hệ thống ngân hàng máu nóng
- Xây dựng phần mềm ngân hàng máu nóng trực tuyến
2.2 Nhiệm vụ
- Thu thập chi tiết thông tin về nhóm máu thành viên
- Quản lý lịch sử hiến máu
Trang 14- Tìm kiếm dữ liệu về các nhóm máu
- Thông báo thông tin hiến máu rộng rãi đến từng thành viên
3 Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng nghiên cứu
- Các đội nhóm, thành viên của các câu lạc bộ hiến máu tình nguyện
- Những người có nhu cầu cần máu nóng gấp
- Mô hình ngân hàng máu nóng
- Hệ thống hoạt động của các câu lạc bộ máu nóng
- Hệ điều hành Android
3.2 Phạm vi nghiên cứu
- Nghiên cứu về hệ điều hành Android
- Nghiên cứu về Firebase Realtime Database
- Xây dựng sản phẩm: phần mềm ngân hàng máu nóng trực tuyến thực nghiệm trên địa bàn thành phố Đà Nẵng
4 Phương pháp nghiên cứu
- Tìm hiểu, khảo sát các ứng dụng có chức năng tương tự, nghiên cứu và ứng dụng vào đề tài
- Tham khảo cách tổ chức, bố cục của giao diện hướng đến sự đơn giản,
dễ sử dụng đối người sử dụng
- Đề xuất các chức năng cho ứng dụng, cũng như nhận phản hồi ý kiến về chức năng từ giáo viên hướng dẫn từ đó đưa ra các giải pháp hợp lý phù hợp với xu thế phát triển của ứng dụng
- Ngoài ra sử dụng các phương pháp nghiên cứu khác như nghiên cứu tài liệu, giáo trình hay các tài liệu tham khảo có liên quan đến hệ thống cần xây dựng
4 Giải pháp đề xuất
Nghiên cứu cách sử dụng thống quản lý mã nguồn GIT (GitHub)
- Tạo người dùng và tham gia nhóm dự án
- Nghiên cứu đưa mã nguồn lên GitHub
Trang 15- Nghiên cứu báo cáo tiến độ công việc
Nghiên cứu hệ điều hành Android trong phát triển ứng dụng
- Nghiên cứu kiến trúc, nền tàng và các thành phần chính của hệ điều hành Android
- Nghiên cứu các yêu cầu của về thành viên và người quản trị, phân quyền các chức năng cho thành viên và người quản trị
- Nghiên cứu cách tổ chức báo cáo, xuất báo cáo
- Nghiên cứu các xây dựng bố cục ứng dụng thân thiện dễ sử dụng
5 Kết quả dự kiến
5.1 Lý thuyết
Xây dựng thành công phần mềm ngân hàng máu nóng trực tuyến góp phần giúp đỡ cho việc quản lý các công việc của các câu lạc bộ máu nóng trở nên hiệu quả hơn, giúp ít nhiều hơn cho cộng đồng:
- Nguồn dữ liệu được bảo mật, dễ dàng sử dụng tra cứu
- Cho phép người dùng lưu giữ lịch sử về quá trình hiến máu
5.2 Thực tiễn
Kết quả đạt được là một phần mềm có những chức năng sau:
- Cơ sở dữ liệu có tính bảo mật cao, giúp bảo quản thông tin của người dùng
- Chức năng đăng ký, đăng nhập khi sử dụng phần mềm
- Hiển thị danh sách các nhóm câu lạc bộ máu nóng trên địa bàn thành phố
- Hiển thị thông tin chi tiết về nhóm máu của thành viên của câu lạc bộ
- Hiển thị lịch sử hiến máu
- Tìm kiếm các thành viên theo từng nhóm máu và lọc các thành viên có
đủ điều kiện hiến máu tại một thời điểm nhất định
- Xây dựng ứng dụng hoàn chỉnh
Trang 166 Bố cục đề tài
Ngoài phần mở đầu và kết luận, bố cục của đề tài bao gồm ba chương:
Chương 1: Tổng quan công nghệ lập trình di dộng
Phần này trình bày về những kỹ thuật sẽ sử dụng để xây dựng và phát triển ứng dụng
Chương 2: Phân tích thiết kế hệ thống ngân hàng máu nóng trực tuyến
Phần này trình bày về việc phân tích thiết kế hệ thống và phân tích cơ sở
dữ liệu
Chương 3: Xây dựng chương trình ngân hàng máu nóng trực tuyến
Phần này trình bày những kết quả đạt được khi xây dựng chương trình
Đây là một đề tài còn mới mẻ nên trong quá trình nghiên cứu có thể có nhiều sai sót Tôi mong nhận được sự đóng góp của quý thầy cô
Trang 17CHƯƠNG 1: TỔNG QUAN CÔNG NGHỆ LẬP TRÌNH
DI ĐỘNG
1.1 Phân tích thiết kế hệ thống
Để xây dựng một hệ thống quản lý về máu nóng thành công và đạt yêu cầu, cần tiến hành phân tích thiết kế hệ thống Đây là bước quyết định đến tính thành công, bền vững của dự án với các ưu điểm như:
- Có một cái nhìn đầy đủ, đúng đắn và chính xác về hệ thống thông tin được xây dựng trong tương lai
- Tránh sai lầm trong thiết kế và cài đặt
- Tăng vòng đời (life cycle) hệ thống
- Dễ sửa chữa, bổ sung và phát triển hệ thống trong quá trình sử dụng hoặc khi hệ thống yêu cầu
1.2 Phân tích thiết kế hệ thống hướng đối tượng
1.2.1 Khái niệm về phân tích thiết kế hướng đối tượng
Khác với phương pháp hướng cấu trúc chỉ tập trung hoặc vào dữ liệu hoặc vào hành động, phương pháp hướng đối tượng tập trung vào cả hai khía cạnh của hệ thống là dữ liệu và hành động
Cách tiếp cận hướng đối tượng là một lối tư duy theo cách ánh xạ các thành phần trong bài toán vào các đối tượng ngoài đời thực Với cách tiếp cận này, một hệ thống được chia tương ứng thành các thành phần nhỏ gọi là
các đối tượng, mỗi đối tượng bao gồm đầy đủ cả dữ liệu và hành động liên
quan đến đối tượng đó Các đối tượng trong một hệ thống tương đối độc lập với nhau và phần mềm sẽ được xây dựng bằng cách kết hợp các đối tượng
Trang 18đó lại với nhau thông qua các mối quan hệ và tương tác giữa chúng Các nguyên tắc cơ bản của phương pháp hướng đối tượng bao gồm:
Trừu tượng hóa: trong phương pháp hướng đối tượng, các thực thể
phần mềm được mô hình hóa dưới dạng các đối tượng Các đối tượng này được trừu tượng hóa ở mức cao hơn dựa trên thuộc tính và phương thức mô tả đối tượng để tạo thành các lớp Các lớp cũng sẽ được trừu tượng hóa ở mức cao hơn nữa để tạo thành một sơ đồ các lớp được kế thừa lẫn nhau
Tính đóng gói và ẩn dấu thông tin: các đối tượng có thể có những
phương thức hoặc thuộc tính riêng mà các đối tượng khác không thể
sử dụng được Dựa trên nguyên tắc ẩn giấu thông tin này, cài đặt của các đối tượng sẽ hoàn toàn độc lập với các đối tượng khác, các lớp độc lập với nhau và cao hơn nữa là cài đặt của hệ thống hoàn toàn độc lập với người sử dụng cũng như các hệ thống khác sử dụng kết quả của nó
Tính mô-đun hóa: các bài toán sẽ được phân chia thành những vấn
đề nhỏ hơn, đơn giản và quản lý được
Tính phân cấp: cấu trúc của một hệ thống hướng đối tượng là dạng
phân cấp theo các mức độ trừu tượng từ cao đến thấp
Các khái niệm cơ bản của hướng đối tượng:
Đối tượng: một đối tượng biểu diễn một thực thể vật lý, một thực thể
khái niệm hoặc một thực thể phần mềm Có thể định nghĩa một đối tượng là một khái niệm, sự trừu tượng hoặc một vật với giới hạn rõ ràng và có ý nghĩa với một ứng dụng cụ thể
Lớp: là mô tả của một nhóm đối tượng có chung các thuộc tính, hành
vi và các mối quan hệ Như vậy, một đối tượng là thể hiện của một
Trang 19lớp và một lớp là một định nghĩa trừu tượng của đối tượng
Thành phần: là một phần của hệ thống hoạt động độc lập và giữ một
chức năng nhất định trong hệ thống
Gói: là một cách tổ chức các thành phần, phần tử trong hệ thống
thành các nhóm Nhiều gói có thể được kết hợp với nhau để trở thành một hệ thống con
Kế thừa: Trong phương pháp hướng đối tượng, một lớp có thể có sử
dụng lại các thuộc tính và phương thức của một hoặc nhiều lớp khác Kiểu quan hệ này gọi là quan hệ kế thừa, được xây dựng dựa trên mối
quan hệ kế thừa trong bài toán thực tế Ví dụ, giả sử ta có lớp Người gồm các thuộc tính: tên, ngày sinh, quê quán, giới tính, lớp Nhân viên
có quan hệ kế thừa từ lớp Người sẽ có tất cả các thuộc tính trên và bổ sung thêm các thuộc tính mới gồm : chức vụ, lương
Vòng đời phát triển phần mềm hướng đối tượng cũng có các pha tương
tự như các vòng đời phát triển phần mềm nói chung Các pha cơ bản đặc trưng trong phát triển phần mềm hướng đối tượng bao gồm:
Phân tích hướng đối tượng: xây dựng một mô hình chính xác để mô
tả hệ thống cần xây dựng là gì Thành phần của mô hình này là các đối tượng gắn với hệ thống thực
Thiết kế hướng đối tượng: Là giai đoạn tổ chức chương trình thành
các tập hợp đối tượng cộng tác, mỗi đối tượng trong đó là thực thể của một lớp Kết quả của thiết kế cho biết hệ thống sẽ được xây dựng như thế nào qua các bản thiết kế kiến trúc và thiết kế chi tiết
Lập trình và tích hợp: Thực hiện bản thiết kế hướng đối tượng bằng
cách sử dụng các ngôn ngữ lập trình hướng đối tượng (C++, Java, )
Trang 20Các phương pháp hướng đối tượng:
Phương pháp HOOD là một phương pháp được lựa chọn để thiết kế các hệ thống thời gian thực Nhưng phương pháp này lại yêu cầu các phần mềm phải được mã hoá bằng ngôn ngữ lập trình ADA Do vậy phương pháp này chỉ hỗ trợ cho việc thiết kế các đối tượng mà không
hỗ trợ cho các tính năng kế thừa và phân lớp
Phương pháp RDD dựa trên việc mô hình hoá hệ thống thành các lớp Các công việc mà hệ thống phải thực hiện được phân tích và chia ra cho các lớp của hệ thống Các đối tượng trong các lớp của hệ thống trao đổi các thông báo với nhau nhằm thực hiện công việc đặt ra Phương pháp RDD hỗ trợ cho các khái niệm về lớp, đối tượng và kế thừa trong cách tiếp cận hướng đối tượng
Phương pháp OMT là một phương pháp được xem là mới nhất trong cách tiếp cận hướng đối tượng
1.2.2 Khái niệm về UML
UML là ngôn ngữ mô hình hóa hợp nhất dùng để biểu diễn hệ thống Nói một cách đơn giản là nó dùng để tạo ra các bản vẽ nhằm mô tả thiết kế hệ thống Các bản vẽ này được sử dụng để các nhóm thiết kế trao đổi với nhau cũng như dùng để thi công hệ thống (phát triển), thuyết phục khách hàng, các nhà đầu tư v.v (giống như trong xây dựng người ta dùng các bản vẽ thiết kế
để hướng dẫn và kiểm soát thi công, bán hàng căn hộ v.v )
1.2.3 Phân tích thiết kế hướng đối tượng sử dụng UML
OOAD sử dụng UML bao gồm các thành phần sau:
Góc nhìn: Việc sử dụng nhiều góc nhìn trong phân tích thiết kế sẽ
giúp cho phân tích viên nắm rõ được hệ thống ở nhiều khía cạnh OOAD sử dụng UML có các góc nhìn sau:
Trang 21o Khung nhìn phiên hoạt động: cung cấp góc nhìn về các cách sử
dụng giúp chúng ta hiểu hệ thống có gì? Ai dùng và dùng nó như thế nào
o Khung nhìn kỹ thuật: cung cấp góc nhìn về cấu trúc hệ thống,
xem nó được tổ chức như thế nào Bên trong nó có gì
o Khung nhìn tiến trình: cung cấp góc nhìn động về hệ thống,
xem các thành phần trong hệ thống tương tác với nhau như thế nào
o Khung nhìn thành phần: cũng là một góc nhìn về cấu trúc giúp
chúng ta hiểu cách phân bổ và sử dụng lại các thành phần trong
o Sơ đồ ca sử dụng: bản vẽ mô tả về ca sử dụng của hệ thống
Bản vẽ này sẽ giúp chúng ta biết được ai sử dụng hệ thống, hệ thống có những chức năng gì Lập được bản vẽ này bạn sẽ hiểu được yêu cầu của hệ thống cần xây dựng
o Sơ đồ lớp: bản vẽ này mô tả cấu trúc của hệ thống, tức hệ thống
được cấu tạo từ những thành phần nào Nó mô tả khía cạnh tĩnh của hệ thống
o Sơ đồ đối tƣợng: tương tự như sơ đồ lớp nhưng nó mô tả đến
đối tượng thay vì lớp
Trang 22o Sơ đồ tuần tự: là bản vẽ mô tả sự tương tác của các đối tượng
trong hệ thống với nhau được mô tả tuần tự các bước tương tác theo thời gian
o Sơ đồ tương tác: tương tự như sơ đồ tuần tự nhưng nhấn mạnh
về sự tương tác thay vì tuần tự theo thời gian
o Sơ đồ trạng thái: bản vẽ mô tả sự thay đổi trạng thái của một
đối tượng Nó được dùng để theo dõi các đối tượng có trạng thái thay đổi nhiều trong hệ thống
o Sơ đồ hoạt động: bản vẽ mô tả các hoạt động của đối tượng,
thường được sử dụng để hiểu về nghiệp vụ của hệ thống
o Sơ đồ thành phần: bản vẽ mô tả về việc bố trí các thành phần
của hệ thống cũng như việc sử dụng các thành phần đó
o Sơ đồ triển khai: bản vẽ mô tả việc triển khai của hệ thống như
việc kết nối, cài đặt, hiệu năng của hệ thống v.v…
Qui tắc, cơ chế: là các qui tắc để lập nên bản vẽ, mỗi bản vẽ có qui tắc
riêng và phân tích viên phải nắm được để tạo nên các bản vẽ thiết kế
đúng
1.3 Nền tảng công nghệ
1.3.1 Giới thiệu về Java
Ngôn ngữ lập trình Java là một ngôn ngữ lập trình hướng đối tượng (OOP, dựa trên các lớp Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành mã nhị phân, sau đó sẽ được môi trường thực thi chạy Trước đây, Java chạy chậm hơn những ngôn ngữ dịch thẳng ra mã máy như C và C++, nhưng sau này nhờ công nghệ "biên dịch tại chỗ" - Just in time compilation, khoảng cách này đã được thu hẹp, và trong
Trang 23một số trường hợp đặc biệt Java có thể chạy nhanh hơn Java chạy nhanh hơn những ngôn ngữ thông dịch như Python, Perl, PHP gấp nhiều lần Java chạy tương đương so với C#, một ngôn ngữ khá tương đồng về mặt cú pháp và quá trình dịch/chạy
1.3.2 Giới thiệu về mô hình MVC
Hình 1.1: Giới thiệu về mô hình MVC
Giới thiệu mô hình MVC:
MVC là chữ viết tắt của Model – View – Controller, đây là bộ ba chứa
các lớp được giới thiệu lần đầu tiên bởi Krasner và Pope vào năm
1988, được sử dụng để xây dựng giao diện người dùng trong Smalltalk-80
MVC bao gồm 3 loại đối tượng Model là đối tượng ứng dụng, View là đối tượng biểu diễn màn hình và đối tượng Controller định nghĩa các phản hồi từ khi người sử dụng tương tác với giao diện người sử dụng
Mô hinh MVC tách các thành phần này ra để tăng tính linh hoạt và dễ
sử dụng
Trang 24 MVC tách các View và Model bằng cách thiết lập một giao thức đăng ký/thông báo giữa chúng View phải đảm bảo sự hiện diện của nó phản ánh đúng trạng thái của Model Khi nào có sự thay đổi dữ liệu từ Model, Model sẽ thông báo cho View đang sử dụng nó (nó phụ thuộc vào)
MVC cũng cho phép chúng ta thay đổi cách một View phản hồi dựa trên tương tác của người dùng mà không làm thay đổi cách trình bày trực quan của nó MVC gói gọn cơ chế phản hồi trong một đối tượng Controller
Chính những tính năng quan trọng đó làm cho mô hình MVC ngày càng được phổ biến rộng rãi, đặc biệt sử dụng nhiều trong quá trình xây dựng các ứng dụng web, mobile vì nó phân tách các chức năng một cách rõ ràng, thuận tiện cho quá trình phát triển và bảo trì
Kiến trúc mô hình MVC: Mô hình MVC là một kiến trúc phần mềm cho
ứng dụng mobile, web được sử dụng rộng rãi hiện nay Nó tổ chức mã một cách lợp lý và có hệ thống Mô hình MVC tách biệt phần xử lý dữ liệu ra
khỏi phần giao diện Nó bao gồm ba thành phần chính:
Model: có nhiệm vụ thao tác với cơ sở dữ liệu, nghĩa là nó sẽ chứa tất
cả các hàm, các phương thức truy vấn trực tiếp với dữ liệu
và controller sẽ thông qua các hàm, phương thức đó để lấy dữ liệu rồi gửi qua View
View: có nhiệm vụ hiển thị nội dung sang các đoạn mã dạng xml và đặc biệt là phải nhận được tương tác từ người dùng Có thể hiểu nôm
na ở đây người ta còn gọi là thành phần giao diện
Controller: chính là bộ não của mô hình MVC, đóng vài trò là trung gian giữa Model và View Có nhiệm vụ tiếp nhận yêu cầu từ người
Trang 25dùng sau đó xử lý các yêu cầu hoặc tìm cách xử lí lấy dữ liệu từ Model tương ứng và gửi dữ liệu qua View tương ứng rồi trả kết quả về cho người dùng.
1.3.3 Giới thiệu về hệ điều hành Android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng Android có mã nguồn mở và Google phát hành mã nguồn theo giấy phép Apache Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết được điều chỉnh và phân phối Android một cách tự do Ngoài ra, Android còn có một cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năng của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi
1.3.4 Giới thiệu về Firebase
Firebase là một nền tảng di động và ứng dụng web với những công cụ và
cơ sở vật chất được thiết kế để hỗ trợ và giúp đỡ các lập trình viên xây dựng các ứng dụng có chất lượng cao
Firebase cung cấp một số tính năng vượt trội như:
Realtime Database: là dịch vụ lưu trữ cơ sở dữ liệu điện toán đám
mây luôn đồng bộ hóa với tất cả các kết nối máy trạm, hỗ trợ cập nhật
dữ liệu thời gian thực Khi có bất kì sự thay đổi nào của dữ liệu, nó sẽ được tự động cập về các kết nối máy trạm Nó có thể đáp ứng dữ liệu bất chấp độ trễ của mạng cũng như là làm việc trong môi trường ngoại tuyến, khi kết nối mạng được kết nối trở lại, dữ liệu sẽ được tự động cập nhật Một số đặc điểm của Firebase:
Trang 26o Realtime: thay thế cho kiểu HTTP request truyền thống,
Firebase Realtime Database sử dụng đồng bộ dữ liệu bất cứ khi nào có sự thay đổi về dữ liệu, bất kì thiết bị nào được kết nối với
dữ liệu đều có thể nhận được sự thay đổi trong thời gian tích tắc Mặc khác, lập trình viên có thể thoải mái sử dụng mà không cần phải quan tâm đến các vấn đề về mạng
o Ngoại tuyến: khi người dùng làm việc trong môi trường ngoại
tuyến, dữ liệu sẽ được lưu trữ ở dưới local (dữ liệu địa phương), khi kết nối mạng được thiết lập, dữ liệu sẽ được đồng bộ hóa lên server của Firebase
o NoSQL: Firebase Realtime Database được thiết kế theo dạng
cây Json Tất cả các dữ liệu đều được lưu trữ như một đối tượng Json Không giống như kiểu dữ liệu truyền thống SQL, chúng không có các bảng ghi hay các bảng Khi thêm một đối tượng Json vào cây, nó sẽ trở thành 1 nút trên cây cùng với một khóa liên kết Ta có thể tự cung cấp khóa liên kết theo ý ta muốn hoặc nhờ Firebase cung cấp Khóa liên kết do Firbase cung cấp là một dãy kí tự được sinh ra ngẫu nhiên
Lưu trữ: nơi lưu trữ nội dung do người dùng tạo ra như hình ảnh, âm
thanh, video
Xác thực: là hệ thống xác thực người dùng bằng email và mật khẩu
Hỗ trợ xác thực thông qua Facebook, Google Sign-in, Twitter, GitHub
Thông báo: là dịch vụ miễn phí giúp lập trình viên và các tổ chức có
thể dễ dàng gửi những thông báo về các ứng dụng di động đã được xác định nhằm mục đích quảng cáo, thông báo v.v
Trang 27CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
NGÂN HÀNG MÁU NÓNG TRỰC TUYẾN
2.1 Đặt vấn đề
Hiện tại các câu lạc bộ máu nóng chưa có ứng dụng nào để quản lý thành viên cũng như việc đăng ký hiến máu, việc thực hiện tìm kiếm thành viên đăng ký hiến máu bằng hình thức nhóm trưởng kêu gọi trên cộng đồng mạng xã hội là chính, nhiều lúc bị động phải chờ đợi người đăng ký và gặp trường hợp nguy cấp cần máu gấp thì lại không thể giải quyết ngay được nên
đề tài dựa trên những mặt hạn chế, khó khăn trên để xây dựng phần mềm ngân hàng máu nóng áp dụng trên thành phố Đà Nẵng dành cho các câu lạc
bộ máu nóng nhằm giúp cho công tác quản lý, kêu gọi, tìm kiếm các nhóm máu của các thành viên một các thuận tiện hơn, quản lý lịch sử hiến máu của thành viên một cách chính xác nhằm giúp người quản lý và các thành viên có thể nắm bắt thông tin một cách nhanh nhất để giúp đỡ người đang cần máu nóng gấp
2.2 Yêu cầu chức năng
Giao diện trang đăng nhập và đăng ký để người dùng có thể tạo tài khoản và truy cập vào hệ thống
Giao diện trang chủ bao gồm danh sách các bài đăng về cần người hiến máu của các câu lạc bộ để người dùng có thể xem tình trạng hoạt động của các câu lạc bộ
Giao diện trang tìm kiếm nhóm máu giúp người dùng có thể tìm kiếm nhóm máu theo yêu cầu cụ thể, giúp người dùng xác định rõ người mà
có nhóm máu mình cần tìm kiếm để chủ động liên hệ
Trang 28 Giao diện trang tìm kiếm câu lạc bộ hiển thị thông tin chi tiết các câu lạc bộ cũng như danh sách các thành viên đang hoạt động trong các câu lạc bộ để người dùng muốn hiến máu tình nguyện có thể tham gia
để trở thành thành viên của câu lạc bộ
Giao diện trang hiển thị danh sách các câu lạc bộ đã tham gia giúp các thành viên có thể dễ dành truy cập vào các câu lạc bộ mà mình đã tham gia từ đó có thể xem các bài đăng về hiến máu, cũng như danh sách các thành viên hiện có trong câu lạc bộ
Giao diện trang chi tiết bài đăng hiển thị chi tiết các bài đăng cần hiến máu của câu lạc bộ, thành viên và quản trị viên có thể tham gia đăng
ký, quản trị viên còn có thêm chức năng xác nhận thành viên đó có thể đăng ký hiến máu hay chưa
Giao diện trang lịch sử để lưu lại chi tiết lịch sử hiến máu của người dùng đã hiến máu trước đó
Giao diện trang quản lý thông tin cá nhân, nơi người dùng có thể thay đổi các thông tin về bản thân
2.3 Yêu cầu phi chức năng
Tìm kiếm người có nhóm máu mình cần một cách dễ dàng
Giao diện đơn giản, dễ sử dụng
Hỗ trợ hiển thị đầy đủ trên mọi kích thước màn hình điện thoại
Trang 302.4.1.2 Ca sử dụng tổng quát của thành viên
Hình 2.2: Ca sử dụng tổng quát của thành viên câu lạc bộ
Trang 312.4.1.3 Ca sử dụng tổng quát của quản trị viên
Hình 2.3: Ca sử dụng tổng quát của quản trị viên câu lạc bộ
2.4.1.4 Ca sử dụng đăng nhập
Hình 2.4: Ca sử dụng đăng nhập
Trang 32
2.4.1.5 Ca sử dụng đăng ký
Hình 2.5: Ca sử dụng đăng ký
2.4.1.6 Ca sử dụng quản lý thông tin cá nhân
Hình 2.6: Ca sử dụng quản lý thông tin cá nhân
2.4.1.7 Ca sử dụng xem bài đăng của các câu lạc bộ
Hình 2.7: Ca sử dụng xem bài đăng câu lạc bộ