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

Xây dựng mô hình tìm việc làm cho sinh viên

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.73 MB, 57 trang )

LỜI CẢM ƠN
Không có sự thành công nào mà không có sự dìu dắt của thầy cô. Trong suốt
quá trình thực tập vừa qua, em xin chân thành cảm ơn các thầy cô, các bạn, các
doanh nghiệp và đặc biệt là thầy Bùi Anh Tú bộ môn CNPM đã hết mình giúp đỡ
em những lúc khó khăn nhất của đề tài. Để cảm ơn công lao đó, em đã lỗ lực cố
gắng hết mình hoàn thành những kết quả cao nhất của đề tài.
Đề tài này sau khi hoàn thiện chắc chắn giải quyết một phần vấn đề kết nối
sinh viên và doanh nghiệp em cũng sẽ xin cấp giấy phép GNU cho đề tài này để
chuyển đề tài từ nguồn đóng sang nguồn mở. Như vậy, một phần là chia sẻ mã
nguồn tới những cá nhân, tổ chức đang cần đến, một phần là cơ hội để đề tài được
cộng đồng chung sức giúp đỡ, phát triển tăng khả năng ứng dụng cũng như giải
quyết các nhu cầu xã hội.
Trong quá trình hoàn thiện có thể còn có sơ sót, em rất mong thầy và các
bạn đóng góp thêm để đề tài được hoàn thiện.
Một lần nữa em kính chúc thầy và gia đình dồi dào sức khỏe, thành công
trong sự nghiệp trồng người cao quý.
Em xin cảm ơn !
Thái Nguyên, ngày 08 tháng 06 năm 2016
Sinh viên

Nguyễn Bá Cường

1


LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi và được sự
hướng dẫn khoa học của Ths. Bùi Anh Tú. 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 số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá
được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu


tham khảo.
Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệu
của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc.
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội
dung đồ á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 tôi gây ra trong quá trình
thực hiện nếu có.
Thái Nguyên, ngày 08 tháng 06 năm 2016
Sinh viên

Nguyễn Bá Cường

2


MỤC LỤC
LỜI CẢM ƠN .....................................................................................................1
MỤC LỤC ..........................................................................................................3
TỔNG QUAN VỀ ĐỀ TÀI .................................................................................6
Tình hình nghiên cứu liên quan ...........................................................................6
Tính cấp thiết của đề tài.......................................................................................6
Mục đích nghiên cứu...........................................................................................6
Công nghệ và nền tảng sử dụng ...........................................................................7
Phạm vi thực hiện................................................................................................7
Nội dung nghiên cứu ..........................................................................................8
Sản phẩm địa chỉ và ứng dụng.............................................................................8
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ....................................................................9
1.1. Android là gì?...............................................................................................9
1.1.1. Sơ lược về nền tảng Android .................................................................9
1.1.2. So sánh một số nền tảng khác ..............................................................10

1.1.3. Lựa chọn nền tảng Android .................................................................13
1.2 Cơ bản về phân tích thiết kế hướng đối tượng với UML ..............................13
1.2.1. Khái niệm về Phân tích và thiết kế hướng đối tượng (Object Oriented
Analysis and Design: OOAD) ...........................................................................14
1.2.2. Khái niệm về UML (Unified Modeling Language) ..............................14
1.2.3. Tại sao lại là OOAD và UML? ............................................................14
1.2.4. OOAD sử dụng UML..........................................................................14
1.3 Website tìm việc làm ...................................................................................18
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ.......................................................19
2.1. Phân tích yêu cầu........................................................................................19
2.1.1. Yêu cầu người sử dụng........................................................................19
2.1.2. Yêu cầu chức năng của phần mềm.......................................................19
2.1.3. Yêu cầu mặt phi chức năng của phần mềm ..........................................20
2.2. Đặc tả yêu cầu ............................................................................................20
2.2.1. Các tác nhân ........................................................................................20
2.2.2 Đặc tả Use Case ...................................................................................21

3


2.2.3 Biểu đồ UseCase ..................................................................................21
2.2.4 Biểu đồ trạng thái .................................................................................29
2.2.5 Biểu đồ lớp...........................................................................................32
2.2.6 Biểu đồ trình tự ....................................................................................33
2.3. Thiết kế cơ sở dữ liệu .................................................................................35
CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH ..................................................36
3.1. Mô hình xây dựng chung........................................................................36
3.2 Mô hình MVC trên server .......................................................................38
3.3 Mô hình 3 layer thiết kế trên mobile........................................................40
3.4. Gửi và nhận dữ liệu giữa server và mobile..............................................44

3.5. Cơ chế gửi thông điệp theo thời gian thực ..............................................46
3.6. Giao diện phần mềm...............................................................................50
KẾT LUẬN.......................................................................................................53
TỰ ĐÁNH GIÁ ................................................................................................54
HƯỚNG PHÁT TRIỂN ....................................................................................55
TÀI LIỆU THAM KHẢO .................................................................................56
LỜI NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ........................................57

4


