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

Xây dựng ứng dụng quản lý vật tư cho VNPT thái nguyên trên nền tảng android

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.05 MB, 65 trang )

LỜI CẢM ƠN
Sau một thời gian tìm hiểu đề tài “Xây dựng ứng dụng Quản lý vật tư cho
VNPT Thái Nguyên trên nền tảng Android”, em đã hoàn thành tiến độ dự kiến.
Để đạt được kết quả này, em đã nỗ lực thực hiện và đồng thời cũng nhận được rất
nhiều sự giúp đỡ, quan tâm, ủng hộ của các thầy cô bạn bè và gia đình.
Em xin chân thành cảm ơn giáo viên hướng dẫn Th.S Trần Phạm Thái
Kiên – Bộ môn Truyền thông và Mạng máy tính – Trường Đại học Công nghệ
thông tin và truyền thông – Đại học Thái Nguyên đã tận tình giúp đỡ em hoàn thành
đồ án tốt nghiệp này.
Em xin chân thành cảm ơn các thầy cô và ban lãnh đạo trường Đại học Công
nghệ Thông tin và Truyền thông – Đại học Thái Nguyên đã nhiệt tình giảng dạy và
truyền đạt kiến thức quý báu và bổ ích trong suốt quá trình em học tập tại trường.
Em xin chân thành cảm ơn các thầy, cô giáo viên thuộc bộ môn Truyền
thông và Mạng máy tính đã trang bị cho em những kiến thức chuyên ngành rất hữu
ích để em hoàn thành đề tài và phục vụ cho công việc của em sau này.
Vì thời gian có hạn nên không thể tránh khỏi những thiếu sót, em rất mong
nhận được sự đóng góp ý kiến từ thầy cô và các bạn. Em xin chân thành cảm ơn!
Thái nguyên, ngày

tháng 6 năm 2016

Sinh viên thực hiện

Nguyễn Thị Mây

1


LỜI CAM ĐOAN
Em xin cam đoan đồ án tự em nghiên cứu và xây dựng dựa trên các kiến thức
được học trên trường và kinh nghiệm đi làm thực.Cùng sự hướng dẫn của Ths. Trần


Phạm Thái Kiên. Các nội dung nghiên cứu, kết quả trong đề tài này là trung thực và
chưa công bố dưới bất kỳ hình thức nào trước đây. Những kiến thức tài liệu tham
khảo được ghi rõ trong mục tài liệu tham khảo. Nếu phát hiện có bất kỳ sự gian lận
nào em xin hoàn toàn chịu trách nhiệm về nội dung luận văn của mình. Trường Đại
học Công nghệ Thông tin và Truyền thông không liên quan đến những vi phạm tác
quyền, bản quyền do em gây ra trong quá trình thực hiện (nếu có)./.
Thái nguyên, ngày

tháng 6 năm 2016

Sinh viên thực hiện

Nguyễn Thị Mây

2


MỤC LỤC
LỜI CẢM ƠN .........................................................................................................1
LỜI CAM ĐOAN....................................................................................................2
MỤC LỤC ..............................................................................................................3
DANH MỤC HÌNH ................................................................................................5
LỜI NÓI ĐẦU ........................................................................................................7
CHƯƠNG I. CƠ SỞ LÝ THUYẾT .........................................................................8
1.1 Tổng quan về hệ điều hành android ...............................................................8
1.1.1 Giới thiệu chung về hệ điều hành android............................................... 8
1.1.2 Máy ảo Dalvik trong Android................................................................. 8
1.1.3 Kiến trúc của android ............................................................................. 9
1.1.4 Các thành phần cơ bản của ứng dụng Android...................................... 12
1.2 Tổng quan về phân tích thế kế hướng đối tượng UML.................................17

1.2.1 Giới thiệu chung về UML..................................................................... 17
1.2.2 Các đặc điểm cơ bản của hệ thống hướng đối tượng............................. 17
1.2.3 Ưu nhược điểm của phân tích thiết kế hướng đối tượng........................ 18
1.3 Ứng dụng mô hình UML trong thiết kế ứng dụng Android ..........................19
1.3.1 Ứng dụng của UML ............................................................................. 19
1.3.2 Các biểu đồ .......................................................................................... 20
1.3.3 Các kỹ thuật chung của UML ............................................................... 21
1.3.4 UML trong thiết kế ứng dụng android .................................................. 23
CHƯƠNG II. KHẢO SÁT VÀ PTTK HỆ THỐNG CHO .....................................26
BÀI TOÁN QUẢN LÝ VẬT TƯ ..........................................................................26
2.1 Giới thiệu về VNPT Thái Nguyên ...............................................................26
2.1.1 VNPT Thái Nguyên ............................................................................. 26
2.1.2 Sơ đồ tổ chức ....................................................................................... 29
2.2 Hiện trạng VNPT Thái Nguyên ...................................................................29
2.2.1 Hiện trạng ............................................................................................ 29
2.2.2 Xác định yêu cầu quản lý kho.............................................................. 30

3


2.3 Phân tích yêu cầu.........................................................................................32
2.3.1 Yêu cầu xử lý hệ thống......................................................................... 32
2.3.2 Yêu cầu người sử dụng........................................................................ 33
2.3.3 Yêu cầu ứng dụng ............................................................................... 33
2.3.4 Yêu cầu mặt phi chức năng của phần mềm ........................................... 34
2.4 Kiến trúc hệ thống .......................................................................................34
2.5 Các tác nhân và Usecase..............................................................................35
2.5.1 Biểu đồ Usecase ................................................................................... 35
2.5.2 Biểu đồ hoạt động ................................................................................ 37
2.5.3 Biểu đồ tuần tự ..................................................................................... 40

