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

Báo cáo đồ án quản lí đề thi trắc nghiệm bằ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 (769.46 KB, 37 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT VINH
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN KHOA HỌC MÁY TÍNH
----------

ĐỒ ÁN MÔN HỌC
LẬP TRÌNH ỨNG DỤNG DI ĐỘNG
TÊN ĐỀ TÀI: Xây dựng ứng dụng APP test trắc
nghiệm trên hệ điều hành Android

Sinh viên (nhóm SV): Lương Thị Hương
Nguyễn Văn Diện
Lớp:
DHCTTCK09Z
Giáo viên hướng dẫn: TS.Hồ Ngọc Vinh

TP Vinh, tháng 12 năm 2017


TRƯỜNG ĐẠI HỌC SPKT VINH

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA CÔNG NGHỆ THÔNG TIN

Độc lập - Tự do - Hạnh phúc

BỘ MÔN: KHOA HỌC MÁY TÍNH

PHIẾU GIAO ĐỒ ÁN MÔN HỌC
MÔN HỌC: PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG


Nhóm sinh viên:
TT

Họ và tên

MSSV

Điện thoại

Email

1

Lương Thị Hương

0905140249

0972662401



2

Nguyễn Văn Diện

0905140768

0164400174
8




Lớp: DHCTTCK09Z: Đại học Công nghệ Thông tin K9
Ngày giao đồ án: ......./...../2017

Ngày hoàn thành:....../..... /2017

1. Tên đề tài: Cài đặt ứng dụng app test trắc ngiệm ( các câu hỏi kiểm tra) trên hệ điều
hành android.
2. Nhiệm vụ đồ án:


Yêu cầu 1: Ngôn ngữ sử dụng: JAVA, máy ảo genimotion, phần mềm
Android Studio, csdl có thể là firefox hoặc sqlite.



Yêu cầu 2: Phân tích yêu cầu và xây dựng phần mềm bao gồm:



o

Mục đích, yêu cầu của ứng dụng

o

Phân tích và xây dựng CSDL

o


Phân tích và xây dựng hệ thống chức năng

Yêu cầu 3: Giao diên người dùng và mỹ thuật:
o

Giao diện dễ sử dụng, có tính khoa học, thân thiện với người dùng

o

Phối màu sắc, font chữ phù hợp

3. Báo cáo và chương trình:
-

Báo cáo thuyết minh trình bày bằng Slide (5-10 slide)

-

Chương trình: ghi vào đĩa CD để nạp

4. Theo dõi quá trình thực hiện đồ án


Ngày
kiểm tra

Tiến độ công việc (yêu cầu ghi rõ Nhận xét của GVHD
các nội dung đã hoàn thành)


Chữ ký của
GVHD

....../...../201
7
....../...../201
7
....../...../201
7
....../...../201
7

5. Điểm hướng dẫn (điểm chữ và số)
…………………………………………………
6. Đồng ý cho bảo vệ hay không đồng ý:
………………………………………………….

TỔ TRƯỞNG BỘ MÔN

GIÁO VIÊN HƯỚNG DẪN

SINH VIÊN THỰC HIỆN

ThS. Vũ Thị Thu Hiền

TS. Hồ Ngọc Vinh

SV.Lương Thị Hương
Nguyễn Văn Diện



NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
TP.Vinh, ngày...... tháng.......năm 2017
GIÁO VIÊN HƯỚNG DẪN
(Ký, ghi rõ họ tên)

TS.Hồ Ngọc Vinh
NHẬN XÉT CỦA GIÁO VIÊN CHẤM ĐIỂM
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
TP.Vinh, ngày........tháng.......năm 2017
GIÁO VIÊN CHẤM ĐIỂM
(Ký, ghi rõ họ tên)


Mục lục

LỜI CẢM ƠN
Với sự phát triển nhanh chóng của khoa học công nghệ và đặc biệt là ngành công
nghệ thông tin, làm từng bước thay đổi cuộc sống của con người bởi các ứng dụng sản

phẩm của công nghệ. Đi cùng với sự phát triển của ngành công nghệ thông tin là sự ra
đời ngày càng nhiều thiết bị cầm tay, smartphone. Nhu cầu của con người về việc sử
dụng và giải trí trên các thiết bị di động cũng ngày càng cao và đa dạng. Một trong
những bộ phận ứng dụng công nghệ thông tin chính là thay đổi và giúp đỡ việc sinh
hoạt hàng ngày của mọi người trong cuộc sống. Vì vậy em đã lựa chọn đề tài “APP
TEST trắc nghiệm” để làm đồ án với ý nghĩa mang tính thực tế.
Với mong muốn người dùng có thể ôn lại những kiến thức mình đã học một cách tốt
nhất, những kiến thức quan trọng và sẽ làm bài đạt kết quả cao trong các kỳ thi…vv!
Trong thời gian làm đồ án em đã gặp không ít khó khăn nhưng được sự giúp đỡ
hướng dẫn tận tình của các thầy giáo,cô giáo trong bộ môn. Em xin chân thành cảm ơn


thầy giáo Hồ Ngọc Vinh – người trực tiếp hướng dẫn đã tận tình hướng dẫn và giúp đỡ
em hoàn thành đồ án.

Nghệ An, ngày........tháng.......năm 2017
Sinh viên

Lương Thị Hương
Nguyễn Văn Diện

CHƯƠNG 1: KHẢO SÁT HỆ THỐNG
1.1.Mô tả hệ thống
1.1.1.Nhiệm vụ cơ bản
- Xây dựng giao diện Menu, giao diện test bài trắc nghiệm
- Thiết kế giao diện cho phép xử lý các chức năng chính
- Thiết kế giao diện chương trình chính thực hiện các công việc:
+ Tổng hợp các câu hỏi (chia ra làm nhiều đề với từng môn cụ thể như:Toán, Sinh,
english….) với các mốc thời gian 30 -45 phút…
+ Kiểm tra những câu đã trả lời – chưa trả lời

+ Tự chấm điểm khi thời gian kết thúc -> Hiển thị kết quả
+ Người làm bài xem bài mình làm, thay đổi đáp án nếu mình thấy là sai -> Xem kết
quả -> Lưu điểm -> Xóa điểm -> Thoát.


+ Xem danh sách điểm những người làm bài có lưu điểm lại (các bài Test qua)
+ Tìm kiếm câu hỏi
1.1.2.Cơ cấu tổ chức
 Hệ thống
 Đăng nhập vào hệ thống sử dụng chương trình
 Quản lý các đề thi các môn học, thêm các đề thi, sửa, xóa, thay đổi các
câu hỏi trong từng đề thi.
 Xem danh sách điểm
 Thoát khỏi người dùng hiện tại: Thoát khỏi hệ thống chương trình.
 Giao diện với người dùng:
 Hiển thị tất cả các môn học
 Hiển thị tất cả các đề thi của từng môn học
 Hiển thị các câu hỏi cho từng đề thi: Có kết thúc giờ làm bài, kiểm tra
kết quả cho từng đề thi.
 Có chức năng tìm kiếm các câu trong trong đề thi.
 Hiển thị danh sách điểm (nếu lưu điểm làm bài).
1.1.3.Quy trình xử lý
 Làm bài test
Bước 1: Vào giao diện chính
Bước 2: Tìm đến môn học mình cần kiểm tra, chọn đề thi làm bài test.
Bước 3: Làm bài kiểm tra và kiểm tra kết qủa
Bước 4: Có thể lưu kết quả (điểm) hoặc không.

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. Tổng quan về UML

2.1.1. UML là gì?
UML là ngôn ngữ mô hình hóa,ngôn ngữ đặc tả và ngôn ngữ xây dựng mô hình
trong quá trình phát triển phần mềm- đặc biệt là phân tích,thiết kế hệ thống hướng
đối tượng.
2.1.2. Các sơ đồ lớp
 Sơ đồ lớp ( Class Diagram)
Mô tả cấu trúc tĩnh, mô tả mô hình khái niệm bao gồm các lớp đối tượng và các
mối quan hệ của chúng trong hệ thống hướng đối tượng. Nó được sử dụng để hiện
thị các lớp và gói các lớp cùng các mối quan hệ của chúng. Sơ đồ lớp giúp người
phát triển phần mềm quan sát và lập kế hoạch cấu trúc hệ thống trước khi lập trình.
Nó đảm bảo rằng hệ thống được thiết kế tốt ngay từ đầu.


Sơ đồ lớp có thể chứa nhiều loại lớp khác nhau, chúng có thể là những lớp thông
thường, lớp tham số hóa, lớp hiện thực, lớp tiện ích, và lớp metaclass ( siêu lớp).
 Sơ đồ đố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, sơ đồ đối tượng là một thể hiện của sơ đồ lớp.
 Sơ đồ Use Case ( Use Case Diagram)

Khái niệm actor: là những người dùng(tác nhân) hay 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.
Sơ đồ 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
 Sơ đồ tuần 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.
 Sơ đồ cộng tác (Collaboration)

Gần giống như sơ đồ Sequence, sơ đồ hợp tác 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 đế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.
 Sơ đồ trạng thái (Statechart)

Chỉ ra một máy chuyển trạng thái, bao gồm các trạng thái, các bước chuyển trạng
thái 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 hợp tác 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).
 Sơ đồ hành động (Activity)