DANH MỤC HÌNH
Hình 1.1 Các góc nhìn của OOAD ....................................................................15
Hình 1.2 Các bản vẽ của OOAD........................................................................16
Hình 1.3 Ký hiệu UseCase (Trường hợp sử dụng) .............................................17
Hình 1.4 Ký hiệu class (lớp ).............................................................................17
Hình 1.5 Ký hiệu Actor (tác nhân).....................................................................18
Hình 2.1 Biểu đồ usecase đăng nhập và đăng ký ...............................................22
Hình 2.2 Biểu đồ use case tìm việc làm .............................................................23
Hình 2.3 Biểu đồ usecase nộp hồ sơ ..................................................................24
Hình 2.4 Biểu đồ usecase quản lý việc làm........................................................25
Hình 2.5 Biểu đồ usecase quản lý hồ sơ xin việc ...............................................26
Hình 2.6 Biểu đồ usecase thông báo ..................................................................28
Hình 2.7 Biểu đồ trạng thái nộp hồ sơ ...............................................................29
Hình 2.8 Biểu đồ trạng thái quản lý hồ sơ xin việc ............................................30
Hình 2.9 Biểu đồ trạng thái quản lý việc làm.....................................................30
Hình 2.10 Biểu đồ trạng thái thông báo .............................................................31
Hình 2.11 Biểu đồ trạng thái tìm việc làm .........................................................31
Hình 2.12 Biểu đồ lớp thể hiện quan hệ xử lý dữ liệu giữa các lớp ....................32
Hình 2.13 Biểu đồ trình tự nộp hồ sơ.................................................................33

Hình 2.14 Biểu đồ trình tự quản lý việc làm ......................................................33
Hình 2.15 Biểu đồ trình tự thông báo.................................................................34
Hình 2.16 Biểu đồ trình tự tìm việc làm.............................................................34
Hình 2.17 Cơ sở dữ liệu ....................................................................................35
Hình 3.1 Mô hình mạng.....................................................................................36
Hình 3.2 Mô hình MVC trên Server ..................................................................38
Hình 3.3 Biểu đồ trình tự của mô hình MVC.....................................................39
Hình 3.4 Mô hình tổ chức MVC trên server của hệ thống JOB..........................41
Hình 3.5 Mô hình 3 layer...................................................................................42
Hình 3.6 Hình mẫu cách tổ chức mô hình 3 layer ..............................................44
Hình 3.7 Hình vẽ kiến trúc của GCM ................................................................47
Hình 3.8 Mô hình GCM ....................................................................................49

5


TỔNG QUAN VỀ ĐỀ TÀI
Tình hình nghiên cứu liên quan
Hiện nay, lĩnh vực công nghệ thông tin tại Việt Nam đang được rất nhiều nhà
đầu tư quan tâm và tạo những cú huých cho đà phát triển mạnh. Trong đó là những
ý tưởng khởi nghiệp, những dự án mang tầm quốc gia cũng như những dự án nhỏ lẻ
ngày càng xuất hiện nhiều. Mô hình website tìm kiếm việc làm kết nối doanh
nghiệp và người xin việc xuất hiện rất nhiều với các hình thức tiếp cận khác nhau.
Một số website hay ứng dụng tiêu biểu trong lĩnh vực này có thể nhắc đến là
freelancerviet.com, timviecnhanh.com, jobstreet.vn, vietnamwork.com,....
Tính cấp thiết của đề tài
Hàng năm các cử nhân, kỹ sư mọi lĩnh vực tốt nghiệp rất nhiều song lại làm
trái ngành nghề hoặc không tìm được việc làm. Trước thực trạng đó các trường đại
học đã có những bước tiến trú trọng nhiều hơn về chất lượng đào tạo cũng như xây
dựng cầu nối doanh nghiệp và sinh viên. Tại trường Đại học Công nghệ Thông Tin

và Truyền thông cũng đã có các chương trình hợp tác lâu dài với các doanh nghiệp
cũng như các chương trình hỗ trợ việc làm cho sinh viên.
Là sinh viên, ngoài việc học trên lớp cũng như chuẩn bị hành trang bước vào
con đường lập nghiệp thì cũng không ít sinh viên mong muốn đi làm thêm với
những việc thời vụ để trang trải sinh hoạt cũng như rèn luyện kỹ năng làm việc
trước khi làm đúng chuyên môn. Mặc dù nhu cầu rất cao song phía nhà tuyển dụng
lại không nắm bắt được thông tin nên vẫn gặp trở ngại giữa việc tìm người làm của
doanh nghiệp.
Trước thực tế đó, dự án cổng thông tin sinh viên đã ra đời với nhiều tính ứng
dụng khác nhau, trong đó có ứng dụng tìm kiếm việc làm, kết nối sinh viên và nhà
tuyển dụng. Đây là một mô hình kết nối nhà tuyển dụng và sinh viên trong trường.
Không chỉ tuyển dụng các công việc lâu dài mà mô hình này còn cho phép đăng tải
các thông tin công việc thời vụ phục vụ nhu cầu của sinh viên.
Mục đích nghiên cứu
Mô hình tìm kiếm việc làm cho sinh viên với mong muốn kết nối sinh viên
và doanh nghiệp cũng như các nhà tuyển dụng thời vụ khác nhau. Mô hình này vừa

6


giúp sinh viên tiếp cận nhanh với các công việc cũng vừa giúp nhà tuyển dụng tiết
kiệm chi phí tuyển dụng và dễ tiếp cận đối tượng hơn các phương pháp khác.
Đặc biệt mô hình này góp phần xây dựng cầu nối sinh viên với doanh nghiệp
tại trường Đại học Công nghệ Thông tin và Truyền thông.
Phương pháp nghiên cứu, phạm vi nghiên cứu
Phương pháp nghiên cứu:
+ Phương pháp điều tra (điều tra ý kiến, nhu cầu sinh viên)
+ Phương pháp phân tích và tổng hợp lý thuyết
+ Phương pháp lịch sử (Khảo sát các mô hình tuyển dụng, các website giới
thiệu việc làm,...)

