Tải bản đầy đủ (.docx) (87 trang)

ĐỒ ÁN TỐT NGHIỆP KỸ THUẬT PHẦN MỀM: NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG GIÚP PHÁT TRIỂN KỸ NĂNG Ở TRẺ TỰ KỶ

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 (2.56 MB, 87 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
__________________________

ĐỒ ÁN

TỐT NGHIỆP ĐẠI HỌC
NGÀNH: KỸ THUẬT PHẦN MỀM

NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG GIÚP
PHÁT TRIỂN KỸ NĂNG Ở TRẺ TỰ KỶ
Giảng viên hướng dẫn:
Sinh viên:

Ths. PHÙNG ĐỨC HÒA
HOÀNG NGUYỄN DU
Lớp ĐH KTPM2 K7

Hà Nội, 5/2016


LỜI NÓI ĐẦU
Trong xã hội hiện đại, bệnh tự kỷ đã trở thành mối quan tâm, lo ngại chung
của toàn xã hội và ngày càng trở nên phổ biến hơn. Từ thành thị cho tới nông thôn,
ở đâu chúng ta cũng có thể bắt gặp những đứa trẻ chậm phát triển. Khi trẻ bị chẩn
đoán mắc bệnh tự kỷ, các bậc phụ huynh thường không biết phải chữa trị cho con
thế nào hoặc “điều trị” sai phương pháp. Chính vì vậy, các bậc phụ huynh rất cần
hiểu và nắm bắt được các phương pháp giúp điều trị bệnh ở trẻ tự kỷ. Một trong
những phương pháp đó là phát triển kỹ năng ở trẻ, giúp trẻ sớm hoà nhập cùng cộng
đồng.
Hiện nay, Android là một hệ điều hành có được thị phần rộng lớn (chiếm


khoảng 81,3%) với kho ứng dụng vô cùng phong phú. Người dùng có thể tải, cài đặt
và sử dụng ứng dụng ở mọi lúc mọi nơi. Điều đó giúp cho con người ngày càng tiếp
cận gần hơn với những công nghệ mới, làm tăng hiệu quả công việc cũng như giải
trí.
Cũng vì lý do đó em đã lựa chọn đề tài: “Nghiên cứu và xây dựng ứng dụng
giúp phát triển kỹ năng ở trẻ tự kỷ”. Em hy vọng rằng, ứng dụng này sẽ giúp các
bậc phụ huynh, các cán bộ y tế, nhân viên chăm sóc trẻ giúp phát triển kỹ năng, tạo
môi trường thuận lợi để trẻ phát triển bình thường và sớm hoà nhập với xã hội.
Nhân đây em cũng xin cám ơn thầy Phùng Đức Hoà đã luôn chỉ bảo tận tình
trong quá trình học tập và hoàn thiện đồ án này.
Em xin chân thành cảm ơn!

2


DANH SÁCH HÌNH ẢNH

3


MỘT SỐ THUẬT NGỮ VIẾT TẮT
Thuật ngữ
Autism365
Center for Creative Initiatives in Health
and Population
Application Programming Interface
World Wide Web Consortium
Simple Object Access Protocol
Web Service Description Language


Diễn giải
Dự án sàng lọc và can thiệp sớm ở trẻ tự
kỷ
Trung tâm Sáng kiến sức khoẻ và dân số

Viết tắt
A365

Giao diện lập trình ứng dụng
Hiệp hội lập ra các chuẩn trên Internet
Giao thức truy cập đơn đối tượng.
Ngôn ngữ mô tả dịch vụ web

API
W3C
SOAP
WSDL

CCIHP

4


5


CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI
1.1 Lý do chọn đề tài

Chiếm tới 81,3%, Android hiện vẫn là hệ điều hành thống trị thị trường.

Những ứng dụng trên nền tảng Android rất phong phú và đa dạng. Và nó cũng
đem lại những nguồn lợi to lớn cho lập trình viên nhờ số lượng người dùng
đông đảo. Nó có lợi thế hơn so với những hệ thống website hay ứng dụng trên
desktop nhờ tính linh hoạt, nhỏ gọn, cách tiếp cận người dùng một cách nhanh
chóng
Thị trường các ứng dụng Android tại Việt Nam hiện nay khá phong phú.
Nhưng những sản phẩm đặc biệt chuyên về chăm sóc sức khỏe cộng đồng vẫn
còn khá ít. Chính vì vậy mà em chọn lựa đề tài “Nghiên cứu và xây dựng
ứng dụng giúp phát triển kỹ năng ở trẻ tự kỷ”. Đây sẽ là ứng dụng giúp
những bậc phụ huynh tương tác, hướng dẫn và giúp phát triển kỹ năng ở trẻ
tự.
1.2 Mục đích đề tài

Đề tài “Nghiên cứu và xây dựng ứng dụng giúp phát triển kỹ năng ở
trẻ tự kỷ” nhằm mục đích nghiên cứu, tìm hiểu về lập trình di động trên nền
tảng Android để xây dựng ứng dụng. Từ đó, giúp cha mẹ của trẻ hoặc cán bộ
chăm sóc có thể phát triển kỹ năng cho trẻ, khơi gợi cho trẻ sự hứng thú trong
cuộc sống khi giao tiếp với xã hội. Song song với đó là xây dựng hệ thống
web service để lưu trữ cơ sở dữ liệu, xử lý khi cập nhật dữ liệu và đưa ra các
thống kê, báo cáo dựa trên dữ liệu để có hướng phát triển tiếp theo.

6


CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu về hệ điều hành Android
2.1.1 Tổng quan về hệ điều hành Android

Android là một hệ điều hành có mã nguồn mở 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.

Một trong những tính năng của nền tảng Android là không có sự khác
biệt giữa ứng dụng built-in và các ứng dụng được tạo ra với SDK. Điều này
có nghĩa là các ứng dụng có thể được viết để khai thác vào các nguồn tài
nguyên có sẵn trên thiết bị.
Android tận dụng nhân Linux của mình để giao tiếp với phần cứng.
Android chạy được trên nhiều thiết bị phần cứng khác nhau từ nhiều nhà sản
xuất điện thoại di động. Các ứng dụng của Android chủ yếu được viết bằng
ngôn ngữ Java.
2.1.1.1 Ưu điểm
+ Là hệ điều hành có mã nguồn mở nên khả năng tuỳ biến cao, có thể tùy ý
chỉnh sửa mà không có sự can thiệp hay cấm cản từ Google.
+ Đa dạng sản phẩm, rất nhiều hãng điện thoại, thiết bị công nghệ đã ưu ái
chọn Android cho thiết bị của họ, giá cả thì hợp lý từ bình dân đến cao cấp.
+ Kho ứng dụng Google Play Store đồ sộ.
+ Thân thiện và dễ sử dụng.
+ Khả năng đa nhiệm, chạy cùng lúc nhiều ứng dụng cao.
2.1.1.2 Nhược điểm
+ Dễ nhiễm phần mềm độc hại và virus. Do tính chất mã nguồn mở, nhiều
phần mềm không được kiểm soát có chất lượng không tốt hoặc lỗi bảo mật vẫn
được sử dụng.
+ Kho ứng dụng quá nhiều dẫn đến khó kiểm soát chất lượng, thiếu các ứng
dụng thật sự tốt.
+ Sự phân mảnh lớn. Trong khi một số thiết bị Android xuất sắc đã trình làng
như Galaxy S5, Galaxy Note 4, Xperia Z3…, vẫn còn rất nhiều sản phẩm giá rẻ
bình thường khác.
7



+ Cập nhật không tự động với tất cả thiết bị. Khi một phiên bản hệ điều hành
mới ra mắt, không phải tất cả sản phẩm đều được cập nhật, thậm chí nếu muốn
trải nghiệm bạn thường xuyên phải mua mới thiết bị.
2.1.2 Kiến trúc của hệ điều hành Android

Hệ điều hành Android có các thành phần phần mềm tạm chia thành 5 phần với
4 tầng chính trong sơ đồ kiến trúc như hình dưới đây:

Hình 2.1: Kiến trúc của hệ điều hành Android

Tầng 1: Tầng Application
Là tầng ở trên cùng cách xa với phần cứng nhất: Chứa các ứng dụng mà lập trình
viên phát triển như : Browser, Contacts, Media…
Tầng 2: Application Framework
• Activity Manager - quản lý vòng đời của các ứng dụng.
• Windows Manager - quản lý form của các ứng dụng.
• Content Providers - cho phép các ứng dụng truy cập dữ liệu từ các ứng dụng
khác hoặc để chia sẻ dữ liệu của riêng ứng dụng
8


• Google xây dựng cho các developer để phát triển các ứng dụng của họ trên
Android chỉ bằng cách gọi các API.
• View UI - để xây dựng layout của ứng dụng bao gồm: list view, text field,
button, dialog, form …
• Resource Manager - cung cấp cách thức truy cập đến non-code resources
như các asset, graphic, image, music, video …
• Notification Manager - cho phép tất cả các ứng dụng hiển thị thông báo của
mình trên hệ điều hành.
Tầng 3: Libraries

Là các thư viện được viết bằng ngôn ngữ C/C++ sẽ được các developer phát triển
ứng dụng android thông qua tầng Android Framework. Có thể kể ra đây một số thư
viện quen thuộc với các lập trình viên như:
• Media Libraries – mở rộng từ PacketVideo’s OpenCORE. Hỗ trợ nhiều định
dạng video và image phổ biến: MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
• Surface Manager – quản lý việc hiển thị và kết hợp đồ họa 2D và 3D.
• LibWebCore – dùng webkit engine cho việc render trình duyệt mặc định của
HDH Android browser và cho dạng web nhúng (như HTML nhúng)
• OpenGL|ES – thư viện đồ họa 2D và 3D
• SQLite – quản lý database của ứng dụng
• Runtime Android gồm một tập hợp các thư viện Java Core.
• Máy ảo Dalvik thực thi các file định dạng .dex (Dalvik Excutable)
• Mỗi ứng dụng Android chạy trên tiến trình riêng của máy ảo Dalvik. Dalvik
được viết để chạy nhiều máy ảo cùng một lúc một cách hiệu quả trên cùng một thiết
bị.
Tầng 4: Kernel Linux layer:
Dựa trên Kernel Linux version 2.6 bởi nó cung cấp các trình điều khiển các thiết
bị phần cứng(driver), quản lý tiến trình, quản lý tài nguyên, bảo mật,... như sau:
•Security system
•Memory management
•Process management
•Network stack
9


•Driver model.
2.1.3 Các thành phần cơ bản của một ứng dụng Android

2.1.3.1 Activity
Một activity thể hiện một giao diện đồ họa người dùng. Ví dụ một activity có thể

biểu diễn một danh sách các menu item để người dùng có thể chọn và có thể hiển
thị ảnh cùng với tiêu đề. Một ứng dụng gửi tin nhắn văn bản có thể có một hoạt
động là hiển thị một danh sách các liên hệ để gửi tin nhắn tới, hoạt động thứ hai là
viết tin nhắn tới liên hệ được chọn, các hoạt động khác nữa là xem lại tin nhắn cũ
hay thay đổi cài đặt.
Lớp cơ sở Activity định nghĩa một loạt các sự kiện mà điều chỉnh vòng đời của
một hoạt động. Class Activity định nghĩa các sự kiện sau đây:
- onCreate(): Được gọi khi hoạt động được tạo ra lần đầu tiên
- onStart(): Được gọi khi hoạt động trở nên hữu hình so với người dùng
- onResume(): Được gọi khi hoạt động bắt đầu tương tác với người sử dụng
- onPause(): Được gọi để dừng các hoạt động hiện tại và nối lại các hoạt động
trước đó
- onStop(): Được gọi khi hoạt động không còn hiển thị với người dùng
- onDestroy(): Được gọi trước khi hoạt động bị phá hủy bởi hệ thống (bằng tay
hoặc bằng hệ thống để bảo tồn bộ nhớ)
- onRestart(): Được gọi khi hệ thống đã được dừng lại và khởi động lại một lần
nữa.

10


Vòng đời hoạt động của Activity

Hình 2.2: Vòng đời của Activity

- Toàn bộ thời gian sống của một activity xảy ra giữa lời gọi hàm
onCreate() và onDestroy(). Activity của bạn nên thực hiện thiết đặt toàn cục “global
setup” như định nghĩa layout trong hàm onCreate(), và trả lại toàn bộ tài nguyên
trong phương thức onDestroy(). Ví dụ, nếu một activity có một tuyến đang chạy
ngầm để download dữ liệu, nó có thể tạo ra tuyến đó trong phương thức onCreate()

và dừng tuyến trong phương thức onDestroy().
- Thời gian sống thật (visible lifetime) của một activity xảy ra giữa lời gọi
phương thức onStart() và onStop(). Trong suốt thời gian này, người dùng có thể
nhìn thấy activity trên màn hình và tương tac với chúng.Ví dụ, onStop() được gọi
khi một activity mới bắt đầu.Giữa hai phương thức này, bạn có thể quản lý các
nguồn tài nguyên cần thiết để hiển thị activity tới người dùng.Ví dụ, bạn đăng ký
một BroadcastReceiver trong onStart() để giám sát thay đổi tác động tới giao diện

11


của, và hủy đăng ký trong phương onStop() khi người dùng không thấy giao diện
Activity xuất hiện và ẩn với người dùng
- Thời gian chờ foreground lifetime của một activity xảy ra giữa hai lời gọi onResume() và onPause(). Trong suốt thời gian này, activity là nền cho các activity
khác trên màn. Một activity có thể thường xuyên chuyển trạng thái thành trạng thái
chờ và hoạt – ví dụ, onPause() được gọi khi thiết bị phần cứng ở trạng thái ngủ
(sleep) hoặc một hộp thoại xuất hiện. Bởi vì trạng thái này có thể xảy ra thường
xuyên nên mã lệnh trong hai phương thức này nên được viết cẩn thận để tăng tốc độ
chuyển giữa các chế độ.
2.1.3.2 Services
Một service không có giao diện trực quan, nó chạy trên nền trong một khoảng
thời gian không xác định. Ví dụ một service có thể chơi nhạc nền, hay nó nạp dữ
liệu trên mạng hay tính toán cái gì đó và cung cấp kết quả cho activity cần đến nó.
Mỗi service mở rộng từ lớp cơ sở Service.
Một ví dụ cổ điển là media player chơi các bài hát từ một danh sách. Ứng
dụng player có thể có một hay hai activity cho phép người dùng chọn bài hát và bắt
đầu chơi. Tuy nhiên, music playback không tự nó được xử lý bởi một activity bởi vì
người dùng sẽ mong muốn chơi tiếp nhạc khi họ rời khỏi player và làm cái gì đó
khác. Để tiếp tục chơi nhạc, media player activity có thể khởi động một service
chạy trên nền. Hệ thống sẽ giữ cho music playback service chạy thậm chí khi

activity khởi động nó rời khỏi màn hình.
Trong khi kết nối, bạn có thể giao tiếp với dịch vụ thông qua giao diện mà
service đó trưng ra. Ví dụ như trong music service, giao diện này có thể cho phép
người dùng pause, rewind, stop và restart lại playback.

12


Giống như các activity và các thành phần khác khác, service chạy trong thread
chính của tiến trình ứng dụng. Vì thế chúng không thể chặn những thành phần khác
hay giao diện người dùng, chúng thường tạo ra các thead khác cho các nhiệm vụ
hao tốn thời gian.

Hình 2.3: Vòng đời của Services

2.1.3.3 Content Provider
Content providers quản lý truy cập tới dữ liệu. Chúng đóng gói dữ liệu, và cung
cấp cơ chế cho phép định nghĩa bảo mật dữ liệu. Content providers là giao diện
chuẩn kết nối dữ liệu trong một tiến trình cùng với mã nguồn chạy trong các tiến
trình khác.
Khi bạn muốn kết nối tới dữ liệu trong content provider, bạn sử đối tượng
ContentRe - solver trong ứng dụng Context để giao tiếp với provider như một máy
khách. Đối tượng ContentResolver giao tiếp với đối tượng, một thể hiện của lớp
triển khai từ giao diện ContentProvider. Đối tượng provider nhận dữ liệu yêu cầu từ
clients, xử lý yêu cầu và trả lại kết quả.
Một số chủ đề quan trọng của Content Provider:






Content Provider Basics
Creating a Content Provider
Calendar Provider
Contact Provider
13


2.1.3.4 Broadcast Receive
Một Broadcast Rreceiver là một thành phần không làm gì ngoài việc nhận và đáp
lại các thông báo broadcast. Nhiều broadcast khởi đầu trong mã hệ thống - ví dụ
như thông báo múi giờ thay đổi, pin yếu, ảnh đã được chụp, hay người dùng đã thay
đổi ngôn ngữ… Các ứng dụng có thể tạo ra các broadcast, chẳng hạn để ứng dụng
khác biết được một số dữ liệu đã được tải về thiết bị và sẵn sàng cho việc sử dụng
chúng.
Một ứng dụng có thể có một số Broadcast Receiver để đáp lại bất cứ thông báo
nào mà nó cho là quan trọng. Tất cả các receiver mở rộng từ lớp cơ sở
BroadcastReceiver.
Broadcast Receiver không hiển thị một giao diện người dùng. Tuy nhiên chúng
có thể bắt đầu một activity để đáp lại thông tin mà chúng nhận, hay chúng có thể sử
dụng NotificationManager để cảnh báo người dùng. Notifications có thể lấy sự chú
ý của người dùng bằng nhiều cách như lóe sáng đèn sau, rung, tạo ra âm thanh,....
Chúng thường tạo một biểu tượng trong thanh trạng thái, nhờ đó người dùng có thể
mở để lấy thông điệp.
2.1.3.5 Intents và Intent filter
Intents được sử dụng nhưg một cơ chế gửi thông điệp triệu gọi một hành động để
xử lý, thường đi kèm với dữ liệu.
Bạn có thể sử dụng Intents để hỗ trợ sự tương tác giữa bất kỳ thành phần ứng
dụng trên một thiết bị Android. Nó trả ra một tập các thành phần độc lập tới một
thành phần đơn lẻ, kết nối bên trong hệ thống.

Intents thường được sử dụng để bắt đầu một Activity mới, bên trong hoặc bên
ngoài ứng dụng.
Android sử dụng Intents quảng bá để thông báo các sự kiện của hệ thống, như
thay đối trạng thái kết nối Internet hoặc dung lượng pin. Các ứng dụng Android đơn
giản như phone dialer và trình quản lý tin nhắn (SMS manager) đăng ký các thành
phần lnawns nghe Intents quảng bá như “nhận một cuộc gọi đến” hoặc “nhận một
tin nhắn”.
Sử dụng Intents để lan truyền các hành động – sự kiện bên trong các ứng dụng
giống nhau – là một phần cơ bản của nguyên lý thiết kế Android.
14


Để mở một màn hình ứng dụng khác (Activity) trong ứng dụng của bạn, gọi
phương thức startActivity, thông qua một Intent.
startActivity(myIntent);
Khi phương thức này được gọi, nó sẽ tìm và kích hoạt một Activity đơn mà nó
tìm thấy trong ứng dụng. Khi sử dụng startActivity, ứng dụng của bạn sẽ không
nhận bất
kỳ thông báo nào đến khi quá trình kích hoạt kết thúc.
2.1.3.6 Process và Thread
Một ứng dụng có thể bao gồm một hay nhiều tiến trình. Một tiến trình là một đơn
vị cơ bản khi một chương trình được thực thi. Một hoặc nhiều tuyến (Thread) luôn
chạy bên trong một tiến trình. Tuyến là một thực thể trong một tiến trình, nó có thể
được lập lịch cho việc thực thi. Một tiến trình bắt đầu với một tuyến đơn (a single
thread), luôn gọi đến một tuyến chính hoặc mặc định. Hơn thế nữa, tuyến có thể
được tạo ra một cách tự động nếu cần thiết.
Process
Mỗi ứng dụng là một tiến trình có tài nguyên và không gian bộ nhớ riêng. Trong
một tiến trình có thể có một hoặc nhiều tuyến.
Android có thể quyết định tắt một tiến trình tại một vài thời điểm, khi bộ nhớ đầy

và được yêu cầu bởi các tiến trình khác. Các thành phần ứng dụng chạy trong tiến
trình bị chết là kết quả của việc gọi hàm hủy. Một tiến trình được khởi động trở lại
khi các tiến trình khác kích hoạt chúng.
Khi quyết định tiến trình nào bị hủy, Android đánh trọng số quan trọng của tiến
trình đó với người dùng. Ví dụ, hệ thống sẽ tắt tiến trình hosting vì nó không xuất
hiện trên màn hình trong thời gian dài, do đó, phụ thuộc vào trạng thái của các
thành phần đang chạy mà hệ thống sẽ quyết định hủy tiến trình nào.
Thread
Thông thường dùng Thread để xử lý các code xử lý nặng, hoặc mất thời gian có
thể gây chậm chương trình hoặc giao diện bị block.
Thread khá thông dụng và trong Android dùng lớp Thread của Java.
Mặc định, mỗi ứng dụng chạy trong một process và code được thực thi trong
thread chính của process đó.
15


Nếu code xử lý quá lâu, không kịp phản hồi lại các sự kiện người dùng trong 5
giây thì sẽ xuất hiện dialog “Application is not responding” và người dùng có thể
force close ứng dụng ngay lập tức.
Dù không bị đóng ứng dụng thì việc ứng dụng bị chậm là khó
chấp nhận.
Handler
Trong Android, để tiện việc giao tiếp giữa 2 thread ta dùng đối tượng Handler.
Ngoài ra, có thể dùng Handler để đặt xử lý một yêu cầu nào đó sau một khoảng
thời gian xác định.
2.1.4 Công nghệ lưu trữ trong Android

2.1.4.1 Shared Preferences
Có hai công nghệ cho phép lưu dữ liệu đơn giản của ứng dụng là Shared
Preferences và một cặp của sự kiện xảy ra được sử dụng để lưu trạng thái của một

Activity. Cả hai cơ chế này dùng cặp tên (name)/giá trị (value) để lưu các giá trị đơn
giản.
Sử dụng Shared Provider bạn có thể tạo một tập các các cặp key/value bên trong
ứng dụng của bạn và có thể chia sẻ giữa các thành phần trong một ứng dụng.
Shared Provider hỗ trợ các kiểu dữ liệu cơ bản như Boolean, string, float, long và
integer.
- Tạo và lưu trữ Preferences
Để tạo và thay đổi một Shared Provider, gọi phương thức getSharedPreferences
trên ứng dụng. Shared Provider chia sẻ dữ liệu thông qua các thành phần của một
ứng dụng nhưng không có khả năng chia sẻ tới các ứng dụng khác.
Để thay đổi một Shared Provider dùng lớp SharedPreferences.Editer. Lấy đối
tượng Editer bằng việc gọi phương thức edit() trên đối tượng Shared Provider mà
bạn muốn thay đổi. Để lưu lại các thay đổi, gọi hàm commit().
- Lấy về giá trị Preferences chia sẻ
Truy cập tới dữ liệu được chia sẻ thông qua phương thức getSharedPreferences.
Thông qua tên của Shared Preferences bạn muốn truy cập, và sử dụng phương
thức get<type> để lấy về giá trị, trong đó type là kiểu dữ liệu được lưu trữ trước đó.
16


2.1.4.2. Internal Storage
File được lưu trực tiếp trên thiết bị bộ nhớ trong.(Internal Storage)
Dữ diệu này là private và chỉ chịu sự quản lí của chính ứng dụng đang chạy nó,
các ứng dụng khác không thể truy cập được.
2.1.4.3. External Storage
Dữ liệu được lưu trữ ở bộ nhớ ngoài ( External Storage )
- Ưu điểm:





Không gian lưu trữ lớn
Dễ di chuyển giữa các thiết bị :PC, Mobile
Dễ thay thế nâng cấp

- Nhược điểm:



Tính bảo mật không cao : dữ liệu được sử dụng chung.
Tốc độ truy cập thấp.

2.1.4.4. Content Provider
Cung cấp một giao diện cho việc lưu trữ và chia sẻ các dữ liệu riêng tư. Bạn có
thể điều khiển truy cập tới Content Provider để sử dụng các quyền cơ bản của hệ
thống.
2.1.4.5. Cơ sở dữ liệu SQLite
SQLite cơ bản là 1 hệ quản trị cơ sở dữ liệu thu nhỏ, nó không có server, thao tác
trên file và có thể sử dụng bởi bất cứ hệ điều hành nào.
SQLite cần rất ít bộ nhớ lúc chạy (khoảng 250kb) do được tích hợp như một thư
viện, là một phần của chương trình khi được tạo ra nên chạy nhanh hơn các hệ
CSDL mà tạo ra tiến trình chạy song song.
SQLite cung cấp dữ liệu dưới 3 dạng: Text, Integer, Real. Tất cả kiểu khác phải
được chuyển về một trong 3 dạng trên trước khi được lưu trữ. SQLite sẽ không
kiểm tra ràng buộc dữ liệu được lưu.
Cơ sở dữ liệu do SQLite tạo ra sẽ private, tức là chỉ sử dụng cho bản thân ứng
dụng.
- Ưu điểm của SQLite



Tính toàn vẹn: đảm bảo dữ liệu được chuyển đổi đầy đủ, không gây ra mất mát dữ




liệu khi có lỗi phần cứng.
Cấu trúc gọn nhẹ, không cần cài đặt cấu hình
Các thao tác đơn giản sẽ nhanh hơn hệ thống server
17





Mã nguồn mở.
Trong Android, chúng ta không cần cài đặt nhiều, chỉ cần cung cấp các hàm để thao
tác và chương trình sẽ quản lí phần còn lại.
Để có thể dễ dàng thao tác với SQLite chúng ta có thể sử dụng trình duyệt
FireFox và tải về plugin SQLite tại link sau:
/>Sau khi tải về file xpi, kéo file này vào cửa sổ firefox để cài đặt plugin.
Sau khi cài đặt plugin xong thì vào Menu_tools trong firefox sẽ có chức năng
SQLite Manager. Giao diện của SQLite manager trong firefox như sau:

Hình 2.4: Giao diện SQLite Manager

2.1.4.6. Network Connection
Network Connection : Là cách thức lưu trữ dữ liệu trên các web service và là một
trong những phương pháp được sử dụng khá phổ biến hiện nay ở các ứng dụng.

18



2.2 Giới thiệu về Web Service trong PHP và MySQL
2.2.1 Khái niệm

Theo định nghĩa của W3C, web service là một hệ thống phần mềm được thiết kế
để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông
qua mạng Internet. Giao diện chung và sự gắn kết của nó được mô tả bằng
XML. Web service là tài nguyên phần mềm có thể xác định bằng địa chỉ URL, thực
hiện các chức năng và đưa ra các thông tin người dùng yêu cầu. Một Web service
được tạo nên bằng cách lấy các chức năng và đóng gói chúng sao cho các ứng dụng
khác dễ dàng nhìn thấy và có thể truy cập đến những dịch vụ mà nó thực hiện, đồng
thời có thể yêu cầu thông tin từ Web service khác. Nó bao gồm các mô đun độc lập
cho hoạt động của khách hàng và doanh nghiệp và bản thân nó được thực thi trên
server.
2.2.2 Đặc điểm

- Web service cho phép client và server tương tác được với nhau ngay cả trong
những môi trường khác nhau. Ví dụ, đặt Web server cho ứng dụng trên một máy
chủ chạy hệ điều hành Linux trong khi người dùng sử dụng máy tính chạy hệ điều
hành Windows, ứng dụng vẫn có thể chạy và xử lý bình thường mà không cần thêm
yêu cầu đặc biệt để tương thích giữa hai hệ điều hành này.
- Phần lớn kĩ thuật của Web service được xây dựng dựa trên mã nguồn mở và
được phát triển từ các chuẩn đã được công nhận, ví dụ như XML.
- Một Web service bao gồm có nhiều mô-đun và có thể công bố lên mạng
Internet.
- Là sự kết hợp của việc phát triển theo hướng từng thành phần với những lĩnh
vực cụ thể và cơ sở hạ tầng Web, đưa ra những lợi ích cho cả doanh nghiệp, khách
hàng, những nhà cung cấp khác và cả những cá nhân thông qua mạng Internet.
- Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server. Nó

có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như PHP,
Oracle Application server hay Microsoft.Net…
- Ngày nay Web service đang rất phát triển, những lĩnh vực trong cuộc sống có
thể áp dụng và tích hợp Web service là khá rộng lớn như dịch vụ chọn lọc và phân
loại tin tức (hệ thống thư viện có kết nối đến web portal để tìm kiếm các thông tin
19


cần thiết); ứng dụng cho các dịch vụ du lịch (cung cấp giá vé, thông tin về địa
điểm…), các đại lý bán hàng qua mạng, thông tin thương mại như giá cả, tỷ giá hối
đoái, đấu giá qua mạng…hay dịch vụ giao dịch trực tuyến như đặt vé máy bay,
thông tin thuê xe…
- Các ứng dụng có tích hợp Web service đã không còn là xa lạ, đặc biệt trong
điều kiện thương mại điện tử đang bùng nổ và phát triển không ngừng cùng với sự
lớn mạnh của Internet. Bất kì một lĩnh vực nào trong cuộc sống cũng có thể tích hợp
với Web service, đây là cách thức kinh doanh và làm việc có hiệu quả bởi thời đại
ngày nay là thời đại của truyền thông và trao đổi thông tin qua mạng. Do vậy, việc
phát triển và tích hợp các ứng dụng với Web service đang được quan tâm phát triển
là điều hoàn toàn dễ hiểu.
2.2.3 Kiến trúc của web service

Web service gồm có 3 chuẩn chính: SOAP (Simple Object Access Protocol),
WSDL (Web Service Description Language) và UDDI (Universal Description,
Discovery, and Integration). Hình 1 mô tả chồng giao thức của Web service, trong
đó UDDI được sử dụng để đăng ký và khám phá Web service đã được miêu tả cụ
thể trong WSDL. Giao tác UDDI sử dụng SOAP để nói chuyện với UDDI server,
sau đó các ứng dụng SOAP yêu cầu một Web service. Các thông điệp SOAP được
gửi đi chính xác bởi HTTP và TCP/IP.
Chồng giao thức Web service là tập hợp các giao thức mạng máy tính được sử
dụng để định nghĩa, xác định vị trí, thi hành và tạo nên Web service tương tác với

những ứng dụng hay dịch vụ khác. Chồng giao thức này có 4 thành phần chính:
- Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệp giữa
các ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP, FTP, JSM và gần
đây nhất là giao thức thay đổi khổi mở rộng (Blocks Extensible Exchange ProtocolBEEP).
- Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạng XML để
có thể hiểu được ở mức ứng dụng tương tác với người dùng. Hiện tại, những giao
thức thực hiện nhiệm vụ này là XML-RPC, SOAP và REST.
- Mô tả dịch vụ: được sử dụng để miêu tả các giao diện chung cho một Web
service cụ thể. WSDL thường được sử dụng cho mục đích này, nó là một ngôn ngữ
20


mô tả giao tiếp và thực thi dựa trên XML. Web service sẽ sử dụng ngôn ngữ này để
truyền tham số và các loại dữ liệu cho các thao tác và chức năng mà Web service
cung cấp.
- Khám phá dịch vụ: tập trung dịch vụ vào trong một nơi được đăng ký, từ đó
giúp một Web service có thể dễ dàng khám phá ra những dịch vụ nào đã có trên
mạng, tốt hơn trong việc tìm kiếm những dịch vụ khác để tương tác. Một Web
service cũng phải tiến hành đăng ký để các dịch vụ khác có thể truy cập và giao
tiếp. Hiện tại, UDDI API thường được sử dụng để thực hiện công việc này.
Trong đó, tầng giao thức tương tác dịch vụ (Service Communication Protocol)
với công nghệ chuẩn là SOAP. SOAP là giao thức nằm giữa tầng vận chuyển và
tầng mô tả thông tin về dịch vụ, cho phép người dùng triệu gọi một dịch vụ từ xa
thông qua một thông điệp XML. Ngoài ra, để các dịch vụ có tính an toàn, toàn vẹn
và bảo mật thông tin, trong kiến trúc Web service, chúng ta có thêm các tầng Policy,
Security, Transaction, Management.
2.2.4 Xây dựng một dịch vụ web

Có 4 giai đoạn chính để xây dựng một dịch vụ Web là xây dựng, triển khai, tiến
hành và quản lý, trong đó:

- Giai đoạn xây dựng bao gồm phát triển và chạy thử ứng dụng dịch vụ Web, xây
dựng các chức năng và định nghĩa dịch vụ. Có hai cách khác nhau để tiến hành
trong giai đoạn này, đó là Red-path- solod và Blue-path-dashed. Với Red- pathsolod, chúng ta sẽ xây dựng một dịch vụ Web mới từ trạng thái ban đầu hoặc với
một dịch vụ đã có sẵn. Từ đó, xây dựng định nghĩa service (WSDL) với các đối
tượng, hàm chức năng mà chúng ta mong muốn. Nếu theo cách Blue-path-dashed,
dịch vụ Web sẽ được xây dựng từ đầu hoặc từ một định nghĩa dịch vụ WSDL. Sử
dụng WSDL này, xây dựng hoặc sửa đổi lại mã để thực hiện các yêu cầu mong
muốn trong dịch vụ Web.
- Giai đoạn triển khai: công bố định nghĩa dịch vụ, xây dựng WSDL và triển khai
mã thực thi của dịch vụ Web. Triển khai dịch vụ Web tới một ứng dụng phía server,
sau đó sẽ công bố dịch vụ Web trên mạng Internet để các client có thể nhìn thấy. Sử
dụng UDDI registry để công bố lên mạng.

21


- Giai đoạn tiến hành: tìm kiếm và gọi thực thi dịch vụ Web bởi những người
dùng muốn sử dụng dịch vụ.
- Quản lý: Quản lý và quản trị dịch vụ, duy trì sự ổn định của dịch vụ, cập nhật
thông tin mới, sửa lỗi khi nó xảy ra…
Để xây dựng một dịch vụ Web, chúng ta cần hiểu được những việc phải làm và
nên bắt đầu từ đâu. Có 3 cách tiếp cận chủ yếu để xây dựng nên một dịch vụ Web,
có thể từ một ứng dụng đã có (bottom-up); từ một định nghĩa dịch vụ, WSDL để
phát sinh một ứng dụng mới (top-down) hoặc có thể từ một nhóm các dịch vụ Web
hiện có, kết hợp lại với nhau để tạo nên các chức năng mới hoặc mở rộng thêm chức
năng. Những hướng tiếp cận này dựa trên những gì mà chúng ta đã có, tùy thuộc
vào yêu cầu của hệ thống, trong đó tối đa việc sử dụng lại các chức năng, các thành
phần, môđun đã được xây dựng.
Qui trình xây dựng một dịch vụ Web bao gồm các bước sau:
- Định nghĩa và xây dựng các chức năng, các dịch vụ mà dịch vụ sẽ cung cấp

- Tạo WSDL cho dịch vụ
- Xây dựng SOAP server
- Đăng ký WSDL với UDDI registry để cho phép các client có thể tìm thấy và
truy xuất.
- Client nhận file WSDL và từ đó xây dựng SOAP client để có thể kết nối với
SOAP server
- Xây dựng ứng dụng phía client và sau đó gọi thực hiện dịch vụ thông qua việc
kết nối tới SOAP server.

22


CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ
3.1 Khảo sát và mô tả bài toán
3.1.1 Khảo sát

3.1.1.1 Báo động chứng tự kỷ ở trẻ em tại Việt Nam
Một thống kê gần đây của Trung tâm Phòng chống và Kiểm soát bệnh dịch của
Hoa Kỳ cho thấy tỉ lệ trẻ em mắc bệnh tự kỷ ngày càng tăng. Cứ 88 trẻ thì có 1 em
bị tự kỷ. Tại Việt Nam, theo thống kê của ngành giáo dục Hà Nội, tự kỷ là khuyết
tật có tỉ lệ cao nhất ở trường học, chiếm 30% số trẻ mắc các khuyết tật học đường.
Nhưng từng đó chưa nói hết lên thực trạng vì còn rất nhiều trẻ tự kỷ không đến
trường đi khi đến tuổi đi học. Điều đáng lo ngại hơn là thông tin liên quan tới bệnh
này ở châu Á nói chung và Việt Nam vẫn còn nhiều hạn chế, vì vậy có thể ảnh
hưởng tới việc điều trị cho trẻ.
Để có thể tìm ra được phương pháp điều trị cho trẻ thì trước tiên ta phải hiểu rõ:
Thế nào là tự kỷ? Các dấu hiệu của bệnh ra sao?
Tự kỷ hay còn gọi là rối loạn tự kỷ, là một loại khuyết tật, một dạng rối loạn phát
triển, thường xuất hiện trong 3 năm đầu đời. Người mắc chứng tự kỷ không có giao
tiếp, tương tác với xã hội và những người khác. Và do vậy, sự phát triển về tâm lý

và xã hội đều hạn chế.
Các dấu hiệu của bệnh:
- Trẻ chậm chễ trong ngôn ngữ nói (không nói được từ đơn khi 16-18 tháng tuổi,
không nói được từ đôi khi 24 tháng, trẻ chậm nói so với những bé cùng tuổi, trẻ nói
những từ không có nghĩa, hay gầm gừ, có dấu hiệu lặp lại 1 từ hay một câu vô
nghĩa).
- Trẻ có khó khăn trong giao tiếp với người khác (trẻ không cười, nhìn vào mắt
người khác trong khi nói chuyện, không có sự tương tác với người chăm sóc).
- Trẻ có những hành vi dập khuôn, định hình (như quay tròn, đi nhón chân, thích
chơi với các đồ vật hình tròn, phát âm các từ rỗng, bật tắt công tắc liên tục…).
- Trẻ khó thích nghi với những thay đổi hoàn cảnh (thay đổi chỗ ngồi, nơi ngủ,
đồ ăn… trẻ thường khó thích nghi).
Việc chẩn đoán trẻ bị mắc chứng tự kỷ là rất khó, vì phải trải qua 1 thời gian dài
theo dõi cũng như dựa trên những bài đánh giá của các chuyên gia. Các triệu chứng
23


thuộc nhóm khiếm khuyết xuất hiện cùng một thời điểm, ít nhất có 3 triệu chứng
thuộc mỗi nhóm, các triệu chứng phải tồn tại ít nhất 6 tháng, xuất hiện trước 36
tháng tuổi, đặc biệt chỉ chẩn đoán tự kỷ từ 36 tháng tuổi trở đi.
Để điều trị hiệu quả thì phải chẩn đoán và can thiệp từ sớm. Việc can thiệp sớm,
một cách bài bản, toàn diện, hợp lý và kiên trì trước 40 tháng tuổi thì trẻ có thể tiến
bộ tốt, phát triển tương đối bình thường để hoà nhập một cách tương đối trong môi
trường gia đình, nhà trường và xã hội.
3.1.1.2 Trung tâm Sáng kiến Sức khoẻ và Dân số
Trung tâm Sáng kiến Sức khỏe và Dân số (CCIHP) là một tổ chức phi chính phủ
Việt Nam được thành lập năm 2008. CCIHP được thành lập nhằm đáp ứng các vấn
đề phức tạp về sức khỏe và dân số trong xã hội Việt Nam đương đại. CCIHP sẽ góp
phần giải quyết các vấn đề này thông qua những chiến lược và phương pháp tiếp
cận sáng tạo.

Dự án “Ứng dụng phần mềm trong chăm sóc thông minh với trẻ tự kỷ
(A365)” là sự kết hợp của khoa học kỹ thuật tiên tiến, sáng kiến xã hội và thương
mại để phát triển ứng dụng phần mềm trên điện thoại thông minh nhằm hỗ trợ cho
trẻ em rối loạn tự kỷ. Mục tiêu của dự án là phát triển phần mềm hỗ trợ sàng lọc và
chăm sóc trẻ tự kỷ tại nhà, và thí điểm mô hình lồng ghép sàng lọc trong các đợt
khám sức khỏe thường quy cho trẻ em. Hiện tại, dự án đang muốn xây dựng ứng
dụng và hệ thống giúp phát triển kỹ năng ở trẻ tự kỷ để sớm hoà nhập cùng cộng
đồng. Vì vậy, em muốn thông qua đồ án xây dựng ứng dụng và hệ thống này.
3.1.2 Mô tả bài toán

3.1.2.1 Mục đích
- Ứng dụng giúp phát triển kỹ năng ở trẻ tự kỷ áp dụng cho những phụ huynh có
con bị mắc chứng bệnh tự kỷ, những cán bộ chăm sóc.
- Hệ thống web service sẽ cập nhật các dữ liệu của ứng dụng. Ngoài ra, nó còn
đưa ra các báo cáo, thống kê dựa trên cơ sở dữ liệu của ứng dụng.

24


3.1.2.2 Lưu đồ mô tả bài toán
- Về phía ứng dụng:

Hình 3.1: Lưu đồ mô tả ứng dụng

- Về phía Web service:
Dang nhap

Cap nhat cac
loai ky nang


Cap nhat cac
ky nang

Cap nhat chi tiet
cac ky nang

Cap nhat cac
loai cong viec

Cap nhat cac
cong viec

Cap nhat chi tiet
cac cong viec

Cap nhat phan
thuong

Xem ky nang
da hoc duoc

Xem lich trinh
da hoan thanh

Hình 3.2: Lưu đồ mô tả web service

3.1.2.3 Đặc tả bài toán.
- Ứng dụng trên mobile chạy hệ điều hành Android về phía client có hoạt động
như sau:
Người Dùng

1. Khi người dùng mở ứng dụng.
3. Khi người dùng chọn đăng ký

Ứng Dụng
2. Một màn hình Splash screen sẽ xuất hiện.
Giao diện chính là màn hình đăng nhập cho cha mẹ hoặc cán
bộ chăm sóc trẻ.
4. Ứng dụng sẽ hiển thị 2 chế độ đăng ký.

25


×