Là một dạng đặc biệt của sơ đồ 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
 Sơ đồ 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 sơ đồ 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.
 Sơ đồ triển khai


Chỉ ra cách bố trí vật lý các thành phần theo kiến trúc được thiết kế của hệ thống.
2.1.3. Kiến trúc của 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:

Hình : Kiến trúc hệ thống
 Use Case view: Mô tả cách ứng xử của hệ thống.
 Logical view: Mô tả các đối tượng.
 Process view: Mô tả việc đồng bộ hoá và các xử lý đồng thời.
 Implementation view: Mô tả sự phụ thuộc và kết hợp giữa các

component.
Deployment view: Chỉ ra cấu hình phần cứng.


2.1.4. Sơ đồ Use Case ( Use Case diagram)
Mô tả toàn cảnh hệ thống, đơn giản và ít ký hiệu
 Mục đích của sơ đồ Use Case
a

Mô hình hoá chuỗi hành động

b

Cung cấp tổng thể hệ thống.

c


Đưa ra cơ sở để xác định giao tiếp giữa người, máy đối với hệ thống.

d

Mô hình hoá cho một Use Case.

e

Cho người dùng hiểu và giao tiếp với hệ thống.

f

Làm cơ sở cho phát thảo các đặc tả kiểm tra.

 Các ký hiệu cơ bản