+ Phương pháp thực nghiệm khoa học.
Phạm vi nghiên cứu: Mô hình tìm việc làm cho trường Đại học Công nghệ
Thông tin và Truyền thông.
Công nghệ và nền tảng sử dụng
Trong xu thế phát triển của xã hội, điện thoại thông minh góp phần đưa thế
giới gần lại với chúng ta hơn bởi nó không chỉ còn chức năng nghe gọi mà còn có
các phần mềm tiện ích như nghe nhạc, xem phim thậm chí là các phần mềm phục vụ
cho công việc phức tạp.... Hiện nay, tỉ lệ người dùng điện thoại thông minh ở Việt
Nam cũng như trên thế giới không hề nhỏ, trong số đó điện thoại chạy hệ điều hành
Android chiếm hơn 83% thị phần thế giới. Chính vì vậy, nền tảng sử dụng trong giai
đoạn đầu tiên là Android. Tuy nhiên ứng dụng này được xây dựng phần kiến trúc
chủ đạo trên server bằng ngôn ngữ PHP với mô hình MVC
Phạm vi thực hiện
Qua tìm hiểu và khảo sát các mô hình đang hoạt động cũng như ý kiến sinh
viên, mô hình tìm việc làm sẽ có các chức năng chính sau:
- Đề xuất việc làm dựa theo sở thích, kỹ năng sinh viên
- Cho phép tìm các việc làm thời vụ và lâu dài
- Hỗ trợ tạo hồ sơ theo form mẫu
- Tự động cập nhật các thông báo
- Quản lý và theo dõi các hồ sơ
- Doanh nghiệp có thể theo dõi tình hình nộp hồ sơ
- Hỗ trợ phản hồi các thông báo giữa doanh nghiệp và người dùng

7


Nội dung nghiên cứu
STT Nội dung công việc
Thiết kế mô hình,
1


phân tích chức năng
của mô hình việc làm

2

4

Kết quả dự kiến đạt được
Hoàn thiện được mô hình Job
việc làm

Thiết kế giao diện

Hoàn thiện thiết kế giao diện

trên mobile

trên mobile

Xây dựng chương

Hoàn thiện một số chức năng

trình

chính của Job

Người phụ trách


Nguyễn Bá Cường

Nguyễn Bá Cường

Nguyễn Bá Cường

Sản phẩm địa chỉ và ứng dụng
Sản phẩm phần mềm là Job việc làm trên điện thoại Android được ứng dụng
tại trường đại học Công nghệ Thông tin & Truyền thông Thái Nguyên.

8


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1. Android là gì?
1.1.1. Sơ lược về nền tảng Android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho
các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính
bảng. Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài
chính từ Google và sau này được chính Google mua lại vào năm 2005. Android ra
mắt vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: một
hiệp hội gồm các công ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy
mạnh các tiêu chuẩn mở cho các thiết bị di động. Chiếc điện thoại đầu tiên chạy
Android được bán vào tháng 10 năm 2008.
Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép
Apache. Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã
cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết
được điều chỉnh và phân phối Android một cách tự do. Ngoài ra, Android còn có
một cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức
năng của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi. Vào tháng 10

năm 2012, có khoảng 700.000 ứng dụng trên Android, và số lượt tải ứng dụng từ
Google Play, cửa hàng ứng dụng chính của Android, ước tính khoảng 25 tỷ lượt.
Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh
phổ biến nhất thế giới, vượt qua Symbian vào quý 4 năm 2010, và được các công ty
công nghệ lựa chọn khi họ cần một hệ điều hành không nặng nề, có khả năng tinh
chỉnh, và giá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu. Kết
quả là mặc dù được thiết kế để chạy trên điện thoại và máy tính bảng, Android đã
xuất hiện trên TV, máy chơi game và các thiết bị điện tử khác. Bản chất mở của
Android cũng khích lệ một đội ngũ đông đảo lập trình viên và những người đam mê
sử dụng mã nguồn mở để tạo ra những dự án do cộng đồng quản lý. Những dự án
này bổ sung các tính năng cao cấp cho những người dùng thích tìm tòi hoặc đưa
Android vào các thiết bị ban đầu chạy hệ điều hành khác.
Android chiếm 85% thị phần điện thoại thông minh trên toàn thế giới vào
thời điểm quý 4 năm 2014, với tổng cộng hơn 600 triệu thiết bị đã được kích hoạt

9


và 1,3 triệu lượt kích hoạt mỗi ngày. Sự thành công của hệ điều hành cũng khiến nó
trở thành mục tiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong
cái gọi là "cuộc chiến điện thoại thông minh" giữa các công ty công nghệ.
1.1.2. So sánh một số nền tảng khác
Tổng số thiết bị:
Trước khi đi sâu vào các đặc điểm cụ thể của mỗi hệ điều hành, một trong
những điểm quan trọng nhất là số thiết bị chạy hệ điều hành đó. Nền tảng Android
vốn được phân phối tự do nên có số lượng thiết bị lớn nhất, trong thực tế khó thống
kê được chính xác con số này. Hiện tại, có hàng trăm thiết bị Android của các hãng
sản xuất lớn như: Samsung, Motorola, HTC, LG, Sony Ericsson, Acer, Asus,
Amazon, Barnes & Noble, Toshiba.
Tổng số ứng dụng:

iOS dẫn đầu về số lượng ứng dụng. Điều này không chỉ có nghĩa số lượng
ứng dụng tại App Store nhiều hơn trên Android Market, mà iOS còn có nhiều ứng
dụng chất lượng hơn, và ít ứng dụng "rác" hơn Android Market. Điều này có thể sẽ
thay đổi khi một lượng lớn các thiết bị Android đang trên đà chiếm đa số thị phần.
Marketplace của Windows Phone là "non trẻ" nhất và chưa được sử dụng
rộng rãi như iOS và Android. Số lượng hơn 50.000 của Windows Phone vẫn còn rất
"khiêm tốn".
Hỗ trợ ứng dụng chưa phê duyệt:
Người dùng bình thường có thể không lo lắng về vấn đề này, nhưng nếu bạn
chú ý đến quyền tự do cài đặt phần mềm, đây sẽ là điểm đáng lưu ý.
Apple và Microsoft đều áp dụng chiến lược "walled garden" (bức tường bảo
mật), theo đó các ứng dụng cần trải qua một quy trình phê duyệt trước khi được
hoạt động trên các thiết bị iOS hoặc Windows Phone. Trong khi đó, Android
Market mở cửa cho hầu hết các ứng dụng (tất nhiên trừ những nội dung bị phát hiện
chứa mã độc), bạn có thể cài đặt các ứng dụng thứ ba bằng cách tải về từ mạng
Internet.
Để tải các ứng dụng chưa kiểm duyệt về iOS hoặc Windows Phone, bạn phải
tiến hành jailbreak (bẻ khóa thiết bị). Một số ứng dụng Android cũng cần "root"
(chiếm quyền quản trị gốc) thiết bị trước khi cài đặt.

10


4G:
Hiện tại Android đang là "ông vua" 4G với chiếc điện thoại 4G đầu tiên là
HTC EVO 4G, và điện thoại LTE đầu tiên là HTC Thunderbolt. Ngoài ra còn rất
nhiều các sản phẩm khác. Windows Phone có 3 thiết bị 4G, đó là Samsung Focus S
4G, Samsung Focus Flash 4G, và HTC Radar 4G.
Phiên bản iPhone tiếp theo (thường được gọi là iPhone 5) có khả năng sẽ hỗ
trợ LTE, và các dòng sản phẩm Windows Phone cũng sẽ theo xu hướng này. Một

nhược điểm rất lớn của các thiết bị LTE hiện tại là chúng ngốn pin kinh khủng.
Dịch vụ đám mây:
Một trong những bước đột phá của năm 2011 là "đám mây" cho phép chúng
ta lưu trữ dữ liệu trên các máy chủ từ xa. Việc này giúp tiết kiệm dung lượng ổ đĩa
và dễ dàng đồng bộ nhiều thiết bị.
Google không xa lạ gì với đám mây, với Gmail và rất nhiều các dịch vụ trên
nền tảng web (Google Music, Google Docs, Google Voice). Bên cạnh đồng bộ địa
chỉ liên lạc và cho phép sao lưu số một số ứng dụng, Android vẫn chưa có dịch vụ
đám mây tích hợp. Tuy nhiên, người dùng Android có thể sử dụng các ứng dụng
của hãng thứ ba như Dropbox hoặc Box.net.
Trong buổi ra mắt iOS 5 vừa qua, dịch vụ lưu trữ trực tuyến iCloud cũng
được giới thiệu, cho phép đồng bộ dữ liệu - ảnh, nhạc, địa chỉ liên lạc, bản ghi nhớ,
đánh dấu trình duyệt (bookmark), tài liệu, lịch làm việc và nội dung một số ứng
dụng thứ ba - giữa các thiết bị iOS và máy tính Mac. Ngoài ra, bạn cũng có thể sao
lưu toàn bộ thiết bị thông qua iCloud. Với tính chất đơn giản và dễ sử dụng, iCloud
là dịch vụ đám mây tiên tiến nhất hiện nay.
SkyDrive là dịch vụ đám mây của Microsoft, nhưng không được liền mạch và
tự động như iCloud. Thậm chí SkyDrive còn không được cài đặt sẵn trên Windows
Phone, mà phải được tải về từ Marketplace. Giống như các dịch vụ của hãng thứ ba
như Dropbox, SkyDrive, SkyDrive là dịch vụ lưu trữ hơn là dịch vụ đồng bộ hóa tự
động. Nó yêu cầu việc các thao tác thủ công bằng tay.
Điều khiển bằng giọng nói:
Từ lâu, Android và Windows Phone đã bước chân vào công nghệ điều khiển
bằng giọng nói, nhưng chính Apple mới là người tạo ra tiếng vang với Siri.

11


Nhiều thông tin cho rằng Google đang chuẩn bị đưa ra "câu trả lời" dành cho
Siri, nhưng hiện tại, "trợ lí ảo" Siri của Apple vẫn thuộc "đẳng cấp" cao hơn so với