2.5.4 Biểu đồ lớp........................................................................................... 42
2.5.5 Cơ sở dữ liệu........................................................................................ 43
2.5.6 Tính năng quản lý kinh doanh thông minh cho Giám đốc. .................... 43
2.6 Vấn đề về bảo mật cho mô hình truyền thông ..............................................43
2.6.1 Nguy cơ và hiểm họa đối với hệ thống thông tin .................................. 44
2.6.2 Bảo mật thông tin trong hệ cơ sở dữ liệu .............................................. 44
CHƯƠNG III. XÂY DỰNG VÀ CÀI ĐẶT CHƯƠNG TRÌNH ............................49
3.1 Mô hình Client-server..................................................................................49
3.1.1 Mô hình Client-server .......................................................................... 49
3.1.2 Các bước xây dựng chương trình.......................................................... 51
3.2 Xây dựng chương trình................................................................................52
3.2.1 Một số phần mềm hỗ trợ xậy dựng ứng dụng........................................ 52
3.2.2 cơ sở dữ liệu của chương trình.............................................................. 53
3.2.3 Một số giao diện của chương trình ....................................................... 54
CHƯƠNG IV. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN......................................63
TÀI LIỆU THAM KHẢO .....................................................................................64

4


DANH MỤC HÌNH
Hình 1.1: Cấu trúc stack hệ thống Android ..............................................................9
Hinh 1.2: Vòng đời của một activity ......................................................................13
Hình 1.3: Truyền dữ liệu dùng intent .....................................................................14
Hình 1.4: Các phương thức gọi lại của một services ..............................................15
Hình 2.1: Sơ đồ tổ chức .........................................................................................29
Hình 2.2: Phiếu nhập .............................................................................................31
Hình 2.3: Phiếu xuất ..............................................................................................32
Hình 2.4: Mô hình client-server.............................................................................33
Hình 2.5: Bảng mô tả kiến trúc hệ thống................................................................34

Hình 2.6: Biểu đồ Usecase tổng quát .....................................................................35
Hình 2.7: Biểu đồ usecase xuất vật tư ....................................................................36
Hình 2.8: Biểu đồ usecase nhập vật tư ...................................................................37
Hình 2.9: Biểu đồ hoạt động đăng nhập .................................................................37
Hình 2.10: Biểu đồ hoạt động xuất vật tư...............................................................38
Hình 2.11: Biểu đồ hoạt động nhập vật tư.............................................................38
Hình 2.12: Biểu đồ hoạt động tìm kiếm vật tư .......................................................39
Hình 2.13: Biểu đồ tuần tự đăng nhập....................................................................40
Hình 2.14: Biểu đồ tuần tự xuất vật tư ...................................................................40
Hình 2.15: Biểu đồ tuần tự nhập vật tư ..................................................................41
Hình 2.16: Biểu đồ tuần tự tìm kiếm vật tư............................................................41
Hình 2.17: Biểu đồ lớp ..........................................................................................42
Hình 2.18: Cơ sở dữ liệu........................................................................................43
Hình 2.19: Mô hình trung gian..............................................................................45
Hình 2.20: Mô hình bảng ảo ..................................................................................46
Hình 2.21:Kiến trúc một hệ bảo mật CSDL ...........................................................47
Hình 3.1: Mô hình client........................................................................................49
Hình 3.2:Mô hình cụ thể........................................................................................51
Hình 3.3: Một số phần mềm hỗ trợ ........................................................................52

5


Hình 3.4: giao diện sau khi truy cập vào CSDL .....................................................53
Hình 3.5: Giao diện đăng nhập và sau khi đăng nhập.............................................54
Hình 3.6: Giao diện của nhân viên kinh doanh sau khi đăng nhập.........................55
Hình 3.7: Giao diện của nhân viên kinh doanh.......................................................56
Hình 3.8:Giao diện sau đăng nhập và các chức năng của giám ..............................57
Hình 3.9: Phiếu xuất chờ duyệt..............................................................................58
Hình 3.10: Giao diện sau khi đăng nhập của thủ kho .............................................59

Hình 3.11: tạo phiếu nhập hàng .............................................................................60
Hình 3.12: Phiếu nhập chưa duyệt .........................................................................61
Hình 3.13: phiếu nhập đã duyệt/không duyệt .........................................................62

6


LỜI NÓI ĐẦU
Ngày nay công nghệ thông tin phát triển càng mạnh mẽ, nhanh chóng. Những
thành tựu của công nghệ thông tin làm thay đổi mọi mặt của đời sống hội, xâm nhập vào
nhiều lĩnh vực, khoa học, kĩ thuật cũng như trong cuộc sống. Nó trở thành công cụ hỗ trợ
đắc lực không thể thiếu trong nhiều lĩnh vực hoạt động như: ứng dụng trong công tác
quản lí, nghiên cứu…đặc biệt là trong quản lí doanh nghiệp.
Cùng với sự phát triển nhanh chóng của công nghệ thông tin con người đã
nghĩ ra rất nhiều các ứng dụng phục vụ cho nhu cầu và lợi ích của mình. Trong đó
xây dựng phần mềm phục vụ cho công tác quản lý luôn là một trong những vấn đề
mà các nhà lập trình viên quân tâm hàng đầu. Phần mềm Quản lý thiết bị vật tư
cũng vậy, nó phục vụ cho công tác nghiệp vụ quản lý, làm giảm thiểu tối đa những
vất vả trong công việc, ví như trước đây thay vì lưu trữ trên giấy tờ, sổ sách thì bây
giờ chỉ cần một chiếc máy tính nhỏ gọn cũng có thể lưu trữ cả đống giấy tờ đó.
Với mong muốn tìm hiểu một phần nhỏ trong kho tàng phát triển của công
nghệ thông tin, em đã đi vào tìm hiểu về cách thức tổ chức và hoạt động của một
phòng quản lý kho vật tư tại cơ sở thực tập để từ đó xây dựng lên phần mềm Quản
lý thiết bị vật tư trên nền android nhằm phục vụ cho công tác quản lý còn nhiều
khó khăn.
Mặc dù đã cố gắng hoàn thành đề tài nhưng do lượng kiến thức còn hạn chế,
chương trình quản lý vật tư mà em xây dựng vẫn còn nhiều thiếu sót, em rất mong
nhận được sự cảm thông, góp ý và tận tình chỉ bảo từ các thầy, cô.
Cuối cùng em xin cám ơn thầy Trần Phạm Thái Kiên đã hướng dẫn chỉ bảo
tận tình để em có thể hoàn thành đề tài này.