Khái niệm
Actor

Ký hiệu

Ý nghĩa
Người dùng hệ thống, một hệ thống khác hoặc một
sự kiện thời gian.
Actor có thể: Chỉ cung cấp thông tin cho hệ thống,
chỉ lấy thông tin từ hệ thống, hoặc nhận thông tin từ
hệ thống và cung cấp thông tin cho hệ thống.

Use Case


Là một khối chức năng được thực hiện bởi hệ thống
để mang lại một kết quả có giá trị đối với một Actor
nào đó.
Quy ước đặt tên Use Case: động từ đi trước, danh từ
hoặc cụm từ theo sau.

Relationship

Quan hệ giữa các phần tử trong mô hình, bao gồm
kết hợp (association), tổng quát hoá (generalization).

Include

Một Use Case có thể có chức năng của một Use Case
khác

Extend

Dùng để chỉ các hành vi tự chọn (có thể hoặc không),
các hành vi theo điều kiện nhất định.


2.1.5. Sơ đồ lớp
 Khái niệm
 Đối tượng (Object)

Mô hình hoá một vật hoặc một khái niệm trong thế giới




thực.


Một đối tượng có các đặc điểm như: Trạng thái (state), ứng
xử (behavior), định danh (indentity).

 Lớp (class)


Là tập hợp các đối tượng có chung các thuộc tính, các ứng xử
và ngữ nghĩa.



Là một khuôn mẫu để tạo ra đối tượng.



Đối tượng là một thể hiện của một lớp.

 Gói ( package)

Là tập hợp các lớp hay các gói có liên quan với nhau.



 Sơ đồ lớp ( Class diagram)



Cung cấp một bức tranh mô tả một số hoặc tất cả các lớp trong
mô hình



Thể hiện cấu trúc và ứng xử của một hay nhiều lớp.



Thể hiện mối quan hệ thừa kế giữa các lớp.

 Ký hiệu cơ bản
 Lớp

Tên lớp
Các thuộc tính
Các thao tác

 Mối kết hợp

Tên kết hợp

Hướng kết hợp

Bản số


 Các kiểu lớp

Khái niệm


Ký hiệu

Ý nghĩa

Lớp thực thể

Mô hình hoá các thông tin lưu trữ trong hệ thống.

(Entity class)

Độc lập với các đối tượng xung quanh.

Lớp biên

Giao diện tương tác với hệ thống.

(Boundary
class)
Lớp điều khiển

Thể hiện trình tự ứng xử trong hệ thống.

( Control class)

Điều phối các hoạt động cần thực hiện

2.1.6. Sơ đồ tuần tự
 Sơ đồ tuần tự biểu diễn sự tương tác của các đối tượng theo thứ tự thời
gian.

 Đặc điểm của biểu đồ tuần tự là phản ánh cấu trúc của biểu đồ lớp và thứ

