Tải bản đầy đủ (.doc) (79 trang)

Xây dựng và phát triển ứng dụng chat instant messages sử dụng giao thức XMPP cho hệ điều hành 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 (1.87 MB, 79 trang )

LỜI CẢM ƠN
Trước hết, em xin chân thành cảm ơn Trường đại học Công nghệ thông
tin và truyền thông, Khoa công nghệ thông tin, Bộ môn Công nghệ phần mềm
đã tạo điều kiện thuận lợi cho em hoàn thành đồ án tốt nghiệp này.
Em xin chân thành cảm ơn cô Ngô Thị Lan đã tận tình hướng dẫn chỉ bảo
em trong suốt thời gian thực hiện đồ án tốt nghiệp.
Mặc dù đã cố gắng hoàn thành đồ án trong phạm vi và khả năng cho phép
nhưng chắc chắn sẽ không thể tránh khỏi những thiếu xót. Em kính mong nhận
được sự chỉ bảo từ phía thầy cô và các bạn.
Em xin chân thành cảm ơn!
Sinh viên
Lã Thị Hường

Tháng 6/2012

1


LỜI CAM ĐOAN
Em xin cam đoan những kết quả trong đồ án “Xây dựng và phát triển ứng
dụng Chat Instant Messages sử dụng giao thức XMPP (Extensible Messaging
and Presence Protocol) cho hệ điều hành Android” là sự nghiên cứu của em,
không sao chép của ai. Nội dung đồ án có tham khảo, sử dụng tài liệu, thông tin
từ một số nguồn khác được trích dẫn trong phần tài liệu tham khảo, và một số
website. Nếu có gì giả dối em xin hoàn toàn chịu trách nhiệm.

Tác giả đồ án
Lã Thị Hường

2



MỤC LỤC
MỤC LỤC.................................................................................................................................................. 3
DANH MỤC HÌNH VẼ................................................................................................................................. 4
DANH MỤC BẢNG BIỂU............................................................................................................................. 6
LỜI MỞ ĐẦU............................................................................................................................................. 7
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT.................................................................................................................. 9

2.1.4.Lập trình Android.................................................................................25
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH..................................................................................46
KẾT LUẬN............................................................................................................................................... 77

KẾT QUẢ ĐẠT ĐƯỢC.........................................................................................77
ƯU ĐIỂM................................................................................................................77
KHUYẾT ĐIỂM.....................................................................................................78
HƯỚNG PHÁT TRIỂN.........................................................................................78
TÀI LIỆU THAM KHẢO.............................................................................................................................. 78

3


DANH MỤC HÌNH VẼ

Hình 2-0

Biểu đồ tỷ lệ sở hữu Smartphone

Hình 2-1

Biểu tượng của hệ điều hành Android


Hình 2-2

Kiến trúc của HĐH Android

Hình 2-3

Các loại thiết bị sử dụng hệ điều hành Android

Hình 2-4

Thị phần theo phiên bản của Android

Hình 2-5

Thị phần theo phiên bản và thời gian của Android

Hình 2-6

Kiến trúc Android

Hình 2-7

Vòng đời của Activity

Hình 2-8

Giao diện Openfire trên Window7

Hình 2-9


Giao diện Admin Openfire trên Window7

Hình 2-10

Giao diện hệ quản trị cơ sở dữ liệu MySQL

Hình 2-11

Giao diện máy khách Spark

Hình 3-0

Mô hình dữ liệu quan niệm

Hình 3-1

Biểu đồ UC

Hình 3-2

Mô hình xử lý đăng nhập

Hình 3-3

Mô hình xử lý đăng xuất

Hình 3-4

Mô hình luồng xử lý gửi tin nhắn online


Hình 3-5

Mô hình luồng xử lý gửi tin nhắn offline

Hình 3-6

Mô hình xử lý thêm Friend

Hình 3-7

Mô hình xử lý xóa Friend

Hình 3-8

Mô hình lớp DataLayer

Hình 3-9

Mô hình lớp Database

Hình 3-10

Mô hình lớp ImageListBoxItem

Hình 3-11

Mô hình lớp ImageListBox

Hình 3-1


Mô hình lớp Settings

Hình 3-2

Mô hình lớp TabControlEx

Hình 3-14

Mô hình lớp MyDataPack

Hình 3-15

Mô hình ClientHandler

Hình 3-16

Mô hình dữ liệu ở mức vật lý
4


Hình 3-17

Giao diện màn hình Login

Hình 3-18

Tùy chọn menu

Hình 3-19


Cấu hình kết nối Server

Hình 3-20

Thông báo đã cấu hình server

Hình 3-21

Giao diện màn hình đăng ký

Hình 3-22

Giao diện màn hình khi đang chờ kết nối

Hình 3-23

Giao diện màn hình danh sách bạn bè

Hình 3-24

Giao diện màn hình Chat giữa máy Android và máy
Spark

Hình 3-25

Giao diện màn hình khi có tin nhắn đến

Hình 3-26


Giao diện màn hình thêm bạn

Hình 3-27

Giao diện màn hình chọn group

5


DANH MỤC BẢNG BIỂU
Bảng 3-1

Table Users

Bảng 3-2

Table FriendList

Bảng 3-3

Table OfflineMessage
Table GroupDetail

Bảng 3-4

6


LỜI MỞ ĐẦU
“Xây dựng và phát triển ứng dụng Chat Instant Messages sử dụng giao thức