Thái Nguyên, ngày.... tháng 06 năm 2016
Sinh viên

7


CHƯƠNG I
CƠ SỞ LÝ THUYẾT
1.1 Tổng quan về hệ điều hành android
1.1.1 Giới thiệu chung về hệ điều hành android
Android là một nền tảng mã nguồn mở toàn diện được thiết kế cho các thiết
bị di động. Nó là sự liên minh giữa ông lớn Google và Open Handset Alliance – các
tập đoàn sản xuất thiết bị cầm tay nổi tiếng như Intel, SamSung, Toshiba… Với
mục tiêu là tăng tốc việc đổi mới trong di động và cung cấp cho người tiêu dung
nhiều tiện ích phong phú, ít tốn kém. Android chính là công cụ để làm điều đó.
Android là một nền tảng mã nguồn mở, toàn bộ ngăn xếp từ các module cấp
thấp của Linux đến tất cả các thư viện gốc và tử các ứng dụng khung cho đến các
ứng dụng hoàn chỉnh là hoàn toàn mở.
Trong lịch sử phát triển, ban đầu Android thuộc sở hữu của công ty Android
Inc. Sau đó được Google mua lại vào năm 2005 và bắt đầu xây dựng Android
Platform. Cuối năm 2007 liên minh Open HandsetAlliance được thành lập và được
công bố, Android chính thức trở thành mã nguồn mở. Phiên bản đầu tiên được phát
hành vào tháng 11 năm 2007.
1.1.2 Máy ảo Dalvik trong Android
Dalvik là máy ảo giúp các ứng dụng java chạy được trên các thiết bị động
Android. Nó chạy các ứng dụng đã được chuyển đổi thành một file thực thi Dalvik
(dex). Định dạng phù hợp cho các hệ thống mà thường bị hạn chế về bộ nhớ và tốc
độ xử lý. Dalvik đã được thiết kế và viết bởi Dan Bornstein, người đã đặt tên cho nó
sau khi đến thăm một ngôi làng đánh cá nhỏ có tên là Dalvik.
Từ góc nhìn của một nhà phát triển, Dalvik trông giống như máy ảo Java

(Java Virtual Machine) nhưng thực tế thì hoàn toàn khác. Khi nhà phát triển viết
một ứng dụng dành cho Android, anh ta thực hiện các đoạn mã trong môi trường
Java. Sau đó, nó sẽ được biên dịch sang các bytecode của Java, tuy nhiên để thực thi
được ứng dụng này trên Android thì nhà phát triển phải thực thi một công cụ có tên
là dx. Đây là công cụ dùng để chuyển đổi bytecode sang một dạng gọi là dex

8


bytecode. "Dex" là từ viết tắt của "Dalvik executable" đóng vai trò như cơ chế ảo
thực thi các ứng dụng Android.
1.1.3 Kiến trúc của android

Hình 1.1: Cấu trúc stack hệ thống Android
a, Tầng ứng dụng
Đây là lớp ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng như:
Các ứng dụng cơ bản được cài đặt đi liền với hệ điều hành như: gọi điện
thoại (phone), quản lý danh bạ (contacts), duyệt web (browser), nhắn tin (sms), lịch
làm việc (calendar), đọc email (email-client), bản đồ (map), quay phim chụp ảnh
(camera)….
Các ứng dụng được cài thêm như các phần mềm (stock), các trò chơi (game),
từ điển, ….
Các chương trình có các đặc điểm là:
o Viết bằng Java, phần mở rộng là apk.
o Khi mỗi ứng dụng được chạy, nó có phiên bản Virtual Machine được dựng
lên phục vụ cho nó. Nó có thể là một Active Program: chương trình có giao diện với
người sử dụng hoặc là một background: chương trình chạy nền hay là dịch vụ.

9



o Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời
điểm, có thể có nhiều chương trình chạy một lúc, tuy nhiên, với mỗi ứng dụng thì
có duy nhất một thực thể (instance) được phép chạy mà thôi. Điều đó có tác dụng
hạn chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn.
o Các ứng dụng được gán số ID của người sử dụng nhằm phân định quyền
hạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống.
Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di động
khác, android cho phép một ứng dụng của bên thứ ba được phép chạy nền.
b, Application framework
Tầng này xây dựng bộ công cụ - các phần tử ở mức cao để các lập trình
viên có thể nhanh chóng xây dựng ứng dụng. Nó được viết bằng Java, có khả năng
sử dụng chung để tiết kiệm tài nguyên.
Gồm các thành phần:
o Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng như
cung cấp các công cụ điều khiển Activity.
o Telephony Manager: Cung cấp công cụ để thực hiện việc liên lạc như gọi
điện thoại.
o XMPP Service: Cung cấp công cụ để liên lạc trong thời gian thực.
o Location Manager: Cho phép xác định vị trí của điện thoại dựa vào hệ
thống định vị toàn cầu GPS và Google Maps.
o Window Manager: Quản lý việc xây dựng và hiển thị các giao diện người
dùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng.
o Notication Manager: Quản lý việc hiển thị các thông báo ( như báo có tin
nhắn,có email mới….).
c, Library
Android bao gồm một tập hợp các thư viện C/C++ được sử dụng bởi nhiều
thành phần khác nhau trong hệ thống Android. Điều này được thể hiện thông qua
nền tảng ứng dụng Android. Một số các thư viện cơ bản gồm:
 Hệ thống thư viện C : triển khai BSD-derived có nguồn gốc từ các hệ

thống thư viện chuẩn C (libc), được sử dụng chỉ bởi hệ điều hành.

10


 Media Libraries – Dựa trên gói Video OpenCORE; các thư viện hỗ trợ
phát và ghi âm của các định dạng âm thanh và video phổ biến, cũng như các file
hình ảnh tĩnh, bao gồm MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
 Surface Manager – Quản lý việc truy xuất vào hệ thống hiển thị