tự tương tác.
 Mục đích
 Lập mô hình tương tác đối tượng.
 Hiện thực hoá Use Case
 Lập mô hình các kịch bản sử dụng của Use Case
 Khám phá tính logic của một phép toán, hàm hay thủ tục phức tạp.
 Các ký hiệu


Đường sinh

Thông tin điệp

Thủ tục
2.2. Môi trường phát triển
2.2.1. Lịch sử về hệ điều hành Android
Android là hệ điều hành trên các thiết bị số di động như smartphone và tablet (và
hiện nay là cả trên một số đầu tư phát HD, HD Player) phát triển bởi Google và dựa
trên nền tảng Linux. Trước đây, Android được phát triển bởi công ty liên hợp Android.
Vào năm 2005, Google đã mua lại Android nằm trong chiến lược tiến vào thị trường di
động. Google muốn Android trở thành nền tảng”mở” và miễn phí. Do vậy hầu hết mã
nguồn của Android được phát hành theo giấy phép mã nguồn mở Apache nên bất cứ ai
muốn sử dụng Android có thể dowload toàn bộ mã nguồn. Hơn nữa các nhà sản xuất
phần cứng có thể thêm các thành phần mở rộng độc quyền của hãng để tạo ra các sản
phẩm khác nhau. Chính mô hình phát triển đơn giản này khiến Android trở nên hấp
dẫn. Android có một cộng đồng những nhà phát triển rất lớn viết các ứng dụng cho hệ
điều hành của mình.
Hiện tại có khoảng 250,000 ứng dụng cho Android OS và vào khoảng 375,000 ứng

dụng đã được đệ trình, điều này khiến Android trở thành hệ điều hành di động có môi
trường phát triển lớn thứ 2. Các nhà phát triển viết ứng dụng cho Android dựa trên
ngôn ngữ Java. Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành
lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần
mềm và viễn thông nhằm mục đích tạo nên một chuẩn mở cho điện thoại di động trong
tương lai. Google công bố hầu hết các mã nguồn của Android theo bản cấp phép
Apache. Hệ điều hành Android bao gồm 12 triệu dòng mã; 3 triệu dòng XML, 2.8 triệu
dòng mã C, 2.1 triệu mã Java và 1.75 triệu dòng mã C++.
Các nhà sản xuất liên tục cho ra những mẫu điện thoại cực kỳ tối tân, mạnh mẽ. Tuy
Symbian chỉ mới được biết đến từ cuối thập niên 90, nhưng tuổi đời phát triển chẳng
thua kém vòng đời phát triển của hệ điều hành Windows đang sử dụng là bao. Tháng
6/1998, Symbian ra đời tại London (Anh), tiền thân của sản phẩm này là một phần


mềm của Psion. Sau đó, lần lượt Nokia, Motorola, Ericsson đều mua cổ phần chung sở
hữu sử dụng nền tảng này.
a Windows Phone 7
Windows Phone 7 là một hệ điều hành di động được phát triển bởi Microsoft, và
là sự kế thừa để bởi nền tảng Windows Mobile. Ra mắt tại châu Âu, Singapore và Úc
vào ngày 21 Tháng Mười năm 2010, tại Mỹ và Canada vào ngày 08 Tháng Mười Một
năm 2010, với châu Á có thể trong năm 2011.Với Windows Phone 7, Microsoft cung
cấp một Metro giao diện người dùng mới, tích hợp các hệ điều hành với các dịch vụ
khác của Microsoft và kế hoạch kiểm soát chặt chẽ phần cứng mà chạy trên nền tảng
này.
b IOS
IOS là hệ điều hành của Apple. Ban đầu được cài trên điện thoại Iphone, sau đó
phát triển và trở thành hệ điều hành trên ipod touch, ipad và Apple tv. Apple không có
phép hệ điều hành này chạy trên phần cứng của bên thứ 3.
c BlackBerry
Giống như Windows Mobile, những chiếc BlackBerry của RIM được chỉ định là