XMPP (Extensible Messaging and Presence Protocol – Giao thức mở nhắn tin và
hiện diện trực tuyến) cho hệ điều hành Android.”
Đây là phần mềm nhằm mục đích truyền thông, nhắn tin tức thời sử dụng cho
Mobile Client chạy hệ điều hành Android 2.2, dựa trên việc kết nối với máy chủ
cũng sử dụng giao thức XMPP (XMPP Server – Hay chính là Jabber Server).
XMPP (Extensible Messaging and Presence Protocol – Giao thức mở nhắn tin và
hiện diện trực tuyến), trước đây là Jabber, là giao thức mở dựa trên nền tảng XML
dùng trong nhắn tin nhanh (Instant Messages) và thông tin hiện diện trực tuyến
(Presense information) do tổ chức XMPP Standard Foundation (trước đây là Jabber
Software Foundation JSP) quản lý.
Xuất phát từ nhu cầu mở rộng truyền thông liên lạc mạnh mẽ diễn ra sau sự
bùng nổ của Internet ngày nay, cùng với sự phát triển rầm rộ của các giao thức mở
được cộng đồng công nghệ và rất nhiều các tập đoàn công nghệ lớn trên thế giới sử
dụng và phát triển. Đồng thời cũng xuất phát từ nhu cầu sử dụng điện thoại di động
Android đang phát triển như vũ bão trong thời gian gần đây. Đề tài này của em
mong muốn sẽ tiếp cận được với công nghệ mới này và xây dựng được một phần
mềm Chat sử dụng giao thức mở XMPP hay chính là một XMPP Client sử dụng
cho điện thoại di động dùng hệ điều hành Android. Và em mong muốn rằng sau khi
thực hiện xong đề tài này em sẽ có thể hoàn thiện hơn một số tính năng khác mà
trong phạm vi đồ án em chưa thể hoàn thành để phần mềm có thể đi vào thực tế
hoạt động.
Phần mềm của em xây dựng dựa trên nhu cầu của bộ phận đối tượng khách
hàng là những công ty, cơ quan phòng ban sử dụng Openfire server (Một loại máy
chủ XMPP - em sẽ trình bày trong Chương 2 của đồ án) trong việc truyền thông
giao tiếp mạng cục bộ intranet. Vốn hiện tại, để sử dụng truyền thông giao tiếp
trong mạng Openfire, người dùng sẽ phải sử dụng phần mềm là Spark Client, đây là
một phần mềm chỉ sử dụng cho máy destop và laptop, notebook…, không thể chạy
trên hệ điều hành Android.
7



Dựa trên mong muốn của nhóm khách hàng này là muốn sở hữu một phần
mềm có khả năng giao tiếp trong mạng của Openfire cho máy điện thoại Android,
như vậy người dùng vừa có thể di chuyển khỏi bàn làm việc với một chiếc điện
thoại Android mà vẫn truyền tải được các thông điệp trong mạng.
Nhiệm vụ đồ án của em là xây dựng một phần mềm Chat Client cho hệ điều
hành Android sử dụng giao thức XMPP kết nối với một XMPP Server là Openfire,
người dùng sau khi đăng ký sẽ được lưu vào cơ sở dữ liệu và sẽ được quản trị bởi
Administrator của Openfire Server. Khi đã có tài khoản trên Server thì người dùng
có thể đăng nhập và Chat, nhắn tin với những người dùng khác cùng kết nối vào
Server.
Điểm mới và khác biệt của phần mềm này với những phần mềm thương mại
Android khác đó là: Khi cùng kết nối vào Openfire server thì người dùng sử dụng
phần mềm này có thể Chat với người kết nối vào Openfire server nhưng không sử
dụng phần mềm này mà là phần mềm khác (trong đề tài em nghiên cứu là cùng với
Spark client).

8


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1. Tổng quan về phát triển phần mềm
Phát triển phần mềm là việc chuyển nhu cầu của người dùng hoặc mục tiêu tiếp thị
thành một sản phẩm phần mềm. Phát triển phần mềm đôi khi được hiểu là sự bao gồm các
quá trình của kỹ nghệ phần mềm cộng với sự nghiên cứu và các mục tiêu tiếp thị phần
mềm để phát triển những sản phẩm phần mềm máy tính.
Kỹ nghệ phần mềm là sự áp dụng một cách tiếp cận có hệ thống, có kỷ luật, và
định lượng được cho việc phát triển, sử dụng và bảo trì phần mềm. Ngành học kỹ nghệ
phần mềm bao trùm kiến thức, các công cụ, và các phương pháp cho việc định nghĩa yêu
cầu phần mềm, và thực hiện các tác vụ thiết kế, xây dựng, kiểm thử (software testing), và

bảo trì phần mềm.
Quy trình phát triển phần mềm là một cấu trúc bao gồm tập hợp các thao tác và
các kết quả tương quan sử dụng trong việc phát triển để sản xuất ra một sản phẩm phần
mềm. Các thuật ngữ tương tự là vòng đời phần mềm và quy trình phần mềm. Đây được coi
là một thành phần tập con của vòng đời phát triển hệ thống. Có một số mô hình cho việc
xây dựng các quy trình này, mỗi mô hình mô tả các phương thức cũng như các nhiệm vụ
hoặc thao tác cần được thực hiện trong cả quá trình. Nhiều người coi mô hình vòng đời là
một thuật ngữ phạm vi rộng và quy trình phát triển phần mềm là một thuật ngữ ở mức chi
tiết cụ thể hơn. Ví dụ, có rất nhiều quy trình phát triển phần mềm tuân theo mô hình vòng
đời xoắn ốc. ISO/IEC 12207 là một tiêu chuẩn quốc tế cho các quy trình vòng đời phần
mềm, mục đích là trở thành một tiêu chuẩn định nghĩa tất cả các công việc cần thực hiện để
xây dựng và bảo trì sản phẩm phần mềm.

1.2. Phát triển phần mềm hướng chức năng
Đây là lối tiếp cận truyền thống của ngành Công nghệ phần mềm. Theo lối
tiếp cận này, chúng ta quan tâm chủ yếu tới những thông tin mà hệ thống sẽ giữ gìn.
Chúng ta hỏi người dùng xem họ sẽ cần những thông tin nào, rồi chúng ta thiết kế
ngân hàng dữ liệu để chứa những thông tin đó, cung cấp Forms để nhập thông tin và
in báo cáo để trình bày các thông tin. Nói một cách khác, chúng ta tập trung vào
thông tin và không mấy để ý đến những gì có thể xảy ra với những hệ thống đó và
cách hoạt động (ứng xử) của hệ thống là ra sao. Đây là lối tiệm cận xoay quanh dữ
liệu và đã được áp dụng để tạo nên hàng ngàn hệ thống trong suốt nhiều năm trời.