o LibWebCore - Đây là thành phần để xem nội dung trên web, được sử
dụng để xây dựng phần mềm duyệt web (Android Browse) cũng như để các ứng
dụng khác có thể nhúng vào. Nó cực kỳ mạnh, hỗ trợ được nhiều công nghệ
mạnh mẽ như HTML5, JavaScript, CSS, DOM, AJAX..
 SGL – Các cơ sở công cụ đồ họa 2D.
 3D libraries - Thực hiện dựa trên OpenGL ES 1.0 APIs; Thư viện sử dụng
hoặc là tăng tốc phần cứng 3D (nếu có) hoặc bao gồm tối ưu hóa phần mềm 3D.
 SQLite - Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng
d, Android Runtime
Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có
thể hoạt động. Phần này có 2 bộ phận tương tự như mô hình chạy Java trên máy
tính thường. Thứ nhất là các thư viện lõi (Core Library) , chứa các lớp như JAVA
IO, Collections, File Access. Thứ hai là một máy ảo java (Dalvik Virtual
Machine) . Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java
của hệ điều hành android không được chạy bằng JRE của Sun (nay là
Oracle) (JVM) mà là chạy bằng máy ảo Dalvik do Google phát triển.
e, Linux kernel
Hệ điều hành android được phát trển dựa trên hạt nhân linux, cụ thể là hạt
nhân linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này. Tất cả mọi
hoạt động của điện thoại muốn thi hành được thì đều được thực hiện ở mức cấp
thấp ở lớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với

phần cứng (driver model), thực hiện bảo mật (security), quản lý tiến trình (process).
Tầng này có các thành phần chủ yếu :
o Display Driver : Điều khiển việc hiển thị lên màn hình cũng như thu nhận
những điều khiển của người dùng lên màn hình (di chuyển, cảm ứng...)

11


o Camera Driver : Điều kiển hoạt động của camera, nhận luồng dữ liệu từ
camera trả về.
o Bluetooth Driver : Điều khiển thiết bị phát và thu sóng Bluetooth.
o USB driver : Quản lý hoạt động của các cổng giao tiếp USB
o Keypad driver : Điều khiển bàn phím
o Wifi Driver : Chịu trách nhiệm về việc thu phát sóng wifi
o Audio Driver : điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu
dạng audio thành tín hiệu số và ngược lại
o Binder IPC Driver : Chịu trách nhiệm về việc kết nối và liên lạc với mạng
vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thông
được thực hiện.
o M-System Driver : Quản lý việc đọc ghi... lên các thiết bị nhớ như thẻ SD, flash
Power Madagement : Giám sát việc tiêu thụ điện năng.
1.1.4 Các thành phần cơ bản của ứng dụng Android
a, Activity
Activity chính là một cửa sổ chứa giao diện ứng dụng của bạn mà người dùng
có thể tương tác với nó. Mỗi màn hình trên ứng dụng của bạn sẽ là kế thừa của
Activity. Activity dùng các View để hiển thị giao diện ứng dụng người dùng và đáp
ứng lại các yêu cầu từ người dùng. Có 3 dạng Activity:
- Floating Activity: là dạng Activity nổi, có kích thước không phủ lấ toàn bộ
màn hình.
- Activity Group: là một nhóm các Activity nhúng trong một Activity khác.

- Full screen Activity: là Activity phủ kín toàn bộ màn hình. Đây là loại
Activity thường được sử dụng phổ biến nhất.
Vòng đời của một Activity sẽ diễn ra từ lúc khởi động cho đến khi kết thúc
vòng đời của nó. Hệ thống Android sẽ được bắt đầu thực hiện một Activity tương
ứng với từng trạng thái vòng đời của nó. Android cung cấp một số sự kiện để quản
lý các trạng thái vòng đời của Activity như sau:

12


- onCreate(): sự kiện này được gọi khi Activity được tạo lần đầu tiên. Trong sự
kiện này, bạn phải thực hiện những công việc như tạo giao diện, tải dữ liệu. Sau sự
kiện này là sự kiện onStart() được gọi.
- onRestart(): sự kiện được gọi khi muốn khỏi động lại một activity đã bị Stop.
Sau sự kiện này luôn là sự kiện onStart() được gọi.
- onStart(): sự kiện nà được gọi khi giao diện của Activity hiển thị trên màn
hình thiết bị.
- onResume(): sự kiện này được gọi khi Activity bắt đầu tương tác với người dùng.
- onPause(): khi một Activity khác dành quyền hiển thị và trạng thái focus thì
Activity hiện hành sẽ gọi sự kiện onPause().
- onStop(): sự kiện này được gọi khi Activity bị che khuất hoàn toàn bởi một
Activity khác và Activity đó cũng dành được focus.

Hinh 1.2: Vòng đời của một activity
Khi một Activity bị paused hoặc stopped, trạng thái của một Activity vẫn sẽ được
giữ lại. Điều này là đúng vì mỗi đối tượng Activity vẫn còn được giữ lại trong bộ nhớ
khi nó bị paused hoặc stopped. Tất cả các thông tin về Activity cũng như trạng thái của
nó vẫn còn tồn tại trong. Vì vậy, bất cứ thay đổi nào của người dùng đối với Activity
vẫn được giữ lại khi nó trở lại trạng thái hoạt động hoặc chế độ resume.
b, Intent

Intent là cầu nối giữa các Activity trong ứng dụng android. Intent chính là
người đưa thư, giúp chúng ta triệu gọi cũng như truyền các dữ liệu cần thiết để thực
hiện một Activity từ một Activity khác.

13