thiết bị dành cho doanh nhân, nhưng gần đây đã có những thay đổi để hướng tới người
dùng bình dân. Nền tảng này tương đối trực quan và dễ sử dụng, cung cấp cho người
dùng một server e-mail, hỗ trợ việc gửi và nhận tin nhắn nhanh.
2.2.2.Tổng quan cấu trúc của Android
Nói một cách đơn giản thì Android bao gồm ba thành phần:
1.Một hệ điều hành mở, miễn phí cho các thiết bị di động.
2.Một nền tảng mã nguồn mở cho phát triển các ứng dụng.
3.Thiết bị chạy hệ điều hành Android và các ứng dụng Adroid.
Android software development kit (SDK):
Bộ SDK của Android bao gồm mọi thứ cần thiết để có thể lập trình, debug, test ứng
dụng Android.
Android API: Cốt lõi của bộ SDK là thư viện các hàm API và Google cũng chỉ sử
dụng bộ API này để xây dựng các ứng dụng có sẵn cho Android.
Development tool: SDK bao gồm rất nhiều công cụ để giúp biên dịch, sửa lỗi và hỗ
trợ trong việc lập trình ứng dụng.
Android Emulator: Trình giả lập thiết bị chạy Android thực sự với nhiều Skin thay
thế, cực kì tiện lợi cho việc test ứng dụng Android ngay trên máy tính mà không cần
phải thông qua một thiết bị chạy Android thực.
Tài liệu: SDK bao gồm một bộ tài liệu rất chi tiết, giải thích cặn kẽ chính xác những gì
bao gồm trong mỗi page, class cùng với cách sử dụng. Ngoài tài liệu về “code”, còn có
những tài liệu dùng để “getting started” và giải thích các nguyên tắc và cơ chế hoạt
động của ứng dụng trong Android.


Code mẫu: SDK bao gồm các ứng dụng mẫu đơn giản minh họa cho các tính năng nổi
bật trên android, cũng như các ứng dụng demo cách sử dụng các tính năng của bộ API.
Kiến trúc ứng dụng:
Ý tưởng của Android là việc khuyến khích tái sử dụng lại các thành phần đã có,
cho phép ứng dụng có thể chia sẻ Activity, Service, dữ liệu với các ứng dụng khác
nhau trong giới hạn đặt ra.

Sau đây là kiến trúc của mọi ứng dụng Android:
Activity Manager: Kiểm soát vòng đời của Activity.
View: Xây dựng giao diện người dùng cho Activity.
Notification Manager: Cung cấp một cơ chế thống nhất và an toàn để ứng dụng có thể
đưa ra các thông báo cho người dùng.
Content Provider: Giúp trao đổi và chia sẽ dữ liệu giữa các ứng dụng với nhau.
Resource Manager: Hỗ trợ quản lý các tài nguyên không là code như các chuỗi, hình
ảnh, và âm thanh…
Các thư viện của Android:
Android cung cấp các gói API để phát triển ứng dụng. Sau đây là các API mà
tất cả các thiết bị Android đều tối thiểu phải hỗ trợ để giúp cho chúng ta một cái nhìn
tổng quát về thư viện này.
Android.util: Gói API lõi, chứa các class cấp thấp như container, string formatter,
XML parsing.
Android.os: Truy cập tới chức năng của hệ điều hành như gửi và nhận tin nhắn, giao
tiếp nội bộ giữa các ứng dụng, thời gian…
Android.graphics: Cung cấp các lớp liên quan tới xử lý đồ họa ở mức thấp. Hỗ trợ các
hàm cơ bản như vẽ điểm, vẽ miền, tô màu, trên khung canvas.
Android.text: Cung cấp các hàm phân tích và xử lý chuỗi.
Android.database: Cung cấp các lớp cấp thấp cần thiết để làm việc với database.
Android.content: Dùng để quản lý các tài nguyên, các nội dung và các gói.
Android.view: Views là lớp cha của mọi lớp giao diện người dùng.
Android.widget: Được thừa kế từ lớp View, bao gồm các lớp cơ bản để xây dựng giao
diện widget như: list, button, layout..
Android.map: Gói API cấp cao, dùng để truy cập tới các chức năng của GoogleMap.
Android.app: Gói API cấp cao, bao gồm các Activity và Service – hai lớp cơ sở cho
mọi ứng dụng Android.
Android.telephony: Cung cấp khả năng tương tác trực tiếp với các chức năng cơ bản
của một điện thoại như nghe, gọi, tin nhắn
Android.webkit: Cung cấp một webView control trên nền webkit để có thể nhúng ứng

dụng, cùng với các API điều khiển cơ bản như stop, refresh, cookieManager…