9


Lối tiếp cận xoay quanh dữ liệu là phương pháp tốt cho việc thiết kế ngân
hàng dữ liệu và nắm bắt thông tin, nhưng nếu áp dụng cho việc thiết kế ứng dụng lại
có thể khiến phát sinh nhiều khó khăn. Một trong những thách thức lớn là yêu cầu
đối với các hệ thống thường xuyên thay đổi. Một hệ thống xoay quanh dữ liệu có

thể dể dàng xử lý việc thay đổi ngân hàng dữ liệu, nhưng lại khó thực thi những
thay đổi trong nguyên tắc nghiệp vụ hay cách hoạt động của hệ thống.
Phương pháp hướng đối tượng đã được phát triển để trả lời cho vấn đề đó.
Với lối tiếp cận hướng đối tượng, chúng ta tập trung vào cả hai mặt của vấn đề :
thông tin và cách hoạt động.
1.3. Phát triển phần mềm hướng đối tượng
Hướng đối tượng là thuật ngữ thông dụng hiện thời của ngành công nghiệp
phần mềm. Các công ty đang nhanh chóng tìm cách áp dụng và tích hợp công nghệ
mới này vào các ứng dụng của họ. Thật sự là đa phần các ứng dụng hiện thời đều
mang tính hướng đối tượng. Nhưng hướng đối tượng có nghĩa là gì?
Lối tiếp cận hướng đối tượng là một lối tư duy về vấn đề theo lối á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 lối tiếp cận này,
chúng ta chia ứng dụng thành các thành phần nhỏ, gọi là các đối tượng, chúng
tương đối độc lập với nhau. Sau đó ta có thể xây dựng ứng dụng bằng cách chắp các
đối tượng đó lại với nhau. Hãy nghĩ đến trò chơi xây lâu đài bằng các mẫu gỗ. Bước
đầu tiên là tạo hay mua một vài loại mẫu gỗ căn bản, từ đó tạo nên các khối xây
dựng căn bản của mình. Một khi đã có các khối xây dựng đó, bạn có thể chắp ráp
chúng lại với nhau để tạo lâu đài. Tương tự như vậy một khi đã xây dựng một số đối
tượng căn bản trong thế giới máy tính, bạn có thể chắp chúng lại với nhau để tạo
ứng dụng của mình. Và ứng dụng sẽ được sẽ được nhận diện cũng như giải đáp
xoay quanh các đối tượng đó.
Ví dụ: vấn đề rút tiền mặt tại nhà băng. Các “mẫu gỗ“ thành phần ở đây sẽ là
ánh xạ của các đối tượng ngoài đời thực như tài khoản, nhân viên, khách hàng.
1.4. Lý do lựa chọn phương pháp phát triển phần mềm hướng đối tượng cho
đồ án tốt nghiệp
Lối tiếp cận xoay quanh dữ liệu là phương pháp tốt cho việc thiết kế ngân
hàng dữ liệu và nắm bắt thông tin, nhưng nếu áp dụng cho việc thiết kế ứng dụng lại
có thể khiến phát sinh nhiều khó khăn. Một trong những thách thức lớn là yêu cầu
10



đối với các hệ thống thường xuyên thay đổi. Một hệ thống xoay quanh dữ liệu có
thể dể dàng xử lý việc thay đổi ngân hàng dữ liệu, nhưng lại khó thực thi những
thay đổi trong nguyên tắc nghiệp vụ hay cách hoạt động của hệ thống.
Phương pháp hướng đối tượng đã được phát triển để trả lời cho vấn đề đó.
Với lối tiếp cận hướng đối tượng, chúng ta tập trung vào cả hai mặt của vấn đề :
thông tin và cách hoạt động.
Tính tái sử dụng: bạn có thể tạo các thành phần (đối tượng) một lần và dùng
chúng nhiều lần sau đó. Giống như việc bạn có thể tái sử dụng các khối xây dựng
(hay bản sao của nó ) trong một toà lâu đài, một ngôi nhà ở, một con tàu vũ trụ, bạn
cũng có thể tái sử dụng các thành phần (đối tượng) căn bản trong các thiết kế hướng
đối tượng cũng như code của một hệ thống kế toán, hệ thống kiểm kê, hoặc một hệ
thống đặt hàng.
Vì các đối tượng đã được thử nghiệm kỹ càng trong lần dùng trước đó, nên
khả năng tái sử dụng đối tượng có tác dụng giảm thiểu lỗi và các khó khăn trong
việc bảo trì, giúp tăng tốc độ thiết kế và phát triển phần mềm.
Phương pháp hướng đối tượng giúp chúng ta xử lý các vấn đề phức tạp trong
phát triển phần mềm và tạo ra các thế hệ phần mềm có khả năng thích ứng và bền
chắc.
1.5. Các giai đoạn của chu trình phát triển phần mềm với mô hình hướng đối
tượng
Phân tích hướng đối tượng (Object Oriented Analysis - OOA):
Là giai đọan phát triển một mô hình chính xác và súc tích của vấn đề, có
thành phần là các đối tượng và khái niệm đời thực, dễ hiểu đối với người sử dụng.
Trong giai đoạn OOA, vấn đề được trình bày bằng các thuật ngữ tương ứng
với các đối tượng có thực. Thêm vào đó, hệ thống cần phải được định nghĩa sao cho
người không chuyên Tin học có thể dễ dàng hiểu được.
Dựa trên một vấn đề có sẵn, nhà phân tích cần ánh xạ các đối tượng hay thực
thể có thực như khách hàng, ô tô, người bán hàng, … vào thiết kế để tạo ra được
bản thiết kế gần cận với tình huống thực. Mô hình thiết kế sẽ chứa các thực thể