Hình 1.3: Truyền dữ liệu dùng intent
c, Services
Các dịch vụ (services) là thành phần chạy nền và không có bất kỳ giao diện
nào. Chúng có thể thực hiện các hành động tương tự như các hoạt động, nhưng mà
không có bất kỳ giao diện người dùng nào. Dịch vụ là hữu ích với các hành động
(actions) khi mà người dùng cùng một lúc muốn thực hiện trên màn hình nhiều
actions. Services có thể được sử dụng theo 2 cách:
+ Services có thể được bắt đầu và được phép hoạt động cho đến khi một người
nào đó dừng Services lại hoặc Services tự ngắt. Ở chế độ này, Services được bắt
đầu bằng cách gọi Context.startService() và dừng bằng lệnh Context.stopService().
Services



thể

tự

động

ngắt

bằng


lệnh

Service.stopSelf()

hoặc

Service.stopSelfResult(). Chỉ cần một lệnh stopService() để ngừng Service lại cho
dù lệnh startService() được gọi ra bao nhiêu lần.
+ Service có thể được vận hành theo như đã được lập trình việc sử dụng một
giao diện mà nó định nghĩa. Người dùng thiết lập một đường truyền đến đối tượng
Service mà Services sử dụng và sử dụng đường kết nối đó để thâm nhập vào
Service. Kết nối này được thâm nhập bằng cách gọi lệnh Context.bindService() và
được đóng lại bằng cách gọi lệnh Context.unbindService(). Nhiều người dùng có
thể kết nối tới cùng một thiết bị. Nếu Service vẫn chưa được khởi chạy, lệnh
bindService() có thể tùy ý khởi động Services.
Hai chế độ này thì không tách biệt toàn bộ. Có thể kết nối với một Service mà
nó đã được bắt đầu với lệnh startService(). Ví dụ, một Service nghe nhạc ở chế độ
nền có thể bắt đầu với lệnh startService() cùng với một đối tượng Intent mà định
dạng được âm nhạc để chơi. Sau đó, có thể là khi người sử dụng muốn kiểm soát
trình chơi nhạc nhạc hoặc biết thêm thông tin về bài hát hiện tại đang chơi, thì sẽ có
một Activity tạo lập một đường truyền tới Service bằng cách gọi bindService().

14


Trong trường hợp như thế này, stopService() sẽ không thực sự ngừng Service
cho đến khi liên kết cuối cùng được đóng lại.

Hình 1.4: Các phương thức gọi lại của một services

d, Content Providers
Content Providers là lớp trung gian chia sẻ dữ liệu giữa các ứng dụng. Mặc
định, Android chạy mỗi ứng dụng trong một khuôn thử của riêng nó để tất cả dữ
liệu thuộc về một ứng dụng hoàn toàn độc lập với các ứng dụng khác trong hệ
thống. Mặc dù một lượng nhỏ dữ liệu vẫn được trao đổi giữa các ứng dụng thông
qua các Intent, content providers sẽ tốt hơn và thích hợp nhiều cho việc chia sẻ dữ
liệu liên tục giữa các bộ dữ liệu lớn.
Hệ thống Android sử dụng cơ chế này vào mọi lúc. Chẳng hạn như Content
Providers ở đây trình bày tất cả các dữ liệu liên hệ của người dùng một cách đa

15


dạng trên ứng dụng. Settings Provider trình bày việc cài đặt các ứng dụng khác nhau
trên hệ thống, bao gồm cả việc xây dựng ứng dụng Settings. Media Store chịu trách
nhiệm lưu trữ và chia sẻ các phương tiện khác nhau, chẳng hạn như ảnh và âm nhạc
trên các ứng dụng khác nhau.
Content Providers là các giao diện tương đối đơn giản với các phương thức
tiêu chuẩn như insert(), update(), delete(), and query(). Các phương thức này giống
như các phương thức chuẩn trong cơ sở dữ liệu.
e, Broadcast Receivers
Broadcast Receivers (có thể gọi là Receiver) là một trong bốn loại thành phần
trong ứng dụng Android. Chức năng dùng để nhận các sự kiện mà các ứng dụng
hoặc hệ thống phát đi.
Có 2 cách phát-nhận đó là:
+ Không có thử tự: receiver nào đủ điều kiện thì nhận hết, không phân biệt và
cũng tách rời nhau.
+ Có thứ tự: receiver nào đăng ký ưu tiên hơn thì nhận trước và có thể truyền
thêm thông tin xử lý cho các receiver như sau.
Chu kì sống của Broadcast Receiver: thực ra chu kỳ sống của Broadcast

Receiver chỉ có duy nhất một phương thức onReceive():
+ Khi có sự kiện mà Broadcast Receiver đã đăng ký nhận được phát đi, thì
phương thức onReceive() của Broadcast Receiver đó sẽ được gọi.
+ Sau khi thực thi xong phuowmg thức này, lifecycle của Receiver kết thúc.
+ Ngay khi onReceive() kết thúc, hệ thống coi như receiver đã không còn hoạt
động và có thể kill process chứa receiver này bất cứ lúc nào.
+ Tránh xử lý các code quá lâu trong onReceive().
+ Không có xử lý bất đồng bộ chờ callback trong Receiver ( cụ thể như hiển
thị Dialog, kết nối các service…).
f, SQLite
SQLite là một dạng CSDL tương tự MySQL, PostgreSQL,…Đặc điểm của
SQLite là gọn, nhẹ, đơn giản. Chương trình gồm 1 file duy nhất vỏn vẹn chưa đến
500kB, không cần cài đặt, không cần cấu hình hay khởi động mà nó có thể sử dụng

16


ngay. Dữ liệu database cũng được lưu ở một file duy nhất. Không có khái niệm
user, password hay quyền hạn trong SQLite database.
g, Telephony
Telephony cũng làm một thành phần tương đối quan trọng trong hệ thống
Android. Nó cho phép người lập trình có thể lấy các thông tin của hệ thống như thông tin
SIM, thông tin thiết bị, thông tin mạng…Ngoài ra, chúng ta cũng có thể cài đặt các thông
số cho cho thiết bị nếu các thông số đó có thể thay đổi được. Tất cả những điều đó được
được quản lý bởi một class Telephony Manager trong Android.
1.2 Tổng quan về phân tích thế kế hướng đối tượng UML
1.2.1 Giới thiệu chung về UML
Ngôn ngữ mô hình hóa thống nhất (Unifield Modeling Language – UML) là
một ngôn ngữ để biểu diễn mô hình theo hướng đối tượng được xây dựng với mục
đích là:

+ Mô hình hoá các hệ thống sử dụng các khái niệm hướng đối tượng.
+ Thiết lập một kết nối từ nhận thức của con người đến các sự kiện cần mô
hình hoá.
+ Giải quyết vấn đề về mức độ thừa kế trong các hệ thống phức tạp, có nhiều
ràng buộc khác nhau.
+ Tạo một ngôn ngữ mô hình hoá có thể sử dụng được bởi người và máy.
UML tổ chức một mô hình thành một loạt các hướng nhìn, thể hiện các khía
cạnh khác nhau của hệ thống. Chỉ khi kết hợp tất cả các hướng nhìn lại với nhau,
người ta mới co được một bức tranh trọn vẹn về hệ thống. Một hướng nhìn không
phải là một hình vẽ, nội dung của nó được miêu tả qua các biểu đồ, đây là những
hình vẽ chứa đựng các phần tử mô hình hóa. Một biểu đồ bình thường chỉ trình bày
một phần nội dung của một hướng nhìn, và một hướng nhìn được định nghĩa với rất
nhiều biểu đồ.
1.2.2 Các đặc điểm cơ bản của hệ thống hướng đối tượng
a, Lớp và đối tượng
Lớp (Class) – Mẫu để xác định trường hợp hoặc các đối tượng cụ thể
Đối tượng (Object) – Mô tả của một lớp

17


Thuộc tính (Attributes) – Mô tả cho đối tượng
Chức năng (Behaviors) – Xác định các đối tượng có thể làm gì
b, Phương thức và message
Phương thức (Method) thực hiện chức năng của đối tượng. Tương tự như một
hàm hoặc một thủ tục.
Message được gửi khi một phương thức được kích hoạt
c, Tóm lược và ẩn thông tin
Tóm lược: Kết hợp dữ liệu và quá trình thành một thực thể
Ẩn thông tin: Chỉ có những thông tin cần thiết để sử dụng một module phần

mềm mới được công bố cho người sử dụng
d, Thừa kế
Các lớp super hoặc các lớp cơ bản là những lớp mở đầu của hệ thống phân cấp
các lớp
Các lớp con hoặc các lớp cụ thể được thừa kế từ các lớp này
Các lớp con được thừa kế các thuộc tính và phương thức từ các lớp cao hơn
trong hệ thông phân cấp lớp.
e, Đa hình thái và liên kết động
Đa hình thái: Một thông điệp có thể được giải thích khác nhau bởi các đối
tượng khác nhau.
Liên kết động: Nhập vào chậm trễ hoặc lựa chọn phương pháp cho một đối
tượng được thực hiện khi thời gian bắt đầu chạy
Liên kết tĩnh: Loại của đối tượng được xác định tại thời điểm biên dịch.
1.2.3 Ưu nhược điểm của phân tích thiết kế hướng đối tượng
a, Ưu điểm
Gần gũi với thế giới thực
Tái sử dụng dễ dàng
Đóng gói, che giấu thông tin là cho hệ thống tin cậy hơn
Xây dựng tốt với những hệ thống lớn và phức tạp
Dễ bảo trì, mọi thay đổi của đối tượng không làm ảnh hưởng đến các đối
tượng khác.

18


b, Nhược điểm
Khó tực hiện vì khó xác định đối tượng của hệ thống
1.3 Ứng dụng mô hình UML trong thiết kế ứng dụng Android
1.3.1 Ứng dụng của UML
Đối với nhiều lập trình viên, không có khoảng cách nào giữa ý tưởng để

giải quyết một vấn đề và việc thể hiện điều đó thông qua các đoạn mã. Họ nghĩ ra
và họ viết mã. Trên thực tế, điều này gặp một số vấn đề. Thứ nhất, việc trao đổi về
các ý tưởng giữa những người lập trình sẽ gặp khó khăn, trừ khi tất cả đều nói cùng
một ngôn ngữ. Thậm chí ngay cả khi không gặp trở ngại về ngôn ngữ thì đối với
từng công ty, từng nhóm cũng có những “ngôn ngữ” riêng của họ. Điều này gây trở
ngại cho một người mới vào để có thể hiểu được những việc đang được tiến hành.
Hơn nữa, trong lĩnh vực phần mềm, nhiều khi khó có thể hiểu được nếu chỉ xem xét
các đoạn mã lệnh. Ví dụ như sự phân cấp của các lớp, ta có thể phải duyệt rất nhiều
đoạn lệnh để hiểu được sự phân cấp của các lớp. Và nếu như người lập trình không
mô tả các ý tưởng mà anh ta đã xây dựng thành mã lệnh thì nhiều khi cách tốt nhất
là xây dựng lại trong trường hợp một người khác đảm nhận tiếp nhiệm vụ khi anh ta
rời khỏi nhóm.
Xây dựng mô hình sử dụng ngôn ngữ UML đã giải quyết được các khó
khăn trên. Khi trở thành một chuẩn trong việc lập mô hình, mỗi kí hiệu mang một ý
nghĩa rõ ràng và duy nhất, một nhà phát triển có thể đọc được mô hình xây dựng
bằng UML do một người khác viết.
Những cấu trúc mà việc nắm bắt thông qua đọc mã lệnh là khó khăn nay đã
được thể hiện trực quan. Một mô hình rõ ràng, sáng sủa làm tăng khả năng giao
tiếp, trao đổi giữa các nhà phát triển.
Mục đích chính của UML là để xây dựng mô hình cho các hệ thống phần
mềm, nó có thể được sử dụng một cách hiệu quả trong nhiều lĩnh vực như:
 Hệ thống thông tin doanh nghiệp (enterprise)
 Ngân hàng và dịch vụ tài chính
 Viễn thông
 Giao thông

19


 Hàng không và quốc phòng

 Máy móc điện tử dùng trong y tế
 Khoa học
 Các ứng dụng phân tán dựa trên Web