Voice Commands của Android hoặc Tellme của Microsoft. Siri cho phép bạn đưa ra
câu lệnh bằng ngôn ngữ tự nhiên.
Siri dĩ nhiên chưa hoàn hảo và cần tiếp tục được cải tiến trong vài năm tới. Tuy
nhiên, điểm nổi bật của Siri là ứng dụng này tạo cho người dùng cảm giác về một cuộc
đối thoại, khiến bạn không phải nhớ một lô những câu lệnh cứng nhắc cụ thể.
Đa nhiệm:
Trong khi sử dụng phương pháp khác nhau, tất cả ba nền tảng đều hỗ trợ đa
nhiệm. Nhiều người cho rằng chỉ Android mới cung cấp đa nhiệm, nhưng trong
thực tế, trải nghiệm chuyển giữa các ứng dụng trên iOS và Windows Phone cũng
tương tự.
Điều hướng:
Cả ba nền tảng đều cung cấp nhiều lựa chọn điều hướng GPS, nhưng
Android có lợi thế lớn nhất. Google Maps Navigation rất tuyệt vời, tích hợp với
Voice Commands của Android và hoàn toàn miễn phí. Ngoài ra, ngày càng xuất
hiện nhiều ứng dụng điều hướng giá rẻ hoặc miễn phí cho cả 3 nền tảng, nhưng ít
ứng dụng nào sánh được với dịch vụ của Google.
Tìm kiếm:
Là nền tảng của Google, Android đi liền với Google Search. Tương tự,
Windows Phone đi kèm với Bing của Microsoft. Riêng iOS yêu cầu bạn mở trình
duyệt để tìm kiếm. Công cụ tìm kiếm mặc định của iOS là Google, nhưng bạn vẫn
có thể thay đổi bằng Yahoo hoặc Bing.
Thiết bị lõi kép:
Ngoài LTE và đám mây, 2011 còn là năm chứng kiến sự ra đời của thiết bị di
động lõi kép. Giống như 4G, Android có rất nhiều thiết bị dẫn đầu xu hướng này.
Chúng ta có thể đếm số lượng chính xác các thiết bị lõi kép chạy Android, nhưng
chỉ sau 2 tuần con số đó sẽ trở nên lỗi thời. iPad 2 và iPhone 4S của Apple đều có
chip A5 lõi kép. Windows Phone hiện vẫn chưa có thiết bị lõi kép nào.

12



Ứng dụng bàn phím của hãng thứ ba:
Đối với nhiều người, việc soạn thảo với bàn phím ảo quả là rắc rối. Hiện nay,
Android là nền tảng duy nhất cho phép bạn tùy chỉnh bàn phím ảo trên màn hình.
Ngoài bàn phím Android mặc định (hoặc bàn phím mặc định của nhà sản xuất thiết
bị), bạn có thể lựa chọn cài đặt các loại bàn phím khác như Swype, SlideIt,
Swiftkey, hoặc 8pen.
NFC:
Trong khi NFC – giao tiếp trường gần (thường được dùng cho thanh toán di
động) chưa được hỗ trợ bởi nhiều hãng bán lẻ, đây vẫn là một tính năng hấp dẫn của
các loại smartphone tương lai.
Hiện tại, Android đã có một số điện thoại gắn chip NFC (như Galaxy Nexus
và Nexus S). Hai nền tảng còn lại chưa có thiết bị nào.
1.1.3. Lựa chọn nền tảng Android
Với các so sánh ở trên thì có thể nhận thấy rằng Android là một hệ điều hành
có đông đảo cộng đồng người sử dụng tại Việt Nam cũng như thế giới, hơn nữa kho
ứng dụng vẫn chưa có nhiều, điều này khẳng định thêm việc phát triển ứng dụng
trên Android là phù hợp và dễ dàng hơn so với các hệ điều hành khác. Nếu ứng
dụng khi phát triển nhận được nhiều sự ủng hộ của người sử dụng thì đây là cơ hội
lớn để quảng bá sản phẩm và cũng là một kênh truyền đưa sản phẩm tới người sử
dụng dễ dàng hơn.
1.2 Cơ bản về phân tích thiết kế hướng đối tượng với UML
Trong những năm gần đây phương thức lập trình hướng đối tượng đã thống lĩnh thị
trường lập trình phần mềm và UML cũng đã trở thành ngôn ngữ mô hình hóa phổ
biến trong sản xuất phần mềm. Hầu hết các trường đại học, cao đẳng đã đưa hai
môn này vào đào tạo chính khóa và cũng có không ít tài liệu viết về những vấn đề
này. UML là một ngôn ngữ mô hình hóa, nó giúp con người mô tả lại ý tưởng của
dự án sắp thực hiện một cách nhanh nhất, chính xác nhất.

13



1.2.1. Khái niệm về Phân tích và thiết kế hướng đối tượng (Object Oriented
Analysis and Design: OOAD)
Trong kỹ nghệ phần mềm để sản xuất được một sản phẩm phần mềm người
ta chia quá trình phát triển sản phẩm ra nhiều giai đoạn như thu thập và phân tích
yêu cầu, phân tích và thiết kế hệ thống, phát triển (coding), kiểm thử, triển khai và
bảo trì. Trong đó, giai đoạn phân tích, thiết kế bao giờ cũng là giai đoạn khó khăn
và phức tạp nhất. Giai đoạn này giúp chúng ta hiểu rõ yêu cầu đặt ra, xác định giải
pháp, mô tả chi tiết giải pháp. Nó trả lời 2 câu hỏi What (phần mềm này làm cái gì?)
và How (làm nó như thế nào?).
Để phân tích và thiết kế một phần mềm thì có nhiều cách làm, một trong
những cách làm đó là xem hệ thống gồm những đối tượng sống trong đó và tương
tác với nhau. Việc mô tả được tất cả các đối tượng và sự tương tác của chúng sẽ
giúp chúng ta hiểu rõ hệ thống và cài đặt được nó. Phương thức này gọi là Phân tích
thiết kế hướng đối tượng (OOAD)
1.2.2. Khái niệm về UML (Unified Modeling Language)
UML là ngôn ngữ mô hình hóa hợp nhất dùng để biểu diễn hệ thống. Nói
một cách đơn giản là nó dùng để tạo ra các bản vẽ nhằm mô tả thiết kế hệ thống.
Các bản vẽ này được sử dụng để các nhóm thiết kế trao đổi với nhau cũng như dùng
để thi công hệ thống (phát triển), thuyết phục khách hàng, các nhà đầu tư v.v..
(Giống như trong xây dựng người ta dùng các bản vẽ thiết kế để hướng dẫn và kiểm
soát thi công, bán hàng căn hộ v.v..)
1.2.3. Tại sao lại là OOAD và UML?
OOAD cần các bản vẽ để mô tả hệ thống được thiết kế, còn UML là ngôn
ngữ mô tả các bản vẽ nên cần nội dung thể hiện. Do vậy, chúng ta phân tích và thiết
kế theo hướng đối tượng và sử dụng UML để biểu diễn các thiết kế đó nên chúng
thường đi đôi với nhau.
1.2.4. OOAD sử dụng UML
UML sử dụng để vẽ cho nhiều lĩnh vực khác nhau như phần mềm, cơ khí,