trong một vấn đề có thực và giữ nguyên các mẫu hình về cấu trúc, quan hệ cũng
như hành vi của chúng. Nói một cách khác, sử dụng phương pháp hướng đối tượng
chúng ta có thể mô hình hóa các thực thể thuộc một vấn đề có thực mà vẫn giữ được
cấu trúc, quan hệ cũng như hành vi của chúng.

11


Đối với ví dụ một phòng bán ô tô, giai đoạn OOA sẽ nhận biết được các thực thể
như:
- Khách hàng
- Người bán hàng
- Phiếu đặt hàng
- Phiếu (hoá đơn) thanh toán
- Xe ô tô
Tương tác và quan hệ giữa các đối tượng trên là:
- Người bán hàng dẫn khách hàng tham quan phòng trưng bày xe.
- Khách hàng chọn một chiếc xe
- Khách hàng viết phiếu đặt xe
- Khách hàng trả tiền xe
- Xe ô tô được giao đến cho khách hàng
Đối với ví dụ nhà băng lẻ, giai đoạn OOA sẽ nhận biết được các thực thể như:
- Loại tài khoản: ATM (rút tiền tự động), Savings (tiết kiệm), Current (bình
thường), Fixed (đầu tư), ...
- Khách hàng
- Nhân viên
- Phòng máy tính.
Tương tác và quan hệ giữa các đối tượng trên:
- Một khách hàng mới mở một tài khoản tiết kiệm
- Chuyển tiền từ tài khoản tiết kiệm sang tài khoản đầu tư

- Chuyển tiền từ tài khoản tiết kiệm sang tài khoản ATM
Xin chú ý là ở đây, như đã nói, ta chú ý đến cả hai khía cạnh: thông tin và cách hoạt
động của hệ thống (tức là những gì có thể xảy ra với những thông tin đó).
Lối phân tích bằng kiểu ánh xạ "đời thực” vào máy tính như thế thật sự là ưu điểm
lớn của phương pháp hướng đối tượng.
Thiết kế hướng đối tượng (Object Oriented Design - OOD):
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. Các lớp là thành viên của một cây cấu
trúc với mối quan hệ thừa kế.
Mục đích của giai đoạn OOD là tạo thiết kế dựa trên kết quả của giai đoạn
OOA, dựa trên những quy định phi chức năng, những yêu cầu về môi trường, những
yêu cầu về khả năng thực thi, .... OOD tập trung vào việc cải thiện kết quả của
OOA, tối ưu hóa giải pháp đã được cung cấp trong khi vẫn đảm bảo thoả mãn tất cả
các yêu cầu đã được xác lập.
Trong giai đoạn OOD, nhà thiết kế định nghĩa các chức năng, thủ tục
(operations), thuộc tính (attributes) cũng như mối quan hệ của một hay nhiều lớp
(class) và quyết định chúng cần phải được điều chỉnh sao cho phù hợp với môi

12


trường phát triển. Đây cũng là giai đoạn để thiết kế ngân hàng dữ liệu và áp dụng
các kỹ thuật tiêu chuẩn hóa.
Về cuối giai đoạn OOD, nhà thiết kế đưa ra một loạt các biểu đồ (diagram)
khác nhau. Các biểu đồ này có thể được chia thành hai nhóm chính là Tĩnh và động.
Các biểu đồ tĩnh biểu thị các lớp và đối tượng, trong khi biểu đồ động biểu thị
tương tác giữa các lớp và phương thức hoạt động chính xác của chúng. Các lớp đó
sau này có thể được nhóm thành các gói (Packages) tức là các đơn vị thành phần
nhỏ hơn của ứng dụng.
Lập trình hướng đối tượng (Object Oriented Programming - OOP):

Giai đoạn xây dựng phần mềm có thể được thực hiện sử dụng kỹ thuật lập
trình hướng đối tượng. Đó là phương thức thực hiện thiết kế hướng đối tượng qua
việc sử dụng một ngôn ngữ lập trình có hỗ trợ các tính năng hướng đối tượng. Một
vài ngôn ngữ hướng đối tượng thường được nhắc tới là C++ và Java. Kết quả chung
cuộc của giai đoạn này là một loạt các code chạy được, nó chỉ được đưa vào sử
dụng sau khi đã trải qua nhiều vòng quay của nhiều bước thử nghiệm khác nhau.
1.6. Ngôn ngữ mô hình hóa thống nhất - UML (Unifield Modeling Language)
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 bởi ba tác
giả trên với chủ đí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.
Phương pháp và các ngôn ngữ mô hình hoá:
Phương pháp hay phương thức (method) là một cách trực tiếp cấu trúc hoá sự
suy nghĩ và hành động của con người. Phương pháp cho người sử dụng biết phải
làm gì, làm như thế nào, khi nào và tại sao (mục đích của hành động). Phương pháp
chứa các mô hình (model), các mô hình được dùng để mô tả những gì sử dụng cho
việc truyền đạt kết quả trong quá trình sử dụng phương pháp. Điểm khác nhau chính
giữa một phương pháp và một ngôn ngữ mô hình hoá (modeling language) là ngôn
ngữ mô hình hoá không có một tiến trình (process) hay các câu lệnh (instruction)
mô tả những công việc người sử dụng cần làm.
13


Một mô hình được biểu diễn theo một ngôn ngữ mô hình hoá. Ngôn ngữ mô
hình hoá bao gồm các ký hiệu – những biểu tượng được dùng trong mô hình – và