2.2.3. Dalvik delving với máy ảo
Dalvik là máy ảo giúp các ứng dụng Java chạy được trên các thiết bị di động
Android. 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 sau khi đến thăm
một ngôi làng đánh cá nhỏ có tên là Dalvík ở đảo Eyjafjörður, nơi mà tổ tiên của ông
sinh sống.
Từ góc nhìn của một nhà phát triển thì 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, sẽ thực hiện các đoạn mã trong môi trường Java. Sau đó,
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à dex. Đây là
công cụ dùng để chuyển đổi byteCode sang một dạng gọi là dex bytecode. Dex là từ
viết tắc của “Dalvik executable” đóng vai trò như cơ chế thực thi các ứng dụng Java.
2.2.4. Các thành phần trong ứng dụng Android
Android project là một hệ thống thư mục file chứa toàn bộ source code, tài
nguyên… mà mục đích cuối cùng là để đóng gói thành một file .apk duy nhất.
Trong một thư mục project, có một số thành phần (file, thư mục con) được tạo
ra mặc định, còn lại phần lớn sẽ được tạo ra sau nếu cần trong phát triển ứng dụng.


Các thành phần trong một Android project
 Src/: Chứa toàn bộ source code (file .java hoặc .aidl)
 Bin/: Thư mục chứa file Output sau khi build. Đây là nơi có thể tìm thấy file .apk
 Gen/: Chứa file .java tạo ra bởi ADT plug-in, như là file R.java hoặc các giao diện tạo
ra từ file AIDL.
 Res/: Chứa các tài nguyên (resource) cho ứng dụng chẳng hạn như file hình ảnh, file

-

layout, các chuỗi (string)…Dưới đây là các thư mục con của nó.
Anim/: Chứa các file .xml dùng cho việc thiết lập các hiệu ứng động (animation).
Color/: Chứa các file .xml dùng định nghĩa màu sắc.
Drawable/: Chứa hình ảnh (png, jpeg, gif), file .xml định nghĩa cách vẽ các loại hình
dạng khác nhau (shape).
Layout/: Chứa file .xml dùng để xây dựng giao diện người dùng.
Menu/: Chứa file .xml quy định application menu.
Raw/: Chứa các file media, chẳng hạn như .mp3, .ogg
Values/: Chứa file .xml định nghĩa các giá trị. Khác với các resource trong thư mục
khác, resource ở thư mục này khi định danh trong lớp R thì sẽ không sử dụng file
name để định danh mà sẽ được định danh theo quy định bên trong file .xml đó.


Xml/: Dùng chứa các file .xml khác, chẳng hạn như file .xml quy định app widget,
search metadata,…
 Libs/: Chứa các thư viện riêng.
 AndroidManifest.xml/: File kiểm soát các thành phần trong ứng dụng như: activity,
-

service, intent, receiver… tương tác với nhau, cách ứng dụng tương tác với ứng dụng
khác, cũng như đăng kí các quyền hạn về sử dụng tài nguyên trong máy.
 Build.properties/: Tùy chỉnh các thiết lập cho hệ thống build, nếu bạn sử dụng Eclipse
thì file này không cần thiết.
 Build.xml/: Chỉ sử dụng khi dùng dòng lệnh để kiến tạo project.
 Default.properties/: File này chứa các thiết lập cho project, chẳng hạn như build
target, min SDK.
2.3. Ngôn ngữ lập trình java
2.3.1. Giới thiệu


Java là một ngôn ngữ lập trình dạng lập trình hướng đối tượng(OOP). Khác với
phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy
hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành
bytecode, bytecode sau đó sẽ được môi trường thực thi chạy. Bằng cách này, Java
thường chạy chậm hơn những ngôn ngữ lập trình thông dịch khác như C++, PHP, C#...
Vào năm 1991, một nhóm các kỹ sư của Sun Microsystems có ý định thiết kế một
ngôn ngữ lập trình để điều khiển các thiết bị điện tử như tivi, máy giặt, lò nướng...Mặc
dù C và C++ có khả năng làm việc này nhưng trình biên dịch lại phụ thuộc vào từng
loại CPU.
Trình biên dịch thường phải tốn nhiều thời gian để xây dựng nên rất đắt, vì vậy để
mỗi loại CPU có một trình biên dịch riêng là rất tốn kém. Do đó nhu cầu thực tế đòi
hỏi một ngôn ngữ chạy nhanh, gọn, hiệu quả và độc lập thiết bị tức là có thể chạy trên
nhiều loại CPU khác nhau, dưới các môi trường khác nhau. “Oak” đã ra đời và vào
năm 1995 được đổi tên thành Java.
2.3.2. Đặc trưng ngôn ngữ JAVA
 Đơn giản:


Những người thiết kế mong muốn phát triển một ngôn ngữ dễ học và quen
thuộc với đa số người lập trình. Do vậy Java loại bỏ các đặc trưng phức tạp của
C và C++ như:
 Loại bỏ thao tác con trỏ, thao tác định nghĩa chồng toán tử.
 Không cho phép đa kế thừa mà sử dụng các giao diện.
 Không sử dụng lệnh “goto” cũng như file header.
 Loại bỏ cấu trúc “struct” và “union”.
 Hướng đối tượng:
Java là ngôn ngữ lập trình thuần hướng đối tượng, mọi chương trình viết trên
Java đều phải được xây dựng trên các đối tượng. Nếu trong C/C++ ta có thể tạo
các hàm (chương trình con không gắn với đối tượng nào) thì trong Java ta chỉ

có thể tạo ra các phương thức. Trong Java không cho phép các đối tượng có tính
năng kế thừa mà được thay thế bằng các giao diện.
 Độc lập với hệ nền
Mục tiêu chính của các nhà thiết kế java là độc lập với hệ nền hay còn gọi là độc
lập phần cứng và hệ điều hành. Đây là khả năng một chương trình được viết tại một
máy nhưng có thể chạy được bất kỳ đâu. Các chương trình viết bằng java có thể chạy
trên hầu hết các hệ nền mà không cần phải thay đổi gì, điều này đã được những người
lập trình đặt cho nó một khẩu hiệu ‘viết một lần, chạy mọi nơi’, điều này là không thể
có với các ngôn ngữ lập trình khác. Xây dựng ứng dụng quản lí sổ tiêm chủng của trẻ
em.
 Hỗ trợ lập trình đa tuyến
Đây là tính năng cho phép viết một chương trình có nhiều đoạn mã lệnh được chạy
song song với nhau. Với java ta có thể viết các chương trình có khả năng chạy song
song một cách dễ dàng, hơn thế nữa việc đồng bộ tài nguyên dùng chung trong Java
cũng rất đơng giản. Điều này là không thể có đối với một số ngôn ngữ lập trình khác
như C/C++, pascal …
 Phân tán
Java hỗ trợ đầy đủ các mô hình tính toán phân tán: mô hình client/server, gọi thủ
tục từ xa… 1.1.2.6. Hỗ trợ internet.
Mục tiêu quan trọng của các nhà thiết kế java là tạo điều kiện cho các nhà phát
triển ứng dụng có thể viết các chương trình ứng dụng internet và web một cách dễ
dàng, với java ta có thể viết các chương trình sử dụng các giao thức TCP, UDP một
cách dễ dàng, về lập trình web phía máy khách java có công nghệ java applet, về lập
trình web phía máy khách java có công nghệ servlet/JSP, về lập trình phân tán java có
công nghệ RMI, CORBA, EJB, Web Service.
 Thông dịch


Các chương trình java cần được thông dịch trước khi chạy, một chương trình java
được biên dịch thành mã byte code mã độc lập với hệ nền, chương trình thông dịch

java sẽ ánh xạ mã byte code này lên mỗi nền cụ thể, điều này khiến java chậm chạp đi.
2.4. SQLITE
2.4.1. sqlite là gì?
Nói một cách đơn giản SQLite là phần mềm quản lý cơ sở dữ liệu (DBMS) tương tự
như 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 400kB, không cần cài đặt, không cần cấu hình
hay khởi động mà có thể sử dụng 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.
SQLite không thích hợp với những hệ thống lớn nhưng ở quy mô vừa tầm thì SQLite
phát huy uy lực và không hề yếu kém về mặt chức năng hay tốc độ. Với các đặc điểm
trên SQLite được sử dụng nhiều trong việc phát triển, thử nghiệm … và là sự lưa chọn
phù hợp cho những người bắt đầu học Database.
SQLite Engine không là một Standalone Process giống như các cơ sở dữ liệu khác,
bạn có thể liên kết nó một cách tĩnh hoặc một cách động tùy theo yêu cầu với ứng
dụng của bạn. SQLite truy cập các file lưu giữ của nó một cách trực tiếp.
2.4.2 Tại sao lại sử dụng sqlite
- SQLite không yêu cầu một tiến trình Server riêng rẽ để hoạt động.
- SQLite không cần cấu hình, nghĩa là không cần thiết phải cài đặt.
- Một SQLite Database đầy đủ được lưu giữ trong một disk file đơn.
- SQLite là rất nhỏ gọn, nhỏ hơn 400kB đã đươc cấu hình đầy đủ hoặc nhỏ hơn 250kB
khi đã bỏ qua các tính năng tùy ý.
- SQLite là tự chứa, nghĩa là không có sự phụ thuộc vào ngoại vi.
- Các Transaction trong SQLite là tuân theo đầy đủ chuẩn ACID, đảm bảo truy cập an
toàn từ nhiều tiến trình hoặc thread.
- SQLite hỗ trợ hầu hết các tính năng của một ngôn ngữ truy vấn trong chuẩn SQL92.
- SQLite được viết bằng ANSI-C và cung cấp API đơn giản và dễ dàng sử dụng.
- SQLite là có sẵn trên UNIX (Linux, Mac OS-X, Android, iOS) và Windows (Win32,
WinCE, WinRT).
2.4.3. Lịch sử của sqlite
- Năm 2000: D.Richard Hipp đã thiết kế SQLite với mục đích không cần quản trị để