xây dựng v… trong phạm vi các bài viết này chúng ta chỉ nghiên cứu cách sử dụng
UML cho phân tích và thiết kế hướng đối tượng trong ngành phần mềm. OOAD sử
dụng UML bao gồm các thành phần sau:

14


- View (góc nhìn)
- Diagram (bản vẽ)
- Notations (ký hiệu)
-Mechanisms (qui tắc, cơ chế)
1.2.4.1 View (góc nhìn)
Mỗi góc nhìn như thầy bói xem voi, nó không thể hiện hết hệ thống nhưng
thể hiện rõ hệ thống ở một khía cạnh. Chính vì thế trong xây dựng có bản vẽ kiến
trúc (nhìn về mặt kiến trúc), bản vẽ kết cấu (nhìn về mặt kết cấu), bản vẽ thi công
(nhìn về mặt thi công). Trong phần mềm cũng như vậy, OOAD sử dụng UML có
các góc nhìn sau:

Hình 1.1 Các góc nhìn của OOAD
Trong đó,
- Use Case View: cung cấp góc nhìn về các ca sử dụng giúp chúng ta hiểu hệ
thống có gì? ai dùng và dùng nó như thế nào.
- Logical View: cung cấp góc nhìn về cấu trúc hệ thống, xem nó được tổ
chức như thế nào. Bên trong nó có gì.

15


- Process View: cung cấp góc nhìn động về hệ thống, xem các thành phần
trong hệ thống tương tác với nhau như thế nào.

- Component View: Cũng là một góc nhìn về cấu trúc giúp chúng ta hiểu
cách phân bổ và sử dụng lại các thành phần trong hệ thống ra sao.
- Deployment View: cung cấp góc nhìn về triển khai hệ thống, nó cũng ảnh
hưởng lớn đến kiến trúc hệ thống.
Tập hợp các góc nhìn này sẽ giúp chúng ta hiểu rõ hệ thống cần phân tích,
thiết kế. Trong hình 1 chúng ta thấy góc nhìn Use Case View nằm ở giữa và chi
phối tất cả các góc nhìn còn lại. Chính vì thế chúng ta thường thấy các tài liệu nói
về 4 view + 1 chứ không phải 5 view nhằm nhấn mạnh vai trò của Use Case View.
1.2.4.2 Diagram (Bản vẽ)
Diagram các bạn có thể dịch là sơ đồ. Tuy nhiên ở đây chúng ta sử dụng từ bản vẽ
cho dễ hình dung. Các bản vẽ được dùng để thể hiện các góc nhìn của hệ thống.

Hình 1.2 Các bản vẽ của OOAD
- Use Case Diagram: bản vẽ mô tả về ca sử dụng của hệ thống. Bản vẽ này
sẽ giúp chúng ta biết được ai sử dụng hệ thống, hệ thống có những chức năng gì.
Lập được bản vẽ này bạn sẽ hiểu được yêu cầu của hệ thống cần xây dựng.
- Class Diagram: bản vẽ này mô tả cấu trúc của hệ thống, tức hệ thống được
cấu tạo từ những thành phần nào. Nó mô tả khía cạnh tĩnh của hệ thống.
- Object Diagram: Tương tự như Class Diagram nhưng nó mô tả đến đối
tượng thay vì lớp (Class).

16


- Sequence Diagarm: là bản vẽ mô tả sự tương tác của các đối tượng trong
hệ thống với nhau được mô tả tuần tự các bước tương tác theo thời gian.
- Collaboration Diagram: tương tự như sequence Diagram nhưng nhấn
mạnh về sự tương tác thay vì tuần tự theo thời gian.
- State Diagram: bản vẽ mô tả sự thay đổi trạng thái của một đối tượng. Nó
được dùng để theo dõi các đối tượng có trạng thái thay đổi nhiều trong hệ thống.

- Activity Diagram: bản vẽ mô tả các hoạt động của đối tượng, thường được
sử dụng để hiểu về nghiệp vụ của hệ thống.
- Component Diagram: bản vẽ mô tả về việc bố trí các thành phần của hệ
thống cũng như việc sử dụng các thành phần đó.
- Deployment Diagram: bản vẽ mô tả việc triển khai của hệ thống như việc
kết nối, cài đặt, hiệu năng của hệ thống v.v…
1.2.4.3 Notations (các ký hiệu)
Notations là các ký hiệu để vẽ, nó như từ vựng trong ngôn ngữ tự nhiên. Ví dụ
như một số ký hiệu sau:

Hình 1.3 Ký hiệu UseCase (Trường hợp sử dụng)

Hình 1.4 Ký hiệu class (lớp )

17


Hình 1.5 Ký hiệu Actor (tác nhân)

1.3 Website tìm việc làm
Trong thời kỳ bùng nổ về công nghệ thông tin, hầu như mọi lĩnh vực đều xuất
hiện trên internet trong đó là các website giới thiệu việc làm xuất hiện tràn lan.
Đồng thời các ứng dụng tìm việc làm kết nối doanh nghiệp và người đi làm cũng rất
phong phú đa dạng song vẫn chưa có một ứng dụng nào có ứng dụng trong phạm vi
trực tiếp từ nhà trường đến doanh nghiệp, mà các ứng dụng chỉ trú trọng vào kết nối
người đi làm với doanh nghiệp nên có thể dẫn tới người đi làm lựa chọn chưa phù
hợp cũng như thiếu thông tin hoặc không biết tới các ứng dụng này.

18



CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ
2.1. Phân tích yêu cầu
2.1.1. Yêu cầu người sử dụng
- Biết sử dụng cơ bản hệ điều hành Android
- Có quan tâm tới việc làm
- Cung cấp đầy đủ các thông tin để ứng dụng có thể đề xuất công việc phù hợp
2.1.2. Yêu cầu chức năng của phần mềm
- Có 2 loại nhóm công việc
+ Nhóm việc làm ngắn hạn: Nhóm này chỉ gồm thông tin là tên job, mô tả
ngắn job, mức lương, thời hạn nộp hồ sơ, số lượng tuyển.
+ Nhóm việc làm dài hạn: Nhóm này gồm các thông tin: Tên job, hạn nộp hồ
sơ, mức lương, kinh nghiệm, bằng cấp, số lượng tuyển, loại công việc (phân theo
tag), địa điểm, vị trí làm việc, chế độ làm việc (full/part time), giới tính, độ tuổi,...
Mô tả công việc, quyền lợi được hưởng, những yêu cầu khác, hồ sơ bao gồm?
- Mỗi sinh viên sau khi xem Job có thể ấn nút nộp hồ sơ.
+ Với nhóm công việc ngắn hạn thì hiện nút “đăng ký” cho phép hiện lên một
form yêu cầu người dùng nhập một đoạn mô tả ngắn về kinh nghiệm bản thân
+ Với nhóm công việc dài hạn thì hiện nút “nộp hồ sơ” có thể nộp ảnh, file,
hoặc hiện một form mẫu để người dùng điền. Cho phép người dùng nộp bổ sung hồ
sơ nhiều lần và quản lý được các loại hồ sơ đã nộp.
Sau khi sinh viên nộp hồ sơ/ đăng ký sẽ hiện trạng thái của job đó ở 3 trạng
thái: đang chờ duyệt/ trúng tuyển/ trượt
- Nhà tuyển dụng có thể xem được bao nhiêu sinh viên đã xem job, bao nhiêu
sinh viên đã nộp hồ sơ, đó là ai?
+ Nhà tuyển dụng có thể chấp nhận hồ sơ hoặc loại hồ sơ sau khi xem.
+ Hệ thống tự thông báo cho người dùng biết hồ sơ đã được chấp nhận hay bị loại
- Nhà tuyển dụng có thể hủy (kết thúc) tin tuyển dụng sau khi đăng
+ Những tin này không bị xóa mà chỉ không hiển thị trên bảng tin.
- Tại mỗi job công việc sẽ hiển thị tên và số lượng người đã đăng ký job (ai

cũng có thể xem)
- Sinh viên có thể báo cáo 1 job là vi phạm hoặc không hợp lệ.

19


+ Những tin này hệ thống sẽ tự động báo cho manager để kiểm tra tin
- Sinh viên có thể tích trọn chế độ tư động thông báo khi có job mới.
2.1.3. Yêu cầu mặt phi chức năng của phần mềm
- Giao diện thân thiện dễ sử dụng.
- Hỗ trợ lưu trữ dữ liệu online và đồng bộ với các thiết bị khác, đảm bảo an
toàn, bảo mật.
- Tốc độ tải dữ liệu nhanh.
- Thông tin đảm bảo rõ ràng.
- Đảm bảo bảo mật thông tin
- Cho phép người sử dụng tìm kiếm nhanh chóng, chính xác theo nhiều tiêu chí.
2.2. Đặc tả yêu cầu
2.2.1. Các tác nhân
Tác nhân
Người dùng cá nhân

Mô tả
Là người trực tiếp sử dụng phần mềm, sử
dụng và thao tác tìm việc làm
Là người trực tiếp sử dụng phần mềm,

Người dùng doanh nghiệp

quản lý các công việc của mình, theo dõi
tình hình đăng ký và nộp hồ sơ các công

việc.
Là người đăng các thông báo tới các

Người quản trị

người dùng và theo dõi tình hình hoạt
động của hệ thống

20


2.2.2 Đặc tả Use Case
Ca sử dụng

Tác nhân

Đăng ký/đăng nhập

Người dùng

Thực hiện
Thực hiện đăng ký tài khoản và đăng
nhập sử dụng Job

Tìm việc làm

Người dùng cá Thực hiện tìm các nhóm việc làm
nhân

Nộp hồ sơ xin việc


phù hợp với cá nhân

Người dùng cá Thực hiện tạo hồ sơ (đính kèm có
nhân

sẵn) và nộp cho doanh nghiệp theo
nhóm công việc yêu cầu

Quản lý việc làm

Người

dùng Đăng/sửa/xóa việc làm

doanh nghiệp
Quản lý các hồ sơ xin việc Người
của doanh nghiệp

dùng Xem và chấp nhận/ không chấp nhận

doanh nghiệp

các hồ sơ của sinh viên

Quản lý các hồ sơ xin việc Người dùng cá Nộp/xem các hồ sơ đã nộp đã trúng
của cá nhân

nhân


tuyển hoặc chưa trúng tuyển

Quản lý thông báo

Người dùng cá Người dùng có thể đăng ký theo dõi
nhân

các thông tin khi có một job được
đăng lên

2.2.3 Biểu đồ UseCase
2.2.3.1 Biểu đồ usecase đăng nhập và đăng ký

21


Hình 2.1: Biểu đồ usecase đăng nhập và đăng ký
Mô tả tóm tắt Tên ca sử dụng
Mục đích

Đăng nhập và đăng ký
Mô tả cách người dùng đăng nhập/đăng
ký vào hệ thống

Các luồng sự

Tác nhân

Người dùng


Luồng sự kiện chính

Ca sử dụng bắt đầu khi người dùng
muốn đăng nhập hoặc đăng ký job

kiện

Phần mềm yêu cầu người dùng nhập
mật khẩu đăng nhập hoặc các thông tin
đăng ký
Người dùng nhập các thông tin cần thiết
Phần mềm xác nhận các thông tin có
hợp lệ hay không? Nếu sai thì thực hiện
luồng A1.
Phần mềm ghi lại quá trình đăng
nhập/đăng ký
Luồng A1

Nhập sai thông tin.
Phần mềm thông báo lỗi
Người dùng có thể đăng nhập/đăng ký
lại hoặc hủy bỏ đăng nhập ca sử dụng
kết thúc hoặc có thể thực hiện luồng A2
với đăng nhập

Luồng A2

Người dùng thực hiện ấn vào nút quên
mật khẩu
Phần mềm yêu cầu người dùng nhập địa

chỉ email khôi phục mật khẩu
Người dùng nhập email khôi phục mật
khẩu và kiểm tra email. Ca sử dụng kết
thúc.

Điều kiện

Tiền điều kiện

Phải đăng ký tài khoản

Hậu điều kiện

Không

22


2.2.3.2 Biểu đồ usecase tìm việc làm

Hình 2.2 Biểu đồ use case tìm việc làm
Mô tả tóm tắt Tên ca sử dụng
Mục đích

Ca sử dụng tìm việc làm
Mô tả cách người dùng tìm thông tin
việc làm

Các luồng sự


Tác nhân

Người dùng cá nhân

Luồng sự kiện chính

Ca sử dụng bắt đầu khi người dùng
muốn tìm kiếm thông tin việc làm

kiện
Luồng A1

Người dùng chọn thẻ việc làm
Người dùng ấn vào một việc để xem
thông tin chi tiết, kết thúc ca sử dụng
hoặc người dùng muốn đánh dấu thì
thực hiện luồng A2, người dùng muốn
nộp hồ sơ thì thực hiện luồng A3

Luồng A2

Người dùng thực hiện luồng A1 trước
sau đó chọn việc muốn xem chi tiết
Phần mềm hiện thông tin chi tiết việc
vừa chọn, kết thúc ca sử dụng

Luồng A3

Người dùng thực hiện luồng A1, sau đó
ấn vào nút đánh dấu của việc làm

Người dùng chọn màu sắc đánh dấu
phù hợp, kết thúc ca sử dụng

Điều kiện

Tiền điều kiện

Đăng nhập

Hậu điều kiện

Không

23


2.2.3.3 Biểu đồ usecase nộp hồ sơ

Hình 2.3 Biểu đồ usecase nộp hồ sơ
Tên ca sử dụng
Mô tả tóm tắt

Mục đích
Tác nhân
Luồng sự kiện chính

Luồng A1
Các luồng sự
kiện


Luồng A2

Điều kiện

Tiền điều kiện
Hậu điều kiện

Ca sử dụng nộp hồ sơ
Mô tả cách người dùng thực hiện nộp
hồ sơ xin việc
Người dùng cá nhân
Ca sử dụng bắt đầu khi người dùng
muốn nộp hồ sơ xin việc
Người dùng ấn nút “nộp hồ sơ”
Phần mềm hiện bảng chọn hồ sơ từ
thiết bị. Nếu người dùng chưa có file hồ
sơ có thể chọn nút “Tạo hồ sơ” tại giao
diện này, thực hiện luồng A2
Người dùng chọn file hồ sơ và ấn nút
“gửi”. Kết thúc ca sử dụng
Người dùng thực hiện luồng A1 trước
sau đó ấn nút “Tạo hồ sơ”
Phần mềm yêu cầu người dùng điền
thông tin vào form mẫu
Người dùng nhập đầy đủ thông tin và
ấn nút “gửi”, kết thúc ca sử dụng
Phải ở giao diện trang cá nhân và đã
đăng nhập
Không


24


2.2.3.4 Biểu đồ usecase quản lý việc làm

Hình 2.4 Biểu đồ usecase quản lý việc làm
Tên ca sử dụng
Mô tả tóm tắt

Mục đích
Tác nhân

Ca sử dụng quản lý việc làm
Mô tả cách người dùng thực hiện đăng,
sửa, xóa, xem việc làm
Người dùng doanh nghiệp
Nếu người dùng muốn đăng việc thì
thực hiện luồng A1

Luồng sự kiện chính

Nếu người dùng muốn sửa việc thì thực
hiện luồng A2
Nếu người dùng muốn xóa việc thì thực
hiện luồng A3
Người dùng ấn nút “đăng việc làm”

Các luồng sự

Phần mềm hiện form điền thông tin.


kiện
Luồng A1

Người dùng nhập thông tin đầy đủ sau
đó ấn nút đăng.
Người dùng quản trị thực hiện phê
duyệt. Kết thúc ca sử dụng
Người dùng nhấn nút “Sửa việc”

Luồng A2
Phần mềm hiện form nhập thông tin.
Người dùng nhập thông tin sau đó ấn

25


×