một tập các quy tắc chỉ cách sử dụng chúng. Các quy tắc này bao gồm:
- Syntactic (Cú pháp): cho biết hình dạng các biểu tượng và cách kết hợp
chúng trong ngôn ngữ.
- Semantic (Ngữ nghĩa): cho biết ý nghĩa của mỗi biểu tượng, chúng được
hiểu thế nào khi nằm trong hoặc không nằm trong ngữ cảnh của các biểu
tượng khác.
- Pragmatic : định nghĩa ý nghĩa của biểu tượng để sao cho mục đích của mô
hình được thể hiện và mọi người có thể hiểu được.
1.7. Quy trình RUP(Rational Unified Process)
RUP (Rational Unified Process) là framework qui trình phát triển phần mềm
mang tính lặp được tạo bởi Công ty Rational Software (được IBM mua năm 2003).
IBM Rational Method Composer (RMC) được tích hợp vào RUP với mục đích có
thể chỉnh sửa qui trình theo mục đích riêng (customization).
Dựa trên 6 kinh nghiệm thực tiễn của công nghệ phần mềm hiện đại:
- Phát triển lặp với “rủi ro” là nhân tố dẫn dắt chính.
- Quản lý yêu cầu
- Sử dụng kiến trúc thành phần (component)
- Mô hình phần mềm một cách trực quan
- Kiểm tra chất lượng liên tục
- Kiểm soát sự thay đổi
RUP ra đời trở thành chiến lược vững vàn của Rational:
- Một qui trình hướng dẫn phát triển phần mềm
- Công cụ tạo tự động ứng dụng theo qui trình
- Dịch vụ làm cho Qui trình và Tool được hiệu quả hơn
Các Giai đoạn và các vòng lặp trong vòng đời phát triển (Phases and
Iterations)
Mỗi vòng đời phần mềm được chia thành nhiều vòng (cycles), mỗi vòng
(cycle) làm việc trên một phiên bản mới của sản phẩm. RUP chia 1 vòng phát triền
(development cycle) thành 4 giai đoạn (phase) liên tiếp: Inception phase,
Elaboration phase, Construction phase, Transition phase.

Cấu trúc tĩnh của qui trình
Một qui trình mô tả ai (who) đang làm gì (what), làm như thế nào (how) và
làm khi nào (when). RUP sử dụng 4 yếu tố chính trong mô hình.
- Workers – Who
14


- Activities – How
- Artifacts – What
- Workflows – When
a) Worker định nghĩa các hành vi, trách nhiệm của một cá nhân hoặc một nhóm làm
việc với nhau còn gọi là team.
b) Activity của một worker là một đơn vị công việc được giao cho một cá nhân thực
hiện. Activity có mục đích rõ ràng, thường là yêu cầu tạo mới hoặc update một số
artifacts như là model, class, hoặc plan. Mỗi một activity được phân công cho một
workder rõ ràng.
c) Artifact là một mẫu thông tin được tạo, chỉnh sửa hoặc được sử dụng bởi qui
trình. Artifact là những sản phẩm hữu hình của dự án, là vật mà dự án tạo ra hoặc sử
dụng để đạt đến sản phẩm cuối cùng. Artifact thường được nhập bởi worker để thực
hiện một activity, hoặc là kết quả của các activities.
Artifact có thể có rất nhiều dạng:
-Mô hình: use-case model, design model.
-Yếu tố mô hình: class, use-case hoặc subsystem
-Tài liệu: Business case hoặc tài liệu kiến trúc phần mềm
-Source code
-Các file thực thi (Executables)
d) Workflow :Chỉ là một bản liệt kê các workers, activities và artifact thì không thể
tạo thành qui trình. Chúng ta cần một cách mô tả tuần tự đầy ý nghĩa các activities
để tạo ra kết quả có giá trị và chỉ rõ sự tương tác giữa các worker.
Workflow là một chuỗi các hành động diễn ra liên tiếp nhằm tạo ra kết quả có giá

trị rõ ràng.
Trong UML, workflow có thể diễn đạt bằng sequence diagram, collaboraion
diagram hoặc activity diagram.
1.8. Kiến trúc phần mềm MVC
MVC hay Model-View-Controller là một mẫu kiến trúc phần mềm trong kỹ
thuật kỹ sư phần mềm. Khi sử đúng cách, mẫu MVC giúp cho người phát triển phần
mềm cô lập các nguyên tắc nghiệp vụ và giao diện người dùng một cách rõ ràng
hơn. Phần mềm phát triển theo mẫu MVC tạo nhiều thuận lợi cho việc bảo trì vì các
nguyên tắc nghề nghiệp và giao diện ít liên quan với nhau.
Trong mẫu Model-View-Controller, mô hình (model) tượng trưng cho dữ liệu
của chương trình phần mềm. Tầm nhìn hay khung nhìn (view) bao gồm các thành
phần của giao diện người dùng. Bộ kiểm tra hay bộ điều chỉnh (controller) quản lý

15


sự trao đổi giữa dữ liệu và các nguyên tắc nghề nghiệp trong các thao tác liên quan
đến mô hình.
1.9. Giới thiệu hệ điều hành Android và lập trình Android
1.9.1. Sự phát triển của điện thoại di động
Trong khoảng những năm gần đây (từ năm 2000), điện thoại di động ngày
càng trở nên quen thuộc với cuộc sống của con người (thế giới nói chung và Việt
Nam nói riêng).
Tại Việt Nam, với sự đa dạng các nhà cung cấp, sóng điện thoại được phủ sóng toàn
quốc, việc sử dụng điện thoại di động để liên lạc trong kinh doanh, hoạt động hằng
ngày đã trở nên phổ biến. Điện thoại di động với ưu điểm gọn nhẹ, dễ sử dụng đã
trở thành công cụ thiết yếu của mọi người, nhất là giới trẻ và danh nhân.
Theo số liệu thống kê của Tổng cục thống kê, trong năm 2010, cả nước có 170,1
triệu thuê bao điện thoại, trong đó thuê bao cố định chỉ có 16,4 triệu, còn lại là 154
(90.5%) triệu thuê bao di động, với tỉ lệ tăng trưởng là 35%. Đây là một con số rất ấn