điều hành một chương trình.
- Vào tháng 8, SQLite 1.0 được công bố với GNU Database Manager.
- Năm 2011: Hipp bổ sung UNQI Interface cho SQLite DB và để phát triển UNQLite
(là một Document Oriented Database).
2.4.4. Hạn chế của sqlite


SQLite không hỗ trợ một số tính năng của chuẩn SQL92, bao gồm:
Đặc điểm

Miêu tả

RIGHT
OUTER
JOIN

Chỉ có LEFT OUTER JOIN được triển khai

FULL
OUTER
JOIN

Chỉ có LEFT OUTER JOIN được triển khai

ALTER
TABLE

Các biến thể RENAME TABLE và ADD COLUMN của lệnh
ALTER TABLE được hỗ trợ. Trong khi DROP COLUMN, ALTER
COLUMN, ADD CONSTRAINT không được hỗ trợ


Hỗ trợ
Trigger

Hỗ trợ FOR EACH ROW trigger nhưng không hỗ trợ FOR EACH
STATEMENT

VIEWs

View trong SQLite là read-only. Bạn không thể thực thi một lệnh
DELETE, INSERT, hoặc UPDATE trên một View

GRANT và
REVOKE

Chỉ hỗ trợ các quyền truy cập mà áp dụng trên normal file dưới hệ
điều hành

2.4.5. Lệnh trong sqlite
Các lệnh SQLite chuẩn để tương tác với Cơ sở dữ liệu quan hệ là giống như SQL.
Chúng là CREATE, SELECT, INSERT, UPDATE, DELETE và DROP. Những lệnh
này có thể được phân chia thành 3 nhóm tùy theo tính năng hoạt động của chúng:
Nhóm DDL (Data Definition Language)
Lệnh

Miêu tả

CREATE

Tạo một bảng mới, một View của một bảng hoặc đối tượng khác

trong Database

ALTER

Sửa đổi một đối tượng cơ sở dữ liệu đang tồn tại, ví dụ một bảng

DROP

Xóa cả một bảng, một View của một bảng hoặc đối tượng khác
trong Database

Nhóm DML (Data Manipulation Language)
Lệnh

Miêu tả


INSERT

Tạo một bản ghi

UPDATE

Sửa đổi các bản ghi

DELETE

Xóa các bản ghi

Nhóm DQL (Data Query Language)

Lệnh

Miêu tả

SELECT

Lấy các bản ghi cụ thể từ một hoặc nhiều bảng

CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
3.1.Phân tích hệ thống về chức năng
3.1.1. Biều đồ lớp
 Biểu đồ lớp tổng quát


Hình 1: Biểu đồ lớp tổng quát
 Hệ thống

Hình 2: Biều đồ lớp hệ thống
 Chọn đề thi

Hình 3: Biểu đồ lớp chọn đề thi
 Môn học

Hình 4: Biều đồ lớp môn học

 Cập nhật đề thi

Hình 5: Biều đồ lớp cập nhật đề thi

 Làm bài thi



Hình 6:Biều đồ lớp làm bài thi

3.1.2.Biều đồ ca sử dụng
 Tổng quát

Hình 7: Biều đồ ca sử dụng tổng quát
 Cập nhật môn

Hình 8: Biều đồ ca sử dụng cập nhật môn

 Cập nhật đề thi

Hình 9: Biều đồ ca sử dụng cập nhật đề

 Cập nhật câu hỏi


Hình 10: Biều đồ CSD cập nhật câu hỏi

 Cập nhật đáp án

Hình 11: Biều đồ CSD cập nhật đáp án

 Tìm kiếm

Hình 12:Biều đồ CSD tìm kiếm

3.1.3.Biểu đồ tuần tự

 Mở hệ thống


×