UML không chỉ giới hạn trong lĩnh vực phần mềm. Nó còn có thể dùng để
lập mô hình cho các hệ thống không phải là phần mềm như hệ thống pháp luật
(luồng công việc – workflow), thiết kế phần cứng, …
1.3.2 Các biểu đồ
- Biểu đồ lớp (Class Diagram)
Bao gồm một tập hợp các lớp, các giao diện, các collaboration và mối quan
hệ giữa chúng. Nó thể hiện mặt tĩnh của hệ thống.
- Biểu đồ đối tượng (Object Diagram)
Bao gồm một tập hợp các đối tượng và mối quan hệ giữa chúng. Đối tượng
là một thể hiện của lớp, biểu đồ đối tượng là một thể hiện của biều đồ lớp.
- Biểu đồ Use case (Use Case Diagram)
Khái niệm actor: là những người, hệ thống khác ở bên ngoài phạm vi của hệ
thống mà có tương tác với hệ thống.
- Biểu đồ Use case bao gồm một tập hợp các Use case, các actor và thể hiện
mối quan hệ tương tác giữa actor và Use case. Nó rất quan trọng trong việc tổ chức
và mô hình hóa hành vi của hệ thống
- Biểu đồ trình tự (Sequence Diagram)
là một dạng biểu đồ tương tác (interaction), biểu diễn sự tương tác giữa các
đối tượng theo thứ tự thời gian. Nó mô tả các đối tượng liên quan trong một tình
huống cụ thể và các bước tuần tự trong việc trao đổi các thông báo(message) giữa
các đối tượng đó để thực hiện một chức năng nào đó của hệ thống.
- Biểu đồ hợp tác (Collaboration)
Gần giống như biểu đồ Sequence, biểu đồ Collaboration là một cách khác để
thể hiện một tình huống có thể xảy ra trong hệ thống. Nhưng nó tập trung vào việc
thể hiện việc trao đổi qua lại các thông báo giữa các đối tượng chứ không quan tâm

20



đến thứ tự của các thông báo đó. Có nghĩa là qua đó chúng ta sẽ biết được nhanh
chóng giữa 2 đối tượng cụ thể nào đó có trao đổi những thông báo gì cho nhau.
- Biểu đồ chuyển trạng thái (Statechart)
Chỉ ra một máy chuyển trạng, bao gồm các trạng thái, các bước chuyển trạng
và các hoạt động. Nó đặc biệt quan trọng trong việc mô hình hóa hành vi của một
lớp giao diện(interface class) hay collaboration và nó nhấn mạnh vào các đáp ứng
theo sự kiện của một đối tượng, điều này rất hữu ích khi mô hình hóa một hệ thống
phản ứng(reactive).
- Biểu đồ hoạt động (Activity)
Là một dạng đặc biệt của biểu đồ chuyển trạng. Nó chỉ ra luồng đi từ hoạt
động này sang hoạt động khác trong một hệ thống. Nó đặc biệt quan trọng trong
việc xây dựng mô hình chức năng của hệ thống và nhấn mạnh tới việc chuyển đổi
quyền kiểm soát giữa các đối tượng
- Biểu đồ thành phần (Component)
chỉ ra cách tổ chức và sự phụ thuộc của các thành phần(component). Nó liên
quan tới biểu đồ lớp, trong đó một thành phần thường ánh xạ tới một hay nhiều lớp,
giao diện , collaboration.
- Quan hệ Thừa kế (Generalization)
chỉ ra cấu hình của hệ thống khi thực thi.
1.3.3 Các kỹ thuật chung của UML
a. Cụ Thể Hóa
Như đã trình bày ở phần trên, việc thể hiện trực quan giúp chúng ta hiểu vấn
đề dễ dàng hơn chứ không có nghĩa là các mô tả bằng lời là không có ích.Cho nên
UML không chỉ là một tập các kí hiệu đồ họa. Bên cạnh các kí hiệu đồ họa còn có
các phát biểu bằng lời để chỉ rõ ngữ nghĩa của các kí hiệu đó. Ví dụ như trong kí
hiệu của một lớp( một hình chữ nhật) còn có thể được chỉ rõ ra các thuộc tính, các
phương thức của lớp đó.
b. Trang Trí

Tất cả các phần tử trong UML đều có một hình dạng phân biệt đối với các
phần tử khác. Đồng thời chúng cũng được thiết kế để thể hiện những mặt quan

21


trọng nhất của đối tượng. Ví dụ như kí hiệu cho một lớp là một hình chữ nhật rất dễ
vẽ bởi vì lớp là một thành phần quan trọng, xuất hiên rất nhiều trong các mô hình
hướng đối tượng. Và kí hiệu này thể hiện được cả 3 thành phần quan trọng của lớp
đó là tên lớp, các thuộc tính và các phương thức của nó. Ngoài ra nó còn bao gồm
các chi tiết như: lớp đó có phải là lớp trừu tượng không, các thuộc tính, phương
thức của nó thuộc loại gì (public, private hay protected). Nói tóm lại các kí hiệu
trong UML giúp ta nhận biết các đặc điểm quan trọng của đối tượng, khái niệm
được mô tả một cách dễ dàng và nhanh chóng.
c. Phân Chia
Phân biệt rõ phần trừu tượng và cụ thể.
Trước tiên là lớp và đối tượng. Một lớp là một sự trừu tượng hóa, một đối
tượng là một thể hiện cụ thể của sự trừu tượng đó. Trong UML ta có thể mô hình
lớp và đối tượng.
Có rất nhiều thứ tương tự. Ví dụ như một Use case và một thể hiện của Use
case, một component và một thể hiện của component
d. Kỹ Thuật Mở Rộng
UML cung cấp những thành phần cơ bản để lập nên một mô hình cho một
phần mềm. Nhưng nó không thể nào bao quát hết theo thời gian mọi mô hình trong
mọi lĩnh vực. Do đó UML được thiết kế mở theo nghĩa là người dùng có thể mở
rộng một số thành phần để có thể áp dụng một cách tốt nhất cho hệ thống của họ mà
lại không phải thay đổi hay thiết kế lại các thành phần cơ sở của UML. Cơ chế đó
bao gồm:



Stereotypes (khuôn mẫu): mở rộng tập từ vựng của UML, cho phép tạo

những thành phần mới kế thừa những đặc điểm của những thành phần đã có đồng
thời chứa thêm những đặc điểm riêng gắn với một bài toán cụ thể nào đó.


Tagged values (giá trị thẻ): mở rộng thuộc tính của các thành phần của

UML, nó cho phép ta tạo thêm những thông tin mới về một phần tử. Ví dụ như khi
làm việc hợp tác để tạo ra một sản phẩm, ta muốn chỉ ra các phiên bản và tác giả
của một đối tượng nào đó. Điều này không được xây dựng sẵn trong UML mà có
thể thực hiện thông qua việc thêm vào một giá trị thẻ.

22




Constraints (ràng buộc): mở rộng ngữ nghĩa của các thành phần của UML,

cho phép tạo ra những quy tắc mới hoặc sửa chữa những quy tắc đã có.
1.3.4 UML trong thiết kế ứng dụng android
3.4.4.1 Kiến trúc hệ thống
Khi xem xét một hệ thống, chúng ta cần xây dựng các mô hình từ những khía
cạnh khác nhau, xuất phát từ thực tế là những người làm việc với hệ thống với
những vai trò khác nhau sẽ nhìn hệ thống từ những khía cạnh khác nhau.
UML xét hệ thống trên 5 khía cạnh:

1. Use-Case View
Bao gồm các Use Case mô tả ứng xử của hệ thống theo cách nhìn nhận của

người dùng, người phân tích hệ thống. Nó không chỉ ra cách cấu trúc của hệ thống
phần mềm, nó chỉ dùng để nhìn nhận một cách tổng quát những gì mà hệ thống sẽ
cung cấp, thông qua đó người dùng có thể kiểm tra xem các yêu cầu của mình đã
được đáp ứng đầy đủ hay chưa hoặc có chức năng nào của hệ thống là không cần
thiết. Biểu đồ dùng đến là biểu đồ Use Case.
2. Logical View
Được dùng để xem xét các phần tử bên trong hệ thống và mối quan hệ, sự
tương tác giữa chúng để thực hiện các chức năng mong đợi của hệ thống.

23


3. Process View
Chia hệ thống thành các tiến trình(process) và luồng(thread), mô tả việc đồng
bộ hóa và các xử lý đồng thời. Dùng cho người phát triển và tích hợp hệ thống, bao
gồm các biểu đồ sequence, collaboration, activity và state.
4. Implementation View
Bao gồm các component và file tạo nên hệ thống vật lý. Nó chỉ ra sự phụ
thuộc giữa các thành phần này, cách kết hợp chúng lại với nhau để tạo ra một hệ
thống thực thi.
5. Deployment View
Chỉ ra cấu hình phần cứng mà hệ thống sẽ chạy trên đó. Nó thể hiện sự phân
tán, cài đặt các phần mà tạo nên kiến trúcvật lý của hệ thống. Biểu đồ được sử dụng
là biểu đồ Deployment.
3.4.4.2 Phân tích và thiết kế hệ thống trong ứng dụng Android
a. Phân tích:
Thông thường việc phân tích thiết kế hệ thống được thực hiện theo các bước sau:
– Phân tích yêu cầu: Dùng phương pháp phân tích Use case để nắm bắt các yêu
cầu của khách hàng. Đây là một bước quan trọng và sự thành công của bước này sẽ
quyết định sự thành công của dự án. Bởi vì một hệ thống dù có xây dựng tốt đến đâu

nhưng không đáp ứng được những nhu cầu của khách hàng hệ thống sẽ thất bại.
– Phân tích: Sau khi đã biết được người dùng muốn gì, chúng ta tập trung mô
tả lại hệ thống, các khái niệm chính trong lĩnh vực của hệ thống cần xây dựng, trong
hướng đối tượng gọi là các lớp lĩnh vực ( domain class ), mối quan hệ và sự tương
tác giữa các đối tượng đó. Mục đích chính là hiểu hệ thống hoạt động như thế nào.
– Thiết kế: ở bước này sử dụng kết quả thu được ở các bước trước để mở rộng
thành một giải pháp kỹ thuật, thêm vào các lớp thuộc về kỹ thuật như các lớp giao diện,
các lớp điều khiển…Tập trung mô tả cấu trúc bên trong của hệ thống, sự tương tác của
tập hợp các đối tượng để đạt được những chức năng mà hệ thống cần có.
Mặc dù UML không bắt buộc phải sử dụng một quy trình phát triển phần mềm
cụ thể nào những nó được khuyến khích sử dụng với quy trình lặp và tăng dần.

24


b. Các bước phân tích thiết kế hướng đối tượng được hệ thống hóa như sau:
1. Phân tích Use case :
1. Tìm Actor
2. Tìm Use case
3. Xây dựng biểu đồ Use case
2. Tìm lớp:
1. Lớp
2. Gói
3. Xây dựng biểu đồ lớp
4. Xây dựng biểu đồ đối tượng
3. Phân tích sự tương tác giữa các đối tượng
1. Kịch bản
2. Xây dựng biểu đồ trình tự
3. Xây dựng biểu đồ hợp tác
4. Xác định quan hệ giữa các đối tượng

1. Quan hệ Association
2. Quan hệ Generalization
3. Quan hệ Dependency
4. Quan hệ Realization
5. Thêm vào các thuộc tính và phương thức cho các lớp
6. Xác định ứng xử của đối tượng
1. Xây dựng biểu đồ chuyển trạng
2. Xây dựng biểu đồ hoạt động
7. Xác định kiến trúc của hệ thống
1. Xây dựng biểu đồ thành phần
2. Xây dựng biểu đồ triển khai.
8. Kiểm tra lại mô hình.

25


×