tượng và theo dự đoán, con số này sẽ tăng trưởng nhanh trong những năm tới.
Một cuộc khảo sát về tỉ lệ người Việt Nam sử dụng điện thoại di động thực
hiện bởi công ty nghiên cứu thị trường Nielsen, kết quả cho thấy Việt Nam có tỷ lệ
người sử dụng điện thoại di động cao hơn cả Trung Quốc và Ấn Độ. Trong 5.000
người tại các thành phố và ngoại thành của Việt Nam có 58% dân thành thị và 37%
dân khu vực ngoại thành có điện thoại di động riêng. Tại TP.HCM và Hà Nội, tỷ lệ
này lên đến 74%. Những con số này còn cao hơn Trung Quốc và Ấn Độ với tỷ lệ
dân số sở hữu ĐTDĐ lần lượt là 46% và 30%. Kết quả khảo sát cho thấy đa số
người Việt Nam trong độ tuổi từ thanh thiếu niên đến 60 tuổi đều có một thậm chí
hai chiếc ĐTDĐ.
Với mức độ tăng trưởng kinh ngạc như vậy, không còn lạ gì khi Việt Nam
đứng thứ 27 trong danh sách các quốc gia có số lượng người sử dụng điện thoại di
động nhiều nhất trên thế giới.
1.9.2. Smartphone

16


Trước năm 2007, tỉ lệ sử dụng smartphone (điện thoại di động thông minh) tại
Việt Nam hầu như rất thấp và smartphone được sử dụng hầu hết bởi danh nhân và
được coi là sản phẩm cao cấp.
Nhưng từ khi Apple tung iPhone ra thị trường, thế giới gần như bị ảnh hưởng bởi
làn sóng smartphone mới, đa ứng dụng và có thể kết nối Internet. Sự xuất hiện của
iPhone như một sự thức tỉnh với các hãng sản xuất điện thoại di động khác. Các
hãng sản xuất đua nhau đưa các dòng sản phẩm smartphone khác nhau, làm cho
smartphone dần trở thành một sản phẩm công nghệ thông dụng, thay thế dần dòng
điện thoại di động truyền thống, vốn chỉ sử dụng để gọi, nhắn tin là chủ yếu.
Với dòng smartphone hiện đại kết hợp với sự phát triển vũ bão của Internet và
mạng xã hội, điện thoai di động không còn chủ yếu để gọi và nhắn tin nữa, mà còn
đảm nhiệm nhiều nhiệm vụ khác như soạn văn bản, lưu trữ hình ảnh, video, chống

trộm, máy chơi game,…và nhất là dùng để truy cập Internet.
Dưới đây là một vài con số ấn tượng về tình trạng sử dụng điện thoại di động trên
thế giới:
- Hiện nay, toàn thế giới có khoảng 4 tỉ người sử dụng điện thoại di động. Trong đó
có 1,08 tỉ người sử dụng smartphone, còn 3,05 tỉ người sử dụng các loại điện thoại
cơ bản (nghe, gọi và nhắn tin). Trong đó, có đến khoản 950 triệu người sử dụng các
loại điện thoại không có chức năng nhắn tin.
- 86% người sử dụng điện thoại di động truy cập Internet trong khi đang xem TV.
- Hiện nay, có đến 91% lượng truy cập vào các mạng xã hội đến từ các thiết bị di
động, nhiều hơn so với 79% lượng truy cập đến từ máy tính cá nhân.
- Theo thống kê, 61% người sử dụng điện thoại di động để chơi game, 55% để theo
dõi tình hình thời tiết, 50% sử dụng để tìm kiếm và dò bản đồ, 49% sử dụng để truy
cập mạng xã hội, 42% dùng để nghe nhạc, 36% theo dõi tin tức, 33% dùng để xem
phim…
- 30% số người sử dụng smartphone truy cập các mạng xã hội thông qua trình duyệt
mặc định của di động. Còn lại cài đặt thêm các trình duyệt khác để sử dụng.
- Mỗi ngày, có đến hơn 200 triệu lượt xem video từ các thiết bị di động.
17


Tại Việt Nam, số lượng người sử dụng mobile Internet (sử dụng điện thoại di động
để truy cập và sử dụng các ứng dụng trực tuyến) với tỉ lệ còn thấp. Kết quả khảo sát
gần đây nhất cho thấy chỉ 2 trong số 5 người Việt Nam là sử dụng mobile Internet.
Tuy nhiên con số này sẽ bùng phát nhanh chóng trong vòng 12 tháng tới. Nhận định
này được hãng nghiên cứu thị trường Nielsen đưa ra trong báo cáo mang tên Người
tiêu dùng công nghệ số khu vực Đông Nam Á.
Theo Nielsen, phải mất thời gian khá dài mobile Internet mới có thể tiếp cận được
Việt Nam nhưng tới đây, lượng người dùng sẽ gia tăng nhanh chóng. Hiện tại, chỉ
41% người dùng Internet vào mạng qua điện thoại di động, tỷ lệ thấp nhất trong khu
vực Đông Nam Á. Nhưng do xu hướng thích ứng nhanh với công nghệ mới của

người Việt Nam, tỷ lệ này trong vòng 12 tháng tới sẽ là 75%.

Hình 2-0 Biểu đồ tỷ lệ sở hữu Smartphone
Theo đó 96% người dùng Internet đều đã truy cập vào ít nhất một trang mạng
xã hội. 79% trong số họ từng bày tỏ thái độ yêu thích (like) hoặc dõi theo một nhãn
hiệu, một công ty hoặc người nổi tiếng nào đó trên mạng. Tỷ lệ này cao hơn 10% so
với mức bình quân của khu vực Đông Nam Á.
Người dùng Internet Việt Nam cũng dễ bị ảnh hưởng bởi những thông tin tìm
thấy trên mạng xã hội. 58% những ý kiến đăng tải được cho là tin cậy và 81% sử
dụng mạng xã hội như một nguồn lực để ra các quyết định mua sắm.
Với những con số đầy hứa hẹn như trên, có thể thấy một tương lại rộng mở
cho thị trường ứng dụng cho smartphone tại Việt Nam. Với sự phát triển của công
18


