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 (14.71 MB, 84 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<small>Sinh viên thực hiện : Nguyễn Ngọc Khánh</small>
<small>Mã sinh viên : 11162581</small>
Lép chuyên ngành : Tin học kinh tế 58
Giảng viên hướng dẫn — : TS. Nguyễn Thị Bạch Tuyết
HÀ NỘI, 2020
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời cảm ơn sâu sắc nhất đến cô TS. Nguyễn Thị Bạch Tuyết đã giúp đỡ em tận tình, cho em những góp ý trong suốt thời gian thực tập để
có thể hồn thiện tốt chun đề này.
Em xin cảm ơn đến thầy Nguyễn Văn Thành và toàn bộ anh chị trong công ty
<small>TNHH Một thành viên Dịch vụ Giáo dục Thành Nguyên đã giúp đỡ, chỉ bảo và tạo</small>
điều kiện cho em trong suốt quá trình thực tập tại công ty.
<small>Một lân nữa, em xin chân thành cảm ơn!</small>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3"><small>VỤ GIÁO DỤC THÀNH NGUYÊN...--° 2< sss+ssssevssersserseesssrsserse 31.1. Thông tin cơ bản của doanh nghiỆp...- -- ---- -- 525cc sseessereeereres 3</small>
1.2. Quá trình thành lập và phát triễn...---2- 2 2 s+xzxzEzzExerxerxez 3 1.3. Đặc điểm hoạt động kinh doanh...- 2 2 s2E+E+Exerxerrerrxrrkerxee 4
s7 an ..(.34... 5
1.5. Thực trạng về việc ứng dụng CNTT trong hoạt động sản xuất, kinh
<small>doanh của công ty ...-- --- - c 1121 119111 1111 110111011111 H11 TH Hưng nhàng Hy 8</small>
1.6. Đánh giá việc ứng dụng CNTT trong hoạt động sản xuất, kinh doanh I0
2.1. Tổng quan về phần mm... 2 ¿22+ E2 EE+EE£EE£+EE+EEtEEtZEEZEErEErrxerree 11
2.1.2 Đặc trưng của phần mềm ...-- 2-2 2 £+£EE+EE£EE£EE+EE2EE£EeEEeEEerkrrxrvee 11 2.1.3. Phân loại phần mềm... -- + 2 2 E2 £+E£+E£EE£EE#EE£EE+EEZEEEEEEerEerxrrkrree 12 2.1.4. Quy trình xây dựng phần mềm... 2-2-2 2+E££E+£E£zE£+E+Exerxrxez 13 2.2. Một số mơ hình triển khai xây dựng phần mềm...- - 5- - 21
<small>Phun h(ìì0t và OƯƯỜợợNợgợg,1....-... 21</small>
2.2.2. Mơ hình xoắn Ốc ...---¿--©++++c2++ttE ki 22
<small>2.3. Cơng cụ thực hiện... - -- - Là LH TH HH HH TH ng Hit 232.3.1. Android StUd1O...- - -- + 1H HH HH rưy 232.3.2. SQLite Databse 2... ... . .... 24</small>
2.4. Cơ sở lý thuyết về Android, ngơn ngữ lập trình Java...- 25
2.4.1. Lý thuyết Android...---:- 2-52 +5s+SE+EE2E2EESEEEEEEEEE2E127171211211 1111 cxe 25
2.4.2. Kiến trúc Android...----:-cs++ccxx2EEkxtttrktrttrttrrtrttrrrrrrrrrrirrrrirriio 26
<small>2.3.4 Ngơn ngữ lập trình ]2aVa... - - -- c 119 1v SH HH kg ky 31</small>
<small>2.3.5 Mơ hình thiết kế Model View Presenter (MWVP),...---5-ccccssce2 31</small>
<small>2.4 LocalDatabase trong Android — Room Database...- ---- 32</small>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><small>2.4.1. Khái niệm ROOI... --- G222 333222183 3188 €3 1 3 112 1v ng ng re 32</small>
2.4.2. Các bước dé tạo CSDL Room... ¿2-52 ©+2E£2EE+EE+£EzEzEsrkerxerree 33
<small>DÀNH CHO KHACH HANG...cccssscsssssssssscsssssscssscsnscssscnscsnscssscascenscsnscssccasceneessees 343.1. Mô tả bài tốn cr 34</small>
3.2. Phân tích hệ thống...--- 2-2 2 +E£SE£EEEEEEEE2E12E1211212 212111111. xe. 35
3.3. Thiết kế kiến trúc...---©+++ckc2 k2 22121121171... cxe 38
3.4. Thiết kế CSDL...----2-©22©2<+EESEEEEE22121171211211211 712121. Exxe. 38 3.5. Thiết kế giải thuật...---:- 52-52 tt EE 121121121121. 11 111111. 44 3.6. Thiết kế giao diện...--- ¿52 Se tt TT 1211211211211 11111 te. 41
<small>3.7. Lap trình máy tính... -.-- -- + Sc +. 32331 1911151111111 1 111111 1E ket 563.7.1. Khai báo thư viện cho ADP... -.-- Ă 3n 2t 2 vn HH ng re, 56</small>
3.7.2. Khai báo quyền người dùng cho App. ...scsssesssessessesssecssecssessesssecsseeseesses 57 3.7.3. Khởi tạo các đối tƯỢng: ...---:- ¿522k ke EE1EE121121121 1111111. xe. 58 9100000177 ... ...,ÔỎ 67
TÀI LIEU THAM KHAO ...-- 2-2 5< ©s£©ss£Es2€SssSs£EsseEsexserssersserssre 68
PHU LUC CAC DOAN CODE...--2- 2° ©©EveseEEEEveeEEEvresertrvresrrrrrrsee 69
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">DANH MỤC HÌNH ANH
Hình 1. 1: Sơ đồ cơ cấu t6 chứỨc...--- 2 5+ +5£+S++Ex£EEEEEEEEEEEEEEEEEEEErkrrkrrrrrrkervee 5
<small>Hình 2. 1: Ký hiệu UML dùng cho ca sử dụng...- ..-- 55c +ksseeeeseseeers 14</small>
<small>Hình 2. 2: Ký pháp của phương pháp Use Case ... ... ¿5c + Sc sssssssrsserrss 15</small>
Hình 2. 3: Ký pháp sử dụng trong sơ đồ chức năng BFD...-- 5 5c s2 16 Hình 2. 4: Ký pháp sơ đồ luồng thơng tin IFD...--2¿- 5: ©5£55z22x2z++zxeszsz 16 Hình 2. 5: Ký pháp sơ đồ ngữ cambie..c.ccecceccccsscescsssssessessessessessessessesssessssessessesseeseaes 17 Hình 2. 6: Ký pháp sơ đồ luồng dit liệu DFD...-2- 2-2 2 2+E£+Ee£Eezxerxerssez 18 Hình 2. 7: Ky pháp sơ đồ giải thuat ....0...0.ccccccccccsessessessessesstsssessecsesssesseesessesssseseeseess 19
<small>Hình 2. 8: Mơ hình thác HưỚC ... - 2 «+ s1 E19 119111911 1 nh ng run 21</small>
Hình 2. 9: Mơ hình xoắn 6c o.seeeessessssssseessneessssseesssnecessneeessneeessneeeesnseesneeesnnesensnesee 23 Hình 2. 10: Kiến trúc của Android...- --¿- s5 ++£2££+EE+EE£EE+2EESEEeEEerEerrkerkerkrrex 26 Hình 2. 11: Tang Applications trong Kiến trúc Android...---¿s¿ s2 27 Hình 2. 12: Tang Application Framework trong Kiến trúc Android...- 27 Hình 2. 13: Tầng Libries và Android Runtime trong Kiến trúc Android... 28 Hình 2. 14: Tang Linux Kernel trong Kiến trúc Android...--.----¿s¿ s2 29 Hình 2. 15: Cấu trúc của một màn hình Android...-. . --- << «+ ++++<*+++sxc++sex+ 30
<small>Hình 2. 16: Mơ hình MVP Pattern Des1gn...- - -- 6s v1 SH g re 32</small>
Hình 2. 17: Cấu trúc của Room trong Android...---:- 5s 2+sz+sezx+zx+zx+zszzszsez 33 Hình 3. 1: Sơ đồ chức năng xây dựng App FASTFOOD...- ¿2-5 sccscs2 35 Hình 3. 2: Sơ đồ ngữ cảnh xây dựng App FASTFOOD...---¿--¿©csc©5+cc+2 36
Hình 3. 3: Sơ đồ DFD mức (...--.-¿--22+++++tEExtrtttEEktrrrttttrrrrrtrrirrrrrrrrrrrrieg 36
Hình 3. 4: Sơ đồ DFD mức 1 “Quản lý người dùng””...-- ¿22c ccccxccersscee 37 Hình 3. 5: Sơ đồ DFD mức 1 “Quản lý bán hàng””...- 2-2 + xc2z+zesrxerecrez 37 Hình 3. 6: So đồ Kiến trúc xây dựng App EASTFOOD... 2-5-5 scsscsce2 38
<small>Hình 3. 7: Giải thuật thêm, xóa món ăn trong danh sách u thích... -- 44</small>
Hình 3. 8: Giải thuật tính tiền cho một đơn hàng... ch re, 45
<small>Hình 3. 9: Giải thuật thanh tốn ... --- - - Ă E1 3322221111111 1 2831111111188 1 11 key, 46</small>
<small>Hình 3. 10: Màn hình Splash và Onboarding...-- - -- «5s + + xs+vexsseeeeerseeere 48</small>
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6"><small>13: Màn hình Khám phá và Dialog Detail Food...-.-- -s---««<-s+<s</small>
<small>14: Màn hình Danh sách món ăn u thích...-- + ++-s>+<x++s++ex++</small>
<small>15: Màn hình Danh sách món ăn u thích...-. .-- - ---+++-s+++<x++sex+ss+</small>
16: Màn hình Hóa đơn chỉ tiết và Lịch sử đơn hàng...-- -5- 5-52
<small>17: Màn hình thơng tin cá nhân ... ---- 55 3251323 E+*EEEeeesreereesereee</small>
18 Màn hình Khuyến Mãi ...--- 2-22 52+cx2EEt2EEtEESEErrrkerkrerkrerxee
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">LOI MỞ DAU 1. Ly do lựa chọn đề tài
Ngày nay, khi mức độ cạnh tranh trên thị trường truyền thống ngày càng gay gắt và các thành tựu công nghệ thông tin ngày càng phát triển thì hoạt động kinh doanh thơng qua website trở thành lựa chọn hàng đầu của các doanh nghiệp muốn tham gia vào thị trường thương mại điện tử. Tuy nhiên, khơng có nghĩa là chỉ cần một website cập nhật thường xuyên tin tức, sản phâm là đủ, mà cịn cần có khả năng liên
kết, liên lạc với khách hàng dé tiếp thu đóng góp và giải đáp thắc mắc của họ, nhằm
tạo dựng niềm tin, uy tín đối với khách hàng. Việc thiết kế website với những tinh năng nào dé thu hút khách hang là điều hết sức can thiết đối với doanh nghiệp.
<small>Tham gia vào dự án outsourcing của công ty TNHH MTV Dịch vụ giáo dục</small>
Thành Nguyên, nhận thấy dự án này là cơ hội để áp dụng được những kiến thức đã được học cũng như tiếp thu được các kiến thức mới, em xin tham gia dự án và đảm nhiệm nhiệm vụ dựng App dành cho khách hàng nhằm nâng cao, học hỏi và cải thiện kĩ năng của bản thân. Vì vậy, em nghiên cứu thực hiện đề tài: “Xây dựng phần mềm bán đồ ăn nhanh FastFood — App dành cho khách hàng.
<small>2. Mục đích nghiên cứu</small>
<small>- Nghiên cứu cơng nghệ lập trình ứng dụng với Android</small>
- Nắm rõ các hoạt động trong qui trình vận hành kinh doanh, Xây dựng phan mềm quản lý bán hàng giải quyết yêu cầu trong quản lý của cửa hàng.
- _ Xây dựng thành công App Client FastFood cho dự án, phát trién ứng dụng đưa vào thực tế.
3. Đối tượng, phạm vi nghiên cứu
Đối tượng nghiên cứu
- Khách hàng, cửa hàng bán đồ ăn nhanh, các món ăn tại cửa hàng
<small>Pham vi nghiên cứu:</small>
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">- Để tài nghiên cứu được thực hiện trong thời gian 3 tháng ké từ ngày 1/2/2020
đến ngày 31/5/2020
<small>- Thực trạng quan lý mua hàng: nghiệp vụ dat bàn, mua hang, quan lý đơn đặt</small>
hàng, quản lý đơn đặt bàn, thanh tốn và phân tích thiết kế yêu cầu, chức năng nhằm giải quyết bài toán
<small>- Phạm vi nghiệp vụ: Xây dưng App dành cho khách hàng.4. Phương pháp nghiên cứu</small>
Đề thực hiện đề tài, em sử dụng phương pháp:
<small>- Phương pháp thu thập thông tin</small>
<small>» Phuong pháp thực nghiệm khoa học</small>
* Phương pháp điều tra
- Chương 2. Cơ sở lý luận về xây dựng phan mềm
- Chương 3. Xây dựng App bán đồ ăn nhanh FASTFOOD
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">DỊCH VỤ GIÁO DỤC THÀNH NGUN
<small>Thơng tin cơ bản của doanh nghiệp</small>
<small>Thuộc loại hình doanh nghiệp Công ty Trách nhiệm hữu hạn Một thành</small>
viên. Với tên chính thức là CƠNG TY TNHH MỘT THÀNH VIÊN DỊCH VỤ
GIAO DỤC THÀNH NGUYEN. Ông Nguyễn Văn Thành — người đại diện theo pháp luật của công ty, đã thành lập công ty vào ngày 05/02/2018 với vốn điều lệ đăng ký là 50.000.000 đồng. Công ty nằm tại số 87 Vương Thừa Vũ, Phường Khương Mai, Quận Thanh Xuân, Thành Phố Hà Nội. Giấy phép hoạt động được cấp ngày 05/02/2018 cùng với ngày thành lập, tại cơ quan Sở kế
hoạch và đầu tư Thành phố Hà Nội với mã số thuế là 0108160009. Số điện
thoại công ty khi thành lập cũng là số điện thoại của chủ công ty: 0961234680 với tài khoản giao dich tại ngân hàng: Ngân hàng thương mại cổ phần Ngoại
<small>thương Việt Nam là : 0851000022934</small>
Q trình thành lập và phát triển
<small>Cơng Ty TNHH Một Thành Viên Dịch Vụ Giáo Dục Thành Nguyên làcông ty trách nhiệm hữu hạn một thành viên được thành lập vào ngày05/02/2018 và đi vào hoạt động chính thức ngày 05/02/2018.</small>
Khi mới đi vào hoạt động, công ty chỉ có 1 nhân viên và bối cảnh thị trường cạnh tranh với rất nhiều công ty lớn trong ngành. Tuy nhiên với sự chỉ đạo của giám đốc và sự nỗ lực của tất cả nhân viên trong công ty đã tạo nên cho công ty chỗ đứng trên thi trường và tạo niềm tin, sự hài long của khách hàng giúp cho công ty ngày càng phát triển và mở rộng quy mô.
Sau 2 năm hoạt động, với các chiến lược kinh doanh và các chính sách bán hàng, công ty đã mở rộng thị trường ra tất cả hầu hết các tỉnh thành trong
<small>nước, có được các khách hàng tiêm năng và thị trường riêng của mình.</small>
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">1.3. Dac điểm hoạt động kinh doanh
Ngành nghề kinh doanh: Công ty TNHH MTV Dịch vụ giáo dục Thành
<small>Nguyên kinh doanh trong lĩnh vực:e Giáo dục</small>
Bắt đầu từ khi thành lap, công ty TNHHMTV Dịch vụ giáo dục Thanh Nguyên đã đặt lĩnh vực giáo dục là lĩnh vực chính của cơng ty. Trải qua nhiều
<small>khóa học, công ty đã thành công trong việc đảo tạo nhân lực lĩnh vực cơng</small>
<small>nghệ thơng tin nói chung và đảo tạo lập trình viên nói riêng. Chính thức từ khi</small>
<small>thành lập cơng ty đã hồn thành xong 6 khóa học. Các học viên được đào tạo</small>
từ cơ bản đến nâng cao kỹ năng lập trình, lập trình máy tính, thành thạo ngơn ngữ lập trình, hiểu rõ tư duy lập trình và ngày càng hiện đại phù hợp với sự thay đổi không ngừng nghỉ của công nghệ. Các học sinh đang là lập trình viên
của nhiều cơng ty lớn nhứ: FPTSoftware, VNPT-IT, MISA, FAST, Viettel,...Nhiều học viên đã đạt cũng từ đây mà đạt được những thành công
lớn. Với khảo sát đầu ra, mức lương trung bình sau khi hồn thành khóa học
<small>là 12.000.000đ/ 1 học viên.</small>
<small>e Outsource — Gia cơng phân mêm.</small>
<small>Bên cạnh lĩnh vực chính là lĩnh vực giáo dục, ông Nguyễn Văn </small>
Thành-giám đốc công ty cũng sáng suốt khi đã thực hiện và dẫn dắt chương trình dự
án Outsource dành cho các học viên cuối khóa, vừa rèn luyện kĩ năng áp dụng
kiến thực một cách chuyên sâu, vừa tạo ra thu nhập cho học viên. Theo em
đây được coi là chiến lược đúng đắn kết hợp cả 2 lĩnh vực một cách có hiệu
<small>Từ khi thành lập cơng ty đã thực hiện khơng ít dự án lớn nhỏ, đặc biệt</small>
có thé kê đến cá dự án thành công đã chạy như:
Ứng dung 3SDMS:
<small> ?id=com.neos.frwamvp</small>
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">Ứng dụng TiKi:
<small> ?id=com.neos.fima</small>
<small>Thị trường kinh doanh</small>
Công ty đây mạnh hoạt động kinh doanh tại Thành phố Hà Nội, ngồi ra cịn
<small>mở rộng các dự án trên địa bàn tồn qc.</small>
Hiện nay về giáo dục, học sinh của công ty chủ yếu tại địa bàn thành phố Hà Nội, đối với cá học sinh ở khu vực khác, cơng ty đang tiến hành xây dựng chương
<small>trình học online phục vụ nhu câu học của các học viên.</small>
Về mang outsourcing, đối tác khách hang của cơng ty có từ các khách hàng
nhỏ lẻ đến các khách hàng là các công ty lớn. Các khách hàng nhỏ lẻ chủ yếu là các
cửa hàng muốn tin học hóa q trình quản lý kinh doanh. Các khách hàng lớn thường
<small>thuê đội ngũ lập trình viên của cơng ty đê bảo trì và nâng câp các sản phâm của họ.</small>
1.4. Co cấu tổ chức
<small>Công ty TNHH MTV Dịch vụ giáo dục Thành Nguyên là một công ty nhỏ nên</small>
được tô chức gọn nhẹ, linh hoạt theo mơ hình chức năng giúp cho việc điều hành và
<small>quản lý có hiệu quả:</small>
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12"><small>Chức năng, nhiệm vụ của các bộ phận trong cơng ty:</small>
* Giám Đốc : Ơng Nguyễn Văn Thành là người sáng lập công ty, ông là người
đại diện pháp lý, trực tiếp điều hành tất cả các hoạt động sản xuất, kinh doanh của
công ty. Là người đưa ra chiến lược và mục tiêu phát triển của công ty cũng là người trực tiếp trao đơi và kí kết hợp đồng với khách hàng. Dẫn dắt công ty từ ngày đầu mới thành lập, Ông Nguyễn Văn Thành ngày một khăng định năng lực cũng như.
* Phịng Kế Tốn
Ghi chép, phản ánh chính xác và trung thực các nghiệp vụ kinh tế trong cơng ty
vào số sách kế tốn; lưu trữ, bảo quản các chứng từ kế toán và số sách kế tốn của
<small>cơng ty.</small>
- _ Cung cấp các tài liệu kế toán cần thiết cho giám đốc và các cơ quan quản lý
- Theo dõi các khoản công nợ, phải trả, các khoản tiền mặt, ...của công ty.
- _ Lập báo cáo kế tốn định kì theo u cầu của giám đốc và theo qui định của
<small>nhà nước.</small>
- Tham mưu cho giám đốc các kế hoạch tài chính.
- Kê khai, quyết tốn thuế của cơng ty và nộp các khoản thuế phải nộp cho cơ
<small>¢ Phịng Nhân Sự</small>
<small>- Trién khai và thực hiện các chính sách vê nhân sự, tiên lương.</small>
- Cham cơng hàng ngày, tính lương và trả lương hàng tháng cho nhân viên
<small>¢ Phịng Kỹ Thuật</small>
- _ Xây dựng, phát triển sản phẩm theo yêu cầu của khách hàng. - Nhân viên thiết kế:
= Tư vấn công nghé,thiét kế sản phẩm nhăm đáp ứng đầy đủ các yêu cầu
<small>về sản phâm của khách hàng.</small>
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">“Phối hop với các phòng ban khác dé cho ra sản phẩm tốt nhất, giải quyết các van đề ứng dụng của sản phẩm.
<small>- _ Nhân viên kỹ thuật</small>
“Thực hiện lập trình theo thiết kế có sẵn.
= Phối hợp với nhân viên thiết dé đưa ra các giải pháp cho sản phẩm tốt nhất.
= Phối hợp với phòng kiểm thử dé khắc phục lỗi trong quá trình phát triển sản phẩm.
- _ Nhân viên kiểm thử & đảm bảo chất lượng = Đưa ra kế hoạch kiêm thử sản phẩm.
= Phối hợp với các nhân viên kỹ thuật dé dua ra giải pháp tối ưu cho sản phần.
= Thực hiện các công việc kiểm thử.
= Lên báo cáo tổng hợp q trình nghiệm thu sản phẩm.
Phịng kinh doanh, triển khai
- Tim kiếm các khách hang mới cho công ty, nghiên cứu thị trường - _ Xây dựng hình ảnh, tiếp thị, quảng cáo sản phẩm của công ty
- _ Tiếp nhận và xử lý các ý kiến phản hồi từ khách hàng.
- _ Thống kê, báo cáo tình hình kinh doanh của cơng ty từ đó đưa ra đánh giá, nhận xét một cách khách quan nhất.
- Thong kê các hợp đồng với đối tác, xử lý giải quyết các van đề có liên quan. - Lap kế hoạch triển khai phần mềm với khách hàng.
- _ Triển khai dự án, lắp đặt sản phẩm của công ty cho khách hàng trên địa bàn
<small>các tỉnh thành.</small>
- Tu vấn, đào tạo và hướng dẫn khách hang sử dụng sản phẩm.
- Thuong xuyên theo dõi, thăm hỏi các khách hàng đã sử dung sản phẩm của cơng ty dé có thé khắc phục kip thời các sự cố, tư van và hướng dẫn khách
<small>hàng tỷ mi.</small>
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">1.5. Thực trạng về việc ứng dụng CNTT trong hoạt động sản xuất, kinh doanh
<small>của công ty</small>
Công ty đã được thành lập và đi vào hoạt động 2 năm, thêm vào đó là việc đầu
tư các cơng nghệ với phục vụ các hoạt động của công ty lại được ban giám đốc công ty chú trọng nên đa số các hoạt động chính, các bộ phận của cơng ty đã và đang được
<small>ứng dụng CNTT một cách hồn thiện.</small>
<small>Qua qua trình khảo sát, thực trạng ứng dụng CN TT của các bộ phận trong cơngty như sau:</small>
* Các phịng ban đều được trang bi máy tính dé bàn Dell được kết nối với
internet; các máy in hỗ trợ in ấn văn bản, chứng từ cần thiết.
* Các phần mềm ứng dụng: Bao gồm các phần mềm quản lý văn phòng cơ ban
<small>như Microsoft Word 2016; Microsoft Exel 2016,... trong công việc quan lý, lưu trữ</small>
dữ liệu về kho, công tác kế tốn, bán hàng trong cơng ty.
* Phần mềm thiết kế đồ họa: Corel Draw giúp thiết kế catolog, mẫu mã, logo
sản phâm theo yêu cầu, hình anh sản phẩm hỗ trợ công tác bán hàng, giới thiệu sản
phẩm đến khách hàng.
* Phần mềm bảo vệ: BKAV pro
- Phần mềm don dep máy tính: Ccleaner
* Phan mềm lập trình: AndroidStudio IDE
* Ngoai ra còn trang bi máy chiếu phục vu giảng day, hệ thống camera giám sát
<small>giúp việc quản lý nhân viên hiệu quả hơn.</small>
- Giám đốc công ty và trưởng các phịng ban đều được cấp Macbook của cơng
<small>ty.</small>
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15"><small>Thực trạng sử dụng các công nghệ trong công ty</small>
<small>3| Điện thoại di động Gọi điện giao dịch.</small>
4 | Máy cham công vân tay Chấm công.
5 |Hệ thông camera Quan sát, theo dõi các bộ phận trong
<small>công ty.</small>
II | Phan mém
1 | Phan mềm soạn thảo Word | Soạn thảo giấy tờ, văn bản trong công ty. 2016 Lam các số sách kế toán.
<small>2 | Bang tinh Exel Luu trữ dữ liệu, quan lý dit liệu.</small>
Giúp tính tốn, tạo các báo, cáo thống kê. Thực hiện công việc kế toán, kho.
3 | Phan mềm Corel Draw Thiết kế logo, mau mã, hình ảnh san
<small>7 | Git Phục vụ lưu trữ source cho lập trình viên</small>
<small>8 | Android Studio IDE lập trình cho lập trình viên</small>
9 | Postman Kiểm thử Api cho lập trình viên va Tester
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">1.6. Đánh giá việc ứng dụng CNTT trong hoạt động sản xuất, kinh doanh
- Tất cả các nhân viên đều có kỹ năng sử dụng thành thạo các phần mềm văn
<small>phịng như Word, Exel.</small>
* Cac máy tính trong cơng ty đều được trang bi các phân mềm quản lý văn phịng mức tốt.
* Các phần mềm, cơng ln được cập nhật phiên bản mới nhất phục vụ kinh
<small>doanh cũng như thực hiện dự án của nhân viên trong công ty.</small>
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">2.1. Tổng quan về phan mềm 2.1.1. Khái niệm phan mềm
Phần mềm máy tính (Computer Software) gọi tắt là Phần mềm (Software) có thé hiểu là tập hợp những câu lệnh hay chỉ thi (Instruction) được viết bang một hoặc nhiều ngơn ngữ lập trình và tn một trật tự xác định, và các dữ liệu, tài liệu liên quan nhằm tự động thực hiện một số nhiệm vụ hay chức năng hoặc giải quyết một van đề
cụ thể nào đó.
Phần mềm thực hiện các chức năng của nó băng cách gửi các chỉ thị trực tiếp đến phần cứng (hay phần cứng máy tính, Computer Hardware) hoặc bằng cách cung
cấp dữ liệu để phục vụ các chương trình hay phần mềm khác.
Phần mềm khác với phan cứng ở chỗ là “phần mềm không thé sờ hay đụng vào”, và cần phải có phần cứng máy tính mới có thé thực thi được chức năng của minh.Theo Edward R. Pressman - một nhà tin học người Mỹ, Phần mềm là một tô
hợp bao gồm ba thành tố:
<small>» Cac chương trình máy tính (Programs)</small>
* Các kiêu loại cấu trúc dit liệu cài đặt chương trình máy tinh (Data structure) <small>* Các tài liệu hướng dẫn sử dụng (Document)</small>
2.1.2. Đặc trưng của phan mém
Phan mềm là một hệ thống logic, chính vì vậy mà một sản phằm phần mềm khơng
được sản xuất theo nghĩa cơ điển có nghĩa là được lắp ráp từ các thiết bị có san. Sản
pham phần mềm không dùng đến các nguyên liệu thô như các sản phẩm khác mà nó hàm chứa một khối lượng chất xám lớn kết tinh trí tuệ của các kỹ sư phần mềm.
Phần mềm sẽ không bị hỏng đi trong q trình sử dụng hoặc hao mịn dưới tác <small>động của mơi trường xung quanh, nó chỉ lạc hậu, lỗi thời và khơng cịn phù hợp với</small> u cầu thực tiễn của người sử dụng.
Mỗi phần mềm được thiết kế theo yêu cầu của người sử dụng mang lại tính độc
<small>đáo của mỗi sản pham phân mém.</small>
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">2.1.3. Phân loại phan mém
Đề phân loại phần mềm, dựa vào rất nhiều tiêu chí như: độ lớn, giá cả, chức
năng, điều kiện sử dụng ... Tùy thuộc vào tiêu chí phân, có thé chia phan mém thanh
các phần mềm khác nhau.
Đối với việc phân loại theo phương thức hoạt động phương thức hoạt động:
tính, thiết bi điện tử. Ví dụ có thé kế đến như: Window, Unix, Linux, các trình điều
khiến hay còn gọi là driver, các phần sụn — firmware và ca BIOS. Hơn thế nữa cũng
bao gồm các hệ điều hành di động Android, iOS, WindowPhone.,...
° Phan mém ứng dụng: Các phần mềm văn phịng, (Microsoft Office,
<small>OpenOffice), các cơng cụ tiện ich, trò choi điện tử,...</small>
* Phan mém dịch mã: trình biên dịch và trình thơng dịch ( các phần mềm này
được gọi là “phiên dịch viên” giữa người và máy tính, giúp con người giao tiếp và
điều khiển máy tính làm việc.
* Nền tảng ứng dụng: các phần mềm là nền tang ứng dụng thì hỗ trợ tạo ra các
<small>ứng dụng khác</small>
Phân theo khả năng hay quyền hạn can thiệp mã nguồn:
* Phần mêm mã nguồn đóng: những phần mềm “đóng” khơng được cơng bố. Dé
được phép sử dụng các phần mềm này, người sử dụng cần phải được cấp bản quyền.
* Phan mém mã nguồn mở: mã nguồn của các phần mềm loại này được công bố
<small>rộng rãi, cơng khai và thường miễn phí. Cho phép người dùng tự do sử dụng và tỉnh</small>
chỉnh mã nguồn.
Quy trình xây dựng phần mềm gồm một tập hợp các hoạt động được tổ chức mà mục đích của nó là xây dựng và phát triển một phần mềm cụ thé.
<small>Giúp xác định :</small>
* Nhân sự: Ai làm), Ai làm gì?; Thời gian: Khi nào làm? Mat bao lâu? * Phương pháp: Làm như thé nào?
- Cơng cụ: Dùng cơng cụ gì dé làm?
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19"><small>» Chi phí: Chi phí? Doanh thu?</small>
* Mục tiêu: Mục tiêu hướng đến là gì?
* Xác định: Khung và tiêu chuẩn dé xây dựng phần mềm.
<small>» - Xác định: Phải thực hiện những công việc gi?</small>
Những loại phần mềm khác nhau thì cần những quy trình riêng của nó.
Ví dụ: Phan mém sử dụng hệ thống thời gian thực thì can phải hồn thành đặc
tả hệ thống trước khi chuyển sang giai đoạn xây dựng. Tuy nhiên với phan mém
thương mại điện tu thì lại có thể vừa đặc tả và vừa xây dựng đồng thời. 2.1.4. Quy trình xây dung phan mém.
Quy trình cơ ban dé xây dựng một phan mềm trải qua các bước sau:
<small>Là bước đặt ra khung kê hoạch của quá trình, tính tốn điêm mạnh, điêm u củadự án. Cơng đoạn này giúp bat dau một dự án phân mêm trở nên tơi ưu va tác độngtích cực đên tiên độ của dự án</small>
<small>Phân tích u cau</small>
<small>Là cơng việc giúp xác định được các yêu câu cho phân mêm hay những thay đơi</small>
<small>dựa trên các nhu câu trong q trình sử dụng phân mêm. Đây là cơng việc có ý nghĩa</small>
<small>rât quan trọng đơi với việc hình thành và thành công của phân mêm. Các yêu câu đưa</small>
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20"><small>ra phải có tính đo được, kiêm thử được liên quan đên các nhu câu của khách hàng và</small>
được định nghĩa phục vụ thiết kế hệ thống phần mềm.
<small>Các phương pháp được sử dụng:</small>
<small>1. Nghiên cứu tài liệu</small>
2. Quan sát thực tế 3. Phỏng vấn
4. Sử dụng biểu mẫu, bảng hỏi, điều tra
Một trong những cách để phân tích yêu cầu một cách dự án đó là dùng use cases. Uses Case là một phần của ngôn ngữ mô hình thống nhất (UML), là tập hợp
các kỹ thuật biéu đồ được sử dụng dé mơ tả các khía cạnh khác nhau của quy trình
phần mềm. Ca sử dụng là những mô tả các cách thức mà các loại người dùng khác nhau tương tác với hệ thống khác nhau.
<small>Ca sử dụng có thê ở nhiêu mức độ khác nhau, từ mục tiêu doanh nghiệp ở mứccao đên mô tả các modules chương trình nhỏ.</small>
<small>Kí hiệu UML dùng cho ca sử dụng:</small>
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">La một công đoạn quan trọng nhất của q trình xây dựng phần mềm, cơng
<small>đoạn giúp mơ hình hóa quy trình và nghiệp vụ, các u câu của phân mêm</small>
<small>Dé mơ hình hóa các nghiệp vu, sử dụng:</small>
- So đồ ngữ cảnh ( CD — Context Diagram )
* Sơ đồ chức năng (Bussiness Funtion Diagram) - So đồ luồng dữ liệu (Data Flow Diagram)
* Sơ đồ luéng thông tin (Information Flow Diagram)
So đồ chức nang (BFD)
+ Là mơ hình được sử dụng dé phân tích chức năng, diễn tả sự phân chia các
chức năng thành các chức năng nhỏ hơn trong hệ thống.
* Ý nghĩa:
<small>* Cho phép xác định các chức năng</small>
* Cho biết vị trí của mỗi chức năng trong tồn bộ hệ thống
<small>» - Làm cơ sở đê xây dựng sơ đô luông dữ liệu, nghiên cứu câu trúc của hệ thông</small>
<small>Các ký pháp</small>
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">* Chức năng tông quát nhất được biểu diễn ở khối đầu tiên của sơ đồ. * Trong cùng một sơ đồ, các chức năng không được trùng tên.
-. Các chức năng phân cấp phải nằm trong giới hạn các chức năng phía trên. Sơ đồ lng thơng tin (IFD)
Mục đích: Mơ tả sự di chuyền của dữ liệu, việc xử lý, lưu trữ dữ liệu trong thế
Hình 2. 4: Ký pháp so đồ luong thông tin IFD
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">CĐ Tất cả van đề can nghiên cứu
a Đối tượng tham gia vào quá trình
Hình 2. 5: Ký pháp sơ đô ngữ cảnh
<small>Luu ý:</small>
* Khi biểu diễn so đồ ngữ cảnh, giữa van đề nghiên cứu và các đơi tượng tham
gia thơng thường phải có hai luồng thông tin theo chiều thuận và chiều ngược. * _ Tên của vấn đề nghiên cứu được đặt trong hình trịn và phải là động từ.
* Giữa các đối tượng tham gia khơng có mối quan hệ với nhau. * Tên quá trình và đối tượng tham gia phải ngắn gọn.
So đồ luông dữ liệu (DFD)
Là sơ đồ chỉ ra cách thơng tin vận chun từ tiến trình này sang tiến trình khác
trong hệ thống.
Quy tắc phân rã: Tùy vào nhu cầu phân rã mà phân rã sơ đồ thành nhiều mức - Sơ đồ mức 0: là sơ đồ phân rã từ sơ đồ ngữ cảnh.
* Sơ đồ mức i: là sơ đồ phân rã từ sơ đồ mức i-1; các sơ đồ phân rã về sau thì
càng chỉ tiết.
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">* Khi biểu diễn sơ đồ DED, tên các dòng dữ liệu phải ngắn gon, khơng có hai
tên trùng nhau trong một sơ đồ.
* Các dịng dữ liệu vào 1 quá trình đều phải được xử lý trước khi đi ra.
* Moi kho đữ liệu bắt bược phải có 1 dịng dữ liệu vào và dịng dữ liệu ra. <small>- C6 thể biểu diễn nhiều lần nguồn và đích trong cùng 1 sơ đơ.</small>
<small>Thiết kê phan mém</small>
Là quá trình giải quyết vấn đề và lập kế hoạch cho một giải pháp phần mềm. Khi mục đích, đặc điểm kĩ thuật của phần mềm đã xác định, lập trình viên sẽ thiết kế dé phát triển kế hoạch cho giải pháp phần mềm. Kết quả của giai đoạn này là tạo được bản hồ sơ thiết kế cho phần mềm, cơ sở cho cơng đoạn lập trình máy tính. Bao gồm:
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">1. Thiết kế kiến trúc 2. Thiết kế CSDL
3. Thiết kế giải thuật 4. Thiết kế giao diện Thiết kế kiến trúc
Mục tiêu: phát triển cấu trúc chương trình module, biểu diễn mối quan hệ điều khiển giữa các module.
Thiết kế cơ sở dữ liệu
Hiện nay, có 2 phương pháp thiết kế CSDL: * Thiết kế từ các thông tin đầu ra
* _ Thiết kế bằng phương pháp mơ hình hóa Thiết kế các giải thuật
* Giải thuật được hiểu là một thủ tục có thể thực hiện được bằng máy tính, là <small>q trình xử lý trong mỗi bài tốn.</small>
* Dé biểu diễn các giải thuật, thông thường hay sử dụng lưu đồ nhằm xác định
Hình 2. 7: Ký pháp sơ đồ giải thuật
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">Thiết kế giao diện
Mục dich: tạo ra cách bố trí, cơ chế tương tác giữa người sử dụng với phần mềm.
Nguyên tắc thiết ké:
* Tao ra giao diện dé sử dụng, thân thiện với người dùng, gần giống với hình
<small>ảnh thực mag nghười sử dụng đã quen.</small>
* Khi thiết kế chỉ sử dụng tối đa 3 màu. -_ Không thiết kế giao diện nhấp nháy.
<small>Lập trình máy tính</small>
Lập trình máy tính hay cịn gọi tắt là lập trình: lập trình viên cài đặt một hoặc nhiều thuật toán trừu tượng bằng một ngơn ngữ lập trình để tạo ra một chương trình
<small>máy tính.</small>
<small>Bao gơm các cơng đoạn:</small>
<small>1. Lựa chọn hệ quản trị CSDL nhằm cài đặt CSDL</small>
<small>2. Lựa chọn công cụ lập trình</small>
<small>3. Lập trình tích hợp</small>
Kiểm thứ phan mém:
<small>Là cơng đoạn kiêm tra chât lượng của sản phâm, đánh giá hiệu năng cũng như</small>
<small>độ đáp ứng các yêu câu của phân mêm. Công đoạn này nhăm phát hiện và yêu câu</small>
<small>khăc phục những sai sót của phân mêm. Kiêm thử phân mêm có thê thực hiện xun</small>
suốt trong q trình phát triển phần mềm dưới dạng kiểm thử các modul. Triển khai phan mềm
Khi phần mềm đã qua quá trình kiểm thử và khắc phục tồn bộ những sai sót được phát hiện và đảm bảo phần mềm có thê vận hành. Phần mềm sẽ được triển khai cho khách hàng sử dụng. Công đoạn này bao gồm cài đặt cấu hình phần mềm theo
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">yêu cầu của khách hàng và hướng dẫn sử dụng cho khách hàng nhằm đạt hiệu quả
<small>cao trong quá trình sử dụng.</small>
<small>Bao tri</small>
Đây là cơng đoạn sau cùng của q trình xây dựng phần mềm, tuy nhiên lại là quá trình đi kèm suốt quá trình hoạt động của phần mềm. Trong quá trình phần mềm hoạt động, nếu phát sinh những lỗi chưa được phát hiện ở các công đoạn trước, hay khách hàng muốn nâng cấp những tinh năng mới dé đáp ứng các nhu cầu mới, đây là quá trình sẽ giải quyết những vấn đề này đảm bảo cho phần mềm luôn đáp ứng tốt
nhất những yêu cầu của khách hàng.
2.2. Một số mơ hình triển khai xây dựng phan mềm
<small>2.2.1. Mơ hình thác nước</small>
Là mơ hình cơ điển và đầu tiên, phổ biến được áp dụng trong q trình phan mềm. Nó chia q trình phát triển phần mềm thành các giai đoạn tuần tự nối tiếp nhau. Mỗi giai đoạn có một mục đích riêng, đầu ra của giai đoạn trước sẽ là đầu vào
<small>của giai đoạn sau</small>
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">Ứng dụng
<small>Các ứng dụng thường được xây dựng dựa trên mơ hình này</small>
Các phần mềm của các dự án nhỏ, ngắn
Các dự án thường giữ nguyên những yêu cau ban đầu, ít thay đổi, ít và hầu
<small>như không cập nhật chức năng mới.</small>
Ưu điểm
Sử dụng dễ dàng, tiếp cận nhanh chóng, quản lý thuận tiện, đơn giản
Các giai đoạn được xác định rõ ràng, đầu ra, đầu vào...
<small>Cuôi môi giai đoạn sẽ được xác nhận, đảm bảo phát hiện sớm các sai sót đê</small>
khắc phục
Nhược điểm
Độ linh hoạt và phạm vi điều chỉnh còn hạn chế
Khó có dé đo lường hay đánh giá tiến độ của các giai đoạn
Khơng thích hợp cho các dự án lớn, kéo dài, yêu cầu điều chỉnh cao Việc quay lại giai đoạn đã kết thúc khá khó khăn
2.2.2. Mơ hình xoắn ốc
<small>Là mơ hình phù hợp cho các dự án lớn, chi phí cao, độ phức tạp lớn và yêucâu điêu chỉnh thường xuyên.</small>
</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29"><small>pha tiếp theo</small>
Hình 2. 9: Mơ hình xoắn ốc .( Nguon: 12/,
<small>Slide 18)</small>
Uu diém
<small>» Pht hợp với các dự có quy mơ lớn</small>
<small>» Dê kiêm sốt các q trình theo các yêu câu</small>
* Đánh giá các quá trình một cách thực tế, phù hợp
Nhược điểm
» _ Yêu cầu quản lý dự án cần có kỹ năng tốt, đánh giá được các rủi ro kịp thời.
* Chỉ phí cao, thời gian cần dé hồn thành dự án lớn
<small>» Phir tạp và khơng thích hop với các dự án nhỏ và ít rủi ro.</small>
* _ Yêu cầu thay đổi thường xuyên dẫn có thể đến lặp vô hạn. * Chưa phố biến
<small>2.3. Công cụ thực hiện2.3.1. Android Studio</small>
<small>Là IDE chính thức trong phát triển ứng dụng Android, là mơi trường phát triển</small> tích hợp chuyên nghiệp hỗ trợ thiết kế và xây dựng các ứng dụng trên nền tảng
<small>Android.</small>
</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30"><small>Các tính năng chính:</small>
Một hệ thống xây dựng Gradle linh hoạt.
<small>Trình mơ phỏng nhanh và tính năng phong phú</small>
Phát triển cho tất cả thiết bị Android
Instant Run dé đây các thay đôi vào ứng dụng đang chạy của bạn mà không cần xây dựng một APK mới
Mẫu mã và tích hợp GitHub đề giúp bạn xây dựng các tính năng ứng dụng phô biến và nhập mã mẫu
Các công cụ và khuôn khổ thử nghiệm mở rộng
Lint công cụ dé bắt hiệu suất, kha năng sử dụng, tương thích phiên bản, và các vấn đề khác
<small>Hỗễ trợ C ++ và NDK</small>
<small>Tích hợp hỗ trợ Google Cloud Platform , giúp dé dàng tích hợp Google Cloud</small>
<small>Messaging và App Engine</small>
<small>Hỗ trợ tích hợp sâu Firebase vào trong các ứng dụng chỉ sau một click chuột.</small>
<small>SQLite Databse</small>
SQLite là thư viện phần mềm trién khai một SQL Database Engine, không cần máy chủ, linh hoạt khép kín và nhỏ gọn. Là cơ sở dữ liệu khơng cần cấu hình.
Các đặc trưng nồi bật của SQLite:
SQLite khơng u cầu một quy trình hoặc hệ thống máy chủ riêng biệt đề hoạt
SQLite khơng cần cấu hình, có nghĩa là không cần thiết lập hoặc quản trị.
Một cơ sở dữ liệu SQLite hoàn chỉnh được lưu trữ trong một file disk da nền
<small>tảng (cross-platform disk file).</small>
SQLite rất nhỏ và trọng lượng nhẹ, dưới 400KiB được cấu hình đầy đủ hoặc
<small>dưới 250KIB với các tính năng tùy chọn bị bỏ qua.</small>
<small>SQLite là khép kín (self-contained), có nghĩa là khơng có phụ thuộc bên ngồi.</small>
<small>Các transaction trong SQLite hồn tồn tuân thủ ACID, cho phép truy cập an</small>
toàn từ nhiều tiến trình (process) hoặc luồng (thread).
</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">* SQLite hỗ trợ hầu hết các tính năng ngơn ngữ truy van (query language) được tìm thấy trong tiêu chuẩn SQL92 (SQL2).
* SQLite được viết bằng ANSI-C và cung cap API đơn giản và dé sử dung.
<small>* SQLite có sẵn trên UNIX (Linux, Mac OS-X, Android, iOS) và Windows</small>
<small>(Win32, WinCE, WinRT).</small>
2.4. Cơ sở lý thuyết về Android, ngôn ngữ lập trình Java. 2.4.1. Lý thuyết Android.
Là hệ điều hành trên nền tảng Linux, thiết kế tạo ra dành cho các thiết bị di
<small>động có màn hình cảm ứng (điện thoại thơng minh, máy tính bảng, tablet, wearable,</small>
Auto...). Thời gian đầu Android được phát triển bởi Android Inc cùng với hỗ trợ của
<small>Google, sau này chính thức được Google mua lại vào năm 2005.</small>
Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh Thiết bị Cầm tay Mã
Nguồn mở (Open Handset Alliance) gồm các thành viên nổi bật trong ngành viễn thông và thiết bi cam tay như: Texas Instruments, Broadcom Corporation,
<small>Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm,Samsung Electronics, Sprint Nextel, T-Mobile, ARM Holdings, Atheros</small>
<small>Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson,</small>
<small>Toshiba Corp, and Vodafone Group,...</small>
Mục tiêu của Liên minh nay là nhanh chóng đổi mới dé đáp ứng tốt hon cho nhu cầu người tiêu dùng và kết quả đầu tiên của nó chính là nền tảng Android.
Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất thiết, các nhà khai thác và các lập trình viên thiết bị cầm tay. Phiên bản SDK lần đầu tiên phát hành vào
tháng 11 năm 2007, hãng TMobile cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile G1, chiếc smartphone đầu tiên dựa trên nền tảng Android. Một vài ngày sau đó, Google lại tiếp tục cơng bố sự ra mắt phiên bản Android SDK release
Candidate 1.0. Trong tháng 10 năm 2008, Google được cấp giấy phép mã nguồn mở
cho Android Platform. Khi Android được phát hành thì một trong s6 các mục tiêu
</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">trong kiến trúc của nó là cho phép các ứng dụng có thê tương tác được với nhau và có thể sử dụng lại các thành phần từ những ứng dụng khác. Việc tái sử dụng không
chỉ được áp dụng cho các dịch vụ mà nó cịn được áp dụng cho cả các thành phần dữ
liệu và giao diện người dùng. Vào cuối năm 2008, Google cho phát hành một thiết bi cam tay được gọi là Android Dev Phone | có thé chạy được các ứng dụng Android mà không bị ràng buộc vào các nhả cung cấp mạng điện thoại di động. Mục tiêu của thiết bị này là cho phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết bị thực có thê chạy hệ điều hành Android mà không phải ký một bản hợp đồng
<small>nào. Vào khoảng cùng thời gian đó thì Google cũng cho phát hành một phiên vản vá</small>
lỗi 1.1 của hệ điều hành này. Ở cả hai phiên ban 1.0 va 1.1 Android chưa hỗ trợ soft-keyboard mà đòi hỏi các thiết bị phải sử dụng bàn phím vật lý. Android cố định
van đề này bằng cach phát hành SDK 1.5 vào tháng Tư năm 2009, cùng với một
số tính năng khác. Chăng hạn như nâng cao khả năng ghi âm truyền thông, vật dụng,
<small>Activity Manager Window Manager Content Provider View System</small>
<small>Telephony Resource Location NotificationPackage Manager Manager Manager Manager Manager</small>
<small>Surface Manager Framework Core Libraries</small>
<small>OpenGL) ES FreeType Balvik Virtual</small>
<small>SäL SSL</small>
<small>LINUX KERNEI</small>
<small>Touch screen Memory Card Power</small>
<small>Display Driver Driver Driver Management</small>
<small>Keypad Driver WiFi Driver Audio Drivers</small>
Hình 2. 10: Kiến trúc của Android
</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">Tang 1: Tang thuộc về người dùng - Applications.
Hình 2. 11: Tang Applications trong Kiến trúc Android
- Applications — là tang chứa các ứng đụng được cài đặt trong chương trình.
- _ Người dùng sử dụng điện thoại Android sẽ tương tác trong tầng này.
- System App: La ứng dụng được nhà phát triển cài đặt san vào trong điện thoại (
Hinh 2. 12: Tang Application Framework trong Kiến trúc Android
Là tầng dành cho nhà phát triển ứng dụng. Tầng này chứa tất cả các đối tượng được Android định nghĩa sẵn dé giúp lập trình viên phát trién một ứng dụng. Bao gồm:
= Activity Manager: là đối tượng quản lý các giao diện của chương trình và xử
<small>lý các thao tác của người dùng trên giao diện đó.</small>
= Window Manager: quản lý các thơng số của màn hình điện thoại bao gồm: Độ
<small>phân giải, kích thước và tương tác của người dùng trên màn hình.</small>
</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">" Content Provider: là đối tượng quan lý co sở dữ liệu (Database) của tất cả các ứng dụng trong điện thoại, bằng việc sử dụng đối tượng này có thể chia sẻ tài
<small>nguyên giữa các ứng dụng.</small>
<small>Ví dụ: khi tạo ứng dụng media thì phải vào cơ sở dữ liệu của máy đọc toàn bộ</small>
các bai nhạc dé chạy trong ứng dụng media. Dùng Content Provider.
= View System: là đôi tượng quản lý tat cả các đối tượng giao diện được sử dụng
<small>trong chương trình.</small>
= Package Manager: là đối tượng quản lý tat cả các gói ứng dụng được sử dụng trong điện thoại, dựa vào nó sẽ biết được ứng dụng nảo đang được sử dụng.
= Telephony Manager: là đôi tượng quản lý cuộc gọi, tin nhắn, network được
đến, cuộc gọi đi, cuộc gọi nhỡ, nội dung tin nhắn, tình trạng của mạng.
= Resource Manager: là đối tượng dé quan lý các tài nguyên bên trong một ứng dụng bao gồm: hình ảnh, âm thanh, màu sắc...
= Location Manager: là đối tượng được sử dụng dé theo dõi vị trí của điện thoại,
hiển thị vi trí lên bản đồ thé giới.( Dựa vào GPS, hoặc sim khi bật 3G) tức là dựa
Hình 2. 13: Tang Libries va Android Runtime trong Kiến trúc Android
<small>= Libraries: La tang chứa các thư viện được viet băng C va C++ là câu nôi giữa</small>
phần cứng và tầng application framework.
</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">= ART là tầng chứa thư viện lõi giúp vận hành và quản lý các ứng dụng và các
<small>dịch vụ được sử dụng trong điện thoại.</small>
VD: RAM là 2G, khi bật chương trình nào đó lên và nó ton 1,8 GB. Bong nhién
có cuộc gọi đến yêu cau 0,3GB thì lúc day Android Runtime sẽ thấy cuộc gọi ưu tiên hơn, lúc đấy để giải phóng và làm chết ứng dụng đang sử dụng mà khơng vì lỗi gì cả. Tang 4: Nhân Linux (Linux Kernel)
<small>LINUX KERNEI</small>
<small>Touch screen Memory Card Power</small>
<small>Driver Driver Management</small>
<small>Keypad Driver WiFi Driver Audio Drivers</small>
Hình 2. 14: Tang Linux Kernel trong Kiến trúc Android
<small>Với khoảng 115 ban vá, tang nay liên hệ với phan cứng va chứa toàn bộ các</small>
driver phần cứng cần thiết như camera, bàn phím, màn hình...
<small>2.4.3. Giao diện</small>
Giao diện Android hoạt động dựa trên nguyên tắc tác động trực tiếp, sử dụng
cảm ứng như các động tác, kéo dãn, vuốt, chạm, giữ dé xử lý các đối tượng trên màn hình. Hiệu ứng rung dé tạo phản hồi rung cho người dùng. Thiết bi phan cứng
bên trong hỗ trợ điều khiển các hành động khác của người dùng như chuyên chế độ
<small>màn hình.</small>
Cấu trúc 1 màn hình ứng dụng
</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36"><small>Statusbar(indicator): Nơi hiển thicột sóng, đồng hỗ pim,....</small>
<small>Actionbar, hiển thị các thao tác</small>
<small>nhanh của người dùng trên giao</small>
<small>Layout: Giao diện chính</small>
<small>Bottom Bar: Là nơi điều hướng</small>
<small>của đt</small>
<small>a ¬</small>
<small>Back Press Recent Task</small>
Hình 2. 15: Cấu trúc của một màn hình Android
<small>Trong đó:</small>
<small>Statusbar: Là thanh trạng thái của màn hình giao diện.</small>
* NO giúp hiển thị trạng thái của ứng dụng hoạt động dưới nền.
* Có thé: 1 đổi màu của thanh trạng thái, ân nó đi.
<small>Acfionbar: là thanh chứa những thao tác của người dùng trên giao diện, thường</small>
được thé hiện bang cac icon.
NavigationBar: là thanh điều hướng trong ứng dụng, thường sử dụng bang 3 thao
<small>lệtac.</small>
<small>tiên, thì nó sẽ thốt chương trình.</small>
<small>hoạt động, giao diện trở vé man hình Home.</small>
<small>2.3.4 Ngôn ngữ lập trình Java.a. Ngơn ngữ lập trình Java.</small>
Là một ngơn ngữ lập trình hướng đối tượng và dựa trên các lớp. Java được
phát triển bởi tập đồn Oracle.Chương trình phần mềm viết bằng Java có thể chạy
trên mọi nền tảng khác nhau như Linux, Mac OS, Windows, Android,....
<small>b. Java Development Kit.</small>
Java Development Kit: (Bộ công cụ mã nguồn mở cho người phat triển ứng dụng bằng ngơn ngữ lập trình Java) là một tập hợp những công cụ phần mềm được phát triển bởi Sun Microsystems dành cho các nhà phát triển phần mềm, dùng để viết
<small>những applet Java hay những ứng dụng Java.</small>
Được phát hành miễn phí gồm có:
°_ Bộ thư viện mã nguồn: Là bộ mã nguồn chứa các cậu lệnh và cú pháp được
thiết kế sẵn giúp cho lập trình viên có thé sử dụng dé thiết kế chuwong trình
* Trình biên dịch (Complier): giúp biên dịch các câu lệnh được viết băng ngôn ngữ Java sang mã Bytecode. Khi chạy chương trình, chỉ cần sử dụng các mã byte
<small>code này là được.</small>
* Trinh thông dich (Interpreter): Giúp thơng dịch từng dịng lệnh sau đó chun
qua ngơn ngữ máy dé máy tính thực thi
5 Trinh giúp sửa lỗi (Debugger): Giúp tạo ra các nút dừng( block point ) tại các dong code thực thi chương trình dé kiểm tra giá trị tức thời của các đối tượng,
<small>qua đó giúp cho việc rà sốt lỗi của chương trình hiệu quả</small> 2.3.5. Mơ hình thiết kế Model View Presenter (MVP)
<small>MVP- mơ hình kiến trúc hướng giao diện người dùng, thiết kế tạo thuận lợi</small> cho việc kiểm thử cũng như tạo ra sự tách biệt giữa tầng hiển thị dữ liẹu và tầng dữ
<small>liệu.</small>
</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38"><small>Model changed User actionsJpdate mode Jpdate |</small>
<small>Hình 2. 16: Mơ hình MVP Pattern Design</small>
<small>Trong đó:</small>
* Model: Interface xác định cách mà đữ liệu hiển thị
* View: Là giao diện hién thị giao diện và tiếp nhận tương tác của người dùng
<small>sau đó gửi cho Presenter</small>
* Presenter: Là nơi xử lý logic, thay đối, update Model sau đó đưa tới View dé hiền thị
MVP cho phép tách tang Presenter ra khỏi tang Model, chính nhờ vậy giao diện được tương tác tách biệt với việc thê hiện giao diện lên màn View. Có thể hiểu
đơn giản, toàn bộ phần logic được tách ra và đưa vào Presenter đề xử lý sau đó sẽ trả kết quả để update View và Model.
<small>2.4 LocalDatabase trong Android — Room Database</small>
<small>2.4.1. Khái niệm Room.</small>
Room là một cơ sở dữ liệu trên nền tang SQLite Database. Là cơ sở dir liệu
<small>được giới thiệu bởi google.</small>
Room được tạo ra 1 lần đầu tiên sử dụng ứng dụng, được ton tại và lưu trữ vào
<small>vùng nhớ System Storage của ứng dụng đó.</small>
</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">Room bao gồm 3 thành phan chính:
* Database: Là đối tượng giúp tạo hoặc kết nối đến CSDL
* DAO: Là các đối tượng quản lý, giúp thực hiện hành vi logics: tìm kiếm/ thêm/
<small>sửa/ xóa trên các bảng của CSDL</small>
* Enfites: Là các đôi tượng định nghĩa các bang dit liệu trong CSDL.
<small>Get Entities from dbPersist changes</small>
<small>Get DAO back to db</small>
<small>| | get / set field values</small>
Hình 2. 17: Cấu trúc của Room trong Android
2.4.2. Các bước để tạo CSDL Room.
<small>Bước 1: Tạo RoomEntities: Mỗi đối tượng (mỗi bảng) được coi là 1 class và</small> cũng chính là một RoomEntities. Mỗi thuộc tính của các đối tượng được khai báo trước đó một tiền tố @Columinfor(name= “ten_cot”) . Tiền tố này sẽ tạo thành các
<small>cột thuộc tinh trong bảng RoomEntities tương ứng khi tạo CSDL.</small>
Bước 2: Tạo DAO Interface: Đây là công cụ đề giao tiếp giữa RoomDatabase và App. Trong DAO Interface là các lệnh Query cần thiết.
Bước 3: Tạo RoomDatabase. Khai báo class kế thừa RoomDatabase và gọi các DAO và RoomEntities dé khởi tạo.
<small>Bước 4: Khởi tạo Database trong Androistudio.</small>
</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">CHUONG 3. XÂY DUNG APP BAN DO AN NHANH FASTFOOD - APP DANH CHO KHACH HANG
<small>3.1. M6 tả bai toán</small>
Cửa hàng FastFood là cửa hàng bán đồ ăn nhanh trên dia bàn Hà Nội.
Chủ cửa hàng muốn có một App bán hàng nhằm hỗ trợ việc quản lý cửa hàng khi nhu cầu và định hướng phát triển cửa hàng tăng cao, ngồi ra giúp cửa hàng giảm thiêu chi phí nhân cơng thủ cơng lâu nay. Về phía App của khách
hàng, chủ cửa hàng muốn khách hàng của mình có thê đăng nhập App bằng
<small>tải khoản cá nhân và tự quản lý tài khoản cá nhân đó. Khách hàng khi sử dụng</small>
App có thé xem tồn bộ các mặt hàng bán của cửa hàng cũng như các chương
trình khuyến mãi, giảm giá. Có thể đặt bàn trước tại cửa hàng trên App, cũng như đặt hàng online. Khi đặt hàng online, khách hàng chọn mua các sản phẩm và tiễn hành thanh toán, lựa chọn địa điểm giao hàng, sau khi thanh tốn thành
cơng hay đặt bàn thành cơng, đơn hàng, đơn đặt bàn sẽ được gửi đến App của
quản lý cửa hàng. Ngồi ra, khách hàng cịn có thé tự tạo danh sách đồ ăn yêu thích cho bản thân dé dé dang cho việc mua hàng tại cửa hàng, cũng như quản
<small>lý các đơn hàng đã mua trong quá khứ.</small>
Qua yêu cầu của chủ cửa hàng, em xây dựng những chức năng sau dành
<small>cho App phiên bản khách hàng như sau:</small>
Các chức năng cần có của phần mềm:
<small>» Quan lý tài khoản:</small>
<small>" Chức năng đăng nhập</small>
<small>= Chứa năng đăng ký</small>
= Chức năng cập nhật thông tin tài khoản ( thay đồi thông tin, cấp mật khẩu )
<small>* Quản lý mua hàng:</small>
= Chức năng xem thông tin sản phẩm
<small>= Chức năng mua hang</small>
</div>