nghệ và Internet, một ngày không xa, smartphone sẽ hoàn toàn thay thế cho máy
tính cá nhân trong việc liên lạc, làm việc của người dân Việt Nam cũng như thế
giới.
1.9.3. Hệ điều hành Android

Hình 2-1 Biểu tượng của hệ điều hành Android
 Giới thiệu hệ điều hành Android
Android là một hệ điều hành mã nguồn mở dành cho các thiết bị di động như
smartphone, tablet,.. Được phát triển bởi Open Handset Alliance (đứng đầu bởi
Google). Android được phát triển dựa trên nhân Linux, kết hợp với các thư viện,
middleware và API được viết bằng ngôn ngữ C, ứng dụng trên Android được thực thi
trên một Application Framework, trong đó có hỗ trợ các ứng dụng Java. Android sử
dụng một Java Virtual Machine, Dalvik, để chạy các ứng dụng được viết bằng Java.
Android là hệ điều hành dành cho các thiết bị di động như smartphones hay
tablet, được phát triển bởi Open Handset Alliance (OHA). OHA là một liên minh

doanh nghiệp gồm 83 thành viên tập trung phát triển các tiêu chuẩn cho thiết bị di
động. Các thành viên bao gồm: Google, HTC, Sony, Dell, Intel, Motorola,
Qualcomm, Texas Intruments, Samsung, LG, T-Mobile, Nvidia và Wind River
Systems.

19


Android được xây dựng dựa trên Linux kernel với middleware, libraries, các API
được viết bằng C và phần mềm chạy trên một application framework bao gồm
những thư viện tương thích với Java dựa trên Apache Harmony. Android sử dụng
Dalvik virtual machine với phương pháp biên dịch just-in-time để chạy code Java
đã được biên dịch.
 Lịch sử sáng lập và hoạt động
Android, In.c được sáng lập tại Palo Alto, California, Mỹ vào 10/2003 bởi
Andy Rubin, Rich Miner, Nick Sears và Chris White. Rubin đã phát biểu rằng
“Những thiết bị di động thông minh là những cái nhận biết được vị trí và những
thiết lập của chúng”.
8/2005 Google đã mua Android Inc. và làm cho nó hoàn toàn được sở hữu bởi
công ty con của Google Inc. Những nhân lực chính của Android Inc. gồm Andy
Rubin, Rich Miner và Chris White vẫn ở lại công ty để phát triển Android. Không
nhiều người biết về Android Inc ở thời điểm được thu mua, nhưng một số trong đó
đã thừa nhận kết hoạch tấn công vào thị trường điện thoại cầm tay của Google.
 Các phiên bản Android
Android đã cập nhật liên tục từ phiên bản đầu tiên. Những cập nhật cho hệ
đìêu hành và thêm những đặc tính mới. Mỗi phiên bản của hệ điều hành Android
được phát triển với một tên gọi dựa trên những món tráng miệng. Code name của
chúng được sắp theo thứ tự alphabet: Cupcake, Donut, Éclair, Froyo, Gingerbread,
Honeycomb và sắp tới là Ice cream sandwhich. Dưới đây là danh sách các phiên
bản gần đây nhất:

+ 2.0 ( Eclair) nâng cấp lên web browser và giao diện mới, hỗ trợ HTML5 và
W3C geolocation API. Bản này được cài thêm ứng dụng camera với những đặc tính
zoom, flash, color effects và nhiều thứ khác.
+ 2.1 (Eclair) hỗ trợ điều khiển giọng nói, new laucher, 5 homescreen thay vì
3 như trước, background động, một nút để mở menu. Bản này được cài thêm ứng
dụng thời tiết, nâng cấp email và phonebook.

20


+ 2.2 (Froyo) đưa ra sự cải thiệt tốc độ với giải pháp tối ưu JIT và Chrome
V8 Javascript engine, thêm vào Wifi hotspot tethering và hỗ trợ Flash.
+ 2.3 (Gingerbread) điều chỉnh lại giao diện, nâng cấp bàn phím mềm, đặc
tính copy/paste và hỗ trợ Near Field Communication.
+ 3.0 (Honeycomb) là phiên bản dùng cho tablet, hỗ trợ cho các thiết bị có
màn hình lớn hơn và đưa ra nhiều đặc tính giao diện mới, hỗ trợ xử lý đa nhân và
tăng tốc phần cứng đồ họa. Thiết bị đầu tiên dùng Honeycomb là Motorola Xoom,
được bày bán vào 2/2011.
+ 3.1 (Honeycomb) được thông báo tại Google I/O vào 10/2011, cho phép
các thiết bị Honeycomb truyền dữ liệu trực tiếp từ các USB.
+ 3.2 (Honeycomb) là phiên bản cài thêm, có những khả năng mới cho người
dùng và developer. Nổi bật gồm có tối ưu làm tăng kích thước màn hình, khả năng
“zoom-to-fill”, load media file trực tiếp từ SD card và màn hình mở rộng hỗ trợ
developer điều chỉnh giao diện chính xác hơn.
+ 4.0 (Ice Cream Sandwhich) sẽ là sự kết hợp của Gingerbread và
Honeycomb.
 Kiến trúc Android
Kernel của Android được dẫn xuất từ Linux kernel. Google đã đóng góp code
cho Linux kernel như một phần của sự cố gắng, nhưng những tính năng đáng chú ý
có thể kể đến là quản lý năng lượng được gọi là wakelocks đã bị từ chối bởi những

kernel developer chính thống. Vì lẽ đó Android kernel giờ đây là một phiên bản
riêng biệt hoặc là một “người anh em” của Linux kernel.
4/2010, Google thông báo thằng họ sẽ thuê hai công nhân làm việc cho cộng
đồng Linux kernel. Greg Kroah-Hartman, hiện tại là người bảo trì Linux kernel ở
nhánh đảm bảo sự ổn định, vào 20/2010 đã phát biểu rằng ông ta lo ngại Google sẽ
không còn cố gắng thay đổi code trong Linux. Một số Google Android developer
gợi ý “Nhóm Android ko còn muốn làm việc đó” bởi vì họ là một nhóm nhỏ và còn
nhiều công việc cấp bách hơn phải làm trên Android.
21


Android không có một X Windows System, cũng ko hỗ trợ GN libraries và
điều này làm cho khó khăn trong việc đem các ứng dụng hay các thư viện của
GNU/Linux vào Android.
- Các tính năng: Handset layouts, storage, connectivity, messaging, multiple
language, web browser, Java support, media support, streaming media support,
additional hardware support, multi-touch, bluetooth, video calling, multitasking,
voice based feature, Wifi hotspot tethering, screen capture.

Hình 2-2 Kiến trúc của HĐH Android

 Ưu điểm của hệ điều hành Android
Android được cung cấp dưới dạng một phần mềm mã nguồn mở, hoàn toàn
miễn phí. Điều này có nghĩa các nhà sàn xuất thiết bị di động (smartphone, tablet)
có thể sử dụng android và tùy chỉnh theo ý thích.
22


Nếu như trước đây, mỗi một nhà sản xuất thiết bị di động sử dụng hệ điều
hành của riêng mình, kho ứng dụng cũng chỉ phục vụ cho riêng hệ điều hành đó,

làm giới hạn khả năng lựa chọn linh hoạt của người sử dụng thì nay người sử dụng
có thể lựa chọn sử dụng smartphone với nhiều model, giá cả hợp túi tiền và điều
hay nhất là có thể tận dụng được số lượng lớn ứng dụng dành cho Android trên
Internet mà không cần quan tâm tới hãng sản xuất. Tất cả là nhờ Android. Đây có
thể coi là thế mạnh của Andoird so với iOS của Apple.
 Sự bùng nổ Android trên thị trường
- Ngày 15/12/2009: số lượng ứng dụng dành cho Android đã đạt mốc 20.000. Chỉ
10 tháng kể từ khi Android lần đầu tiên xuất hiện (2008) và và 3 tháng từ khi
đạt mốc 10.000 ứng dụng (9/2009). Ứng dụng dành cho Android đang phát
triển với tốc độ rất nhanh. Tại thời điểm 7/2011, tổng số lượng ứng dụng của
Android là 250.000, một con số khổng lồ.
-

Hệ điều hành Android được hơn 36 nhà sản xuất thiết bị di động sử dụng, trong
đó có các ông lớn như HTC, ASUS, Acer, Samsung, LG, Nokia, DELL,..

-

Tại thời điểm hiện tại, có hơn 310 mẫu thiết bị đang được lưu hành toàn cầu sử
dụng hệ điều hành Android.

-

Google đã kích hoạt hơn 100 triệu thiết bị sử dụng hệ điều hành Android trên
toàn cầu.

 Hướng phát triển của Android
Do thế mạnh là một phần mềm mã nguồn mở, hệ điều hành Android có thể
được sử dụng trên nhiều loại thiết bị khác chứ không chỉ riêng Smartphone.
Ngoài smartphone ra, trên thị trường thế giới đã xuất hiện các thiết bị dành cho gia

đình sử dụng Android
-

Android TV: Google đã thông báo chính thức sẽ phát triển TV sử dụng hệ
điều hành Android (Google TV). Sản phẩm này có thể tương tác với người
dùng, kết nối Internet và sử dụng ứng dụng của Android như smartphone.

-

Android Tablet: Máy tính bảng sử dụng Android không còn lạ lẫm khi các hãng
sản xuất laptop lớn như Dell, Acer, ASUS, LG đều đã tung ra các mẫu sản phẩm
để cạnh trang với iPad của Apple.
23


-

Android Home Phone System: hệ thống điện thoại cố định sử dụng Android
được trang bị trong nhà. Các điện thoại này được kết nối Internet và thực hiện
các cuộc gọi VoIP với nhau.

-

Android Appliances: không chỉ xuất hiện ở thiết bị giải trí, di động. Một số hãng
sản xuất đã sử dụng Android lên các thiết bị gia dụng bao gồm máy giặt, máy
sấy và kể cả lò vi sóng được điểu khiển bằng hệ điều hành Android.

Hình 2-3 Các loại thiết bị sử dụng hệ điều hành Android
 Phát triển ứng dụng Android ngày càng dễ dàng
Với thế mạnh hỗ trợ ứng dụng Java, việc phát triển ứng dụng Android trở nên rất dễ

dàng khi mà đã có sẵn một lượng lớn library mã nguồn mở dành cho Java có rất
nhiều trên Internet. Developers có thể rút ngắn rất nhiều thời gian để phát triển ứng
dụng trên nền Android.

24


 Thị phần Android
Công ty nghiên cứu Canalys đánh giá trong Quý 2 2009 rằng Android có 2.8%
thị phần trên toàn thế giới ở lĩnh vực smartphone. Theo Quý 4 2010, tỉ lệ này tăng
33%, trở thành hệ điều hành bán chạy nhất dành cho smartphone. 6/2011, Google phát
biểu rằng 550.000 thiết bị Android được kích hoạt mỗi ngày, 440.000 mỗi ngày trong
hai tháng tiếp theo vào 5/2011 và hơn 100 triệu thiết bị đã được kích hoạt.

Hình 2-4 Thị phần theo phiên bản của Android
(Biểu đồ trên dựa trên số thiết bị Android đã truy xuất Android Market trong chu kỳ
14 ngày kết thúc vào ngày 2/9/2011.)

Hình 2-5 Thị phần theo phiên bản và thời gian của Android
2.1.4. Lập trình Android
 Đặc tính
25


×