You are on page 1of 46

Chuyên đề thực tậpĐẠI HỌC

KINH TẾ QUỐC
tốt nghiệp DÂN
GVHD: TS.Nguyễn Thị Bạch Tuyết

VIỆN CÔNG NGHỆ THÔNG TIN VÀ KINH TẾ SỐ


6ĐẠI HỌC KINH TẾ QUỐC DÂN
VIỆN CÔNG NGHỆ THÔNG TIN VÀ KINH TẾ SỐ

CHUYÊN ĐỀ THỰC TẬP TỐT NGHIỆP

Đề tài:CHUYÊN ĐỀ THỰC TẬP TỐT NGHIỆP


XÂY DỰNG APP BÁN ĐỒ ĂN NHANH FASTFOOD
Đề tài:
Sinh viên thực hiện : Nguyễn Ngọc Khánh
XÂYMã
DỰNG APP BÁN ĐỒ
sinh viên ĂN NHANH FASTFOOD
: 11162581
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
Sinh viên thực hiện : Nguyễn Ngọc Khánh
Mã sinh viên : 11162581
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, 06/2020

MỤC LỤC

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

DANH MỤC HÌNH ẢNH............................................................................................4


LỜI CẢM ƠN...............................................................................................................6
LỜI MỞ ĐẦU...............................................................................................................7
CHƯƠNG 1. TỔNG QUAN VỀ CÔNG TY TNHH MỘT THÀNH VIÊN DỊCH
VỤ GIÁO DỤC THÀNH NGUYÊN...........................................................................9
1.1. Thông tin cơ bản của doanh nghiệp...............................................................9
1.2. Quá trình thành lập và phát triển..................................................................9
1.3. Đặc điểm hoạt động kinh doanh...................................................................10
1.4. Cơ cấu tổ chức...............................................................................................11
1.5. Thực trạng về việc ứng dụng CNTT trong hoạt động sản xuất, kinh doanh
của công ty...............................................................................................................14
1.6. Đánh giá việc ứng dụng CNTT trong hoạt động sản xuất, kinh doanh....16
CHƯƠNG 2. CƠ SỞ LÝ LUẬN VỀ XÂY DỰNG PHẦN MỀM............................17
2.1. Tổng quan về phần mềm..............................................................................17
2.1.2 Đặc trưng của phần mềm.........................................................................17
2.1.3. Phân loại phần mềm.................................................................................18
2.1.4. Quy trình xây dựng phần mềm.................................................................19
2.2. Một số mô hình triển khai xây dựng phần mềm.........................................28
2.2.1. Mô hình thác nước...................................................................................28
2.2.2. Mô hình xoắn ốc.......................................................................................30
2.3. Công cụ thực hiện..........................................................................................31
2.3.1. Android Studio.........................................................................................31
2.3.2. SQLite Databse........................................................................................31
2.4. Cơ sở lý thuyết về Android, ngôn ngữ lập trình Java................................32
2.4.1. Lý thuyết Android.....................................................................................32
2.4.2. Kiến trúc Android.....................................................................................33
2.3.4 Ngôn ngữ lập trình Java...........................................................................38
2.3.5 Mô hình thiết kế Model View Presenter (MVP)........................................39
2.4 LocalDatabase trong Android – Room Database.......................................40

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

2.4.1. Khái niệm Room.......................................................................................40


2.4.2. Các bước để tạo CSDL Room..................................................................41
CHƯƠNG 3. XÂY DỰNG APP BÁN ĐỒ ĂN NHANH FASTFOOD - APP DÀNH
CHO KHÁCH HÀNG................................................................................................42
3.1. Mô tả bài toán................................................................................................42
3.2. Phân tích hệ thống.........................................................................................43
3.3. Thiết kế kiến trúc..........................................................................................47
3.4. Thiết kế CSDL...............................................................................................47
3.5. Thiết kế giải thuật.........................................................................................53
3.6. Thiết kế giao diện..........................................................................................56
3.7. Lập trình máy tính........................................................................................65
3.7.1. Khai báo thư viện cho App.......................................................................65
3.7.2. Khai báo quyền người dùng cho App.......................................................66
3.7.3. Khởi tạo các đối tượng.............................................................................67
KẾT LUẬN.................................................................................................................77
PHỤ LỤC CÁC ĐOẠN CODE..................................................................................78
TÀI LIỆU THAM KHẢO..........................................................................................88

DANH MỤC HÌNH ẢNH

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Hình 1. 1: Sơ đồ cơ cấu tổ chức....................................................................................10


YHình 2. 1: Ký hiệu UML dùng cho ca sử dụng..........................................................20
Hình 2. 2: Ký pháp của phương pháp Use Case...........................................................20
Hình 2. 3: Ký pháp sử dụng trong sơ đồ chức năng BFD.............................................21
Hình 2. 4: Ký pháp sơ đồ luồng thông tin IFD.............................................................22
Hình 2. 5: Ký pháp sơ đồ ngữ cảnh..............................................................................23
Hình 2. 6: Ký pháp sơ đồ luồng dữ liệu DFD...............................................................24
Hình 2. 7: Ký pháp sơ đồ giải thuật..............................................................................26
Hình 2. 8: Mô hình thác nước.......................................................................................28
Hình 2. 9: Mô hình xoắn ốc .........................................................................................29
Hình 2. 10: Kiến trúc của Android...............................................................................31
Hình 2. 11: Tầng Applications trong Kiến trúc Android..............................................32
Hình 2. 12: Tầng Application Framework trong Kiến trúc Android.............................32
Hình 2. 13: Tầng Libries và Android Runtime trong Kiến trúc Android......................33
Hình 2. 14: Tầng Linux Kernel trong Kiến trúc Android.............................................34
Hình 2. 15: Cấu trúc của một màn hình Android..........................................................35
Hình 2. 16: Mô hình MVP Pattern Design....................................................................37
Hình 2. 17: Cấu trúc của Room trong Android.............................................................38
YHình 3. 1: Sơ đồ chức năng xây dựng App FASTFOOD...........................................42
Hình 3. 2: Sơ đồ ngữ cảnh xây dựng App FASTFOOD...............................................43
Hình 3. 3: Sơ dồ DFD mức 0........................................................................................43
Hình 3. 4: Sơ đồ DFD mức 1 “Quản lý người dùng”....................................................44
Hình 3. 5: Sơ đồ DFD mức 1 “Quản lý bán hàng”.......................................................45
Hình 3. 6: Sơ đồ Kiến trúc xây dựng App FASTFOOD...............................................46
Hình 3. 7: Giải thuật thêm, xóa món ăn trong danh sách yêu thích..............................52
Hình 3. 8: Giải thuật tính tiền cho một đơn hàng..........................................................53
Hình 3. 9: Giải thuật thanh toán....................................................................................54

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Hình 3. 10: Màn hình Splash và Onboarding................................................................56


Hình 3. 11: Màn hình đăng nhập và màn hình đăng ký................................................56
Hình 3. 12: Màn hình Home ( màn hình chính )...........................................................57
Hình 3. 13: Màn hình Khám phá và Dialog Detail Food..............................................58
Hình 3. 14: Màn hình Danh sách món ăn yêu thích......................................................59
Hình 3. 15: Màn hình Danh sách món ăn yêu thích......................................................60
Hình 3. 16: Màn hình Hóa đơn chi tiết và Lịch sử đơn hàng........................................61
Hình 3. 17: Màn hình thông tin cá nhân.......................................................................62
Hình 3. 18 Màn hình Khuyến Mãi................................................................................63

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ể hoàn thiện tốt chuyên đề này.

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Em xin cảm ơn đến thầy Nguyễn Văn Thành và toàn bộ anh chị trong công ty
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
điều kiện cho em trong suốt quá trình thực tập tại công ty.

Một lần nữa, em xin chân thành cảm ơn!

LỜI MỞ ĐẦU
1. Lý 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

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

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 để 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 tính năng nào để
thu hút khách hàng là điều hết sức cần thiết đối với doanh nghiệp.

Tham gia vào dự án outsourcing của công ty TNHH MTV Dịch vụ giáo dục
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.

2. Mục đích nghiên cứu


- Nghiên cứu công nghệ lập trình ứng dụng với Android
- Nắm rõ các hoạt động trong qui trình vận hành kinh doanh, Xây dựng phần
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

Phạm vi nghiên cứu:

- Để 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

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

- Thực trạng quản lý mua hàng: nghiệp vụ đặt bàn, mua hàng, quản lý đơn đặt
hàng, quản lý đơn đặt bàn, thanh toá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
- 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

Để thực hiện đề tài, em sử dụng phương pháp:

- Phương pháp thu thập thông tin


• Phương pháp thực nghiệm khoa học
• Phương pháp điều tra
• Phương pháp phân tích tổng kết
- Phương pháp thiết kế Top – Down Design
5. Kết cấu

- Chương 1. Tổng quan về công ty TNHH Một thành viên Dịch vụ giáo dục
Thành Nguyên
- Chương 2. Cơ sở lý luận về xây dựng phần mềm
- Chương 3. Xây dựng App bán đồ ăn nhanh FASTFOOD

CHƯƠNG 1. TỔNG QUAN VỀ CÔNG TY TNHH MỘT THÀNH VIÊN DỊCH


VỤ GIÁO DỤC THÀNH NGUYÊN

1.1. Thông tin cơ bản của doanh nghiệp

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Thuộc loại hình doanh nghiệp Công ty Trách nhiệm hữu hạn Một thành
viên. Với tên chính thức là CÔNG TY TNHH MỘT THÀNH VIÊN DỊCH VỤ
GIÁO DỤC THÀNH NGUYÊN. Ô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
dịch tại ngân hàng: Ngân hàng thương mại cổ phần Ngoại thương Việt Nam là :
0851000022934
1.2. Quá trình thành lập và phát triển
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ày
05/02/2018 và đi vào hoạt động chính thức ngày 05/02/2018.
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 thị trường và tạo niềm tin, sự hài lòng 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
nước, có được các khách hàng tiềm năng và thị trường riêng của mình.
1.3. Đặc đ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
Nguyên kinh doanh trong lĩnh vực:
 Giáo dục

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Bắt đầu từ khi thành lâp, công ty TNHHMTV Dịch vụ giáo dục Thành
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
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 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 thành
lập công ty đã hoàn thành xong 6 khóa học. Các học viên được đào tạo 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 hoàn thành khóa học là 12.000.000đ/ 1 học viên.
 Outsource – Gia công phần mềm.

Bên cạnh lĩnh vực chính là lĩnh vực giáo dục, ông Nguyễn Văn 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 quả.

Từ khi thành lập công ty đã thực hiện không ít dự án lớn nhỏ, đặc biệt có
thể kể đến cá dự án thành công đã chạy như:

Ứng dụng 3SDMS: https://play.google.com/store/apps/details?


id=com.neos.frwamvp

Ứng dụng TiKi: https://play.google.com/store/apps/details?


id=com.neos.fima

Thị trường kinh doanh

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Công ty đẩy mạnh hoạt động kinh doanh tại Thành phố Hà Nội, ngoài ra còn mở
rộng các dự án trên địa bàn toàn quốc.

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 trình
học online phục vụ nhu cầu học của các học viên.

Về mảng outsourcing, đối tác khách hàng 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 quá trình quản lý kinh doanh. Các khách hàng lớn thường 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ọ.

1.4. Cơ cấu tổ chức


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
đượ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à
quản lý có hiệu quả:

Hình 1. : Sơ đồ cơ cấu tổ chức

Chức năng, nhiệm vụ của các bộ phận trong công ty:


• 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.

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

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ế Toá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ế toán; lưu trữ, bảo quản các chứng từ kế toán và sổ sách kế toán của công
ty.
- 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ý
khác.
- 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ế toán định kì theo yêu cầu của giám đốc và theo qui định của
nhà nước.
- Tham mưu cho giám đốc các kế hoạch tài chính.
- Kê khai, quyết toán thuế của công ty và nộp các khoản thuế phải nộp cho cơ
quan thuế.

• Phòng Nhân Sự

- Triển khai và thực hiện các chính sách về nhân sự, tiền lương.
- Chấm công hàng ngày, tính lương và trả lương hàng tháng cho nhân viên

• Phòng Kỹ Thuật

- 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
về sản phẩm của khách hàng.
 Phối hợp với các phòng ban khác để cho ra sản phẩm tốt nhất, giải quyết
các vấn đề ứng dụng của sản phẩm.

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

- Nhân viên kỹ thuật


 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 để đư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ử để 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 để đưa 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 quá trình nghiệm thu sản phẩm.

• Phòng kinh doanh, triển khai


- Tìm kiếm các khách hàng 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.
- Thống kê các hợp đồng với đối tác, xử lý giải quyết các vấn đề có liên quan.
- Lập 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
các tỉnh thành.
- Tư vấn, đào tạo và hướng dẫn khách hàng sử dụng sản phẩm.
- Thường xuyên theo dõi, thăm hỏi các khách hàng đã sử dụng sản phẩm của
công ty để có thể khắc phục kịp thời các sự cố, tư vấn và hướng dẫn khách
hàng tỷ mỉ.

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

1.5. Thực trạng về việc ứng dụng CNTT trong hoạt động sản xuất, kinh doanh
của công ty
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 ứng
dụng CNTT một cách hoàn thiện.
Qua qua trình khảo sát, thực trạng ứng dụng CNTT của các bộ phận trong công
ty như sau:
• Các phòng ban đều được trang bị máy tính để 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ơ bản
như Microsoft Word 2016; Microsoft Exel 2016,… trong công việc quản lý, lưu trữ dữ
liệu về kho, công tác kế toá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 ảnh 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 dọn dẹp máy tính: Ccleaner
• Các trình duyệt web: Cốc cốc, Chrome và Firefox.
• Phần mềm lập trình: AndroidStudio IDE
• Ngoài ra còn trang bị máy chiếu phục vụ giảng dạy, hệ thống camera giám sát
giúp việc quản lý nhân viên hiệu quả hơn.
• Giám đốc công ty và trưởng các phòng ban đều được cấp Macbook của công ty.
Thực trạng sử dụng các công nghệ trong công ty

STT Tên phần cứng/ phần mềm Chức năng


I Phần cứng
1 Máy tính DELL để bàn, Máy tính phục vụ công việc cho nhân

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Macbook viên
2 Máy in Canon In các văn bản tài tiệu, chứng từ giao
dịch.
3 Điện thoại di động Gọi điện giao dịch.
4 Máy chấm 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
công ty.
II Phần mềm
1 Phần mềm soạn thảo Word Soạn thảo giấy tờ, văn bản trong công
2016 ty.
Làm các sổ sách kế toán.
2 Bảng tính Exel Lưu trữ dữ liệu, quản lý dữ liệu.
Giúp tính toá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 Phần mềm Corel Draw Thiết kế logo, mẫu mã, hình ảnh sản
phẩm.
4 Phần mềm BKAV pro Diệt virut đảm bảo bảo mật, an toàn dữ
liệu.
5 Phần mềm CCleaner Dọn dẹp máy tăng hiệu năng tính toán,
máy tính.
6 Phần mềm Photoshop Adobe Phục vụ thiết kế chỉnh sửa ảnh
CS6
7 Git Phục vụ lưu trữ source cho lập trình
viên
8 Android Studio IDE lập trình cho lập trình viên
9 Postman Kiểm thử Api cho lập trình viên và
Tester

1.6. Đánh giá việc ứng dụng CNTT trong hoạt động sản xuất, kinh doanh

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

• 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
phòng như Word, Exel.
• Các máy tính trong công ty đều được trang bị 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 luôn được cập nhật phiên bản mới nhất phục vụ kinh
doanh cũng như thực hiện dự án của nhân viên trong công ty.

CHƯƠNG 2. CƠ SỞ LÝ LUẬN VỀ XÂY DỰNG PHẦN MỀM


2.1. Tổng quan về phần mềm
2.1.1. Khái niệm phần 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ỉ thị (Instruction) được viết bằng một hoặc nhiều
ngôn ngữ lập trình và tuân 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 vấn đề 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 phần 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

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

mình.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ố:
• Các chương trình máy tính (Programs)
• Các kiểu loại cấu trúc dữ liệu cài đặt chương trình máy tính (Data structure)
• Các tài liệu hướng dẫn sử dụng (Document)
2.1.2 Đặc trưng của phần mềm
Phần 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ó sẵn. Sản
phẩm 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 quá trình sử dụng hoặc hao mòn dưới tác
độ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
yê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
đáo của mỗi sản phẩm phần mềm.
2.1.3. Phân loại phần 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 phần mềm thành
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:

• Phần mềm hệ thống: mục đích chính của loại phần mềm này là vận hành máy
tính, thiết bị đ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à cả BIOS. Hơn thế nữa cũng
bao gồm các hệ điều hành di động Android, iOS, WindowPhone,…
• Phần mềm ứng dụng: Các phần mềm văn phòng, (Microsoft Office,
OpenOffice), các công cụ tiện ích, trò chơi điện tử,…

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

• Phần 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 tảng ứng dụng thì hỗ trợ tạo ra các
ứng dụng khác

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ố. Để
đượ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.
• Phần 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ố
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à tinh
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ể.
Giúp xác định :
• Nhân sự: Ai làm?, Ai làm gì?; Thời gian: Khi nào làm? Mất bao lâu?
• Phương pháp: Làm như thế nào?
• Công cụ: Dùng công cụ gì để làm?
• Chi phí: Chi phí? Doanh thu?
• Mục tiêu: Mục tiêu hướng đến là gì?
• Xác định: Khung và tiêu chuẩn để xây dựng phần mềm.
• Xác định: Phải thực hiện những công việc gì?

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ụ: Phần mềm sử dụng hệ thống thời gian thực thì cần phải hoà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 phần mềm thương
mại điện tử thì lại có thể vừa đặc tả và vừa xây dựng đồng thời.

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

2.1.4. Quy trình xây dựng phần mềm.

Quy trình cơ bản để xây dựng một phần mềm trải qua các bước sau:

1. Lập kế hoạch
2. Phân tích hệ thống
3. Thiết kế phần mềm
4. Lập trình máy tính
5. Kiểm thử phần mềm
6. Triển khai phần mềm
7. Bảo trì phần mềm

Trong đó, cụ thể

Lập kế hoạch

Là bước đặt ra khung kế hoạch của quá trình, tính toán điểm mạnh, điểm yếu của
dự án. Công đoạn này giúp bắt đầu một dự án phần mềm trở nên tối ưu và tác động tích
cực đến tiến độ của dự án

Phân tích yêu cầu

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
dựa trên các nhu cầu trong quá trình sử dụng phần mềm. Đây là công việc có ý nghĩa
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
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à
được định nghĩa phục vụ thiết kế hệ thống phần mềm.

Các phương pháp được sử dụng:

1. Nghiên cứu tài liệu


2. Quan sát thực tế
3. Phỏng vấn

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

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 để 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.

Ca sử dụng có thể ở nhiều mức độ khác nhau, từ mục tiêu doanh nghiệp ở mức
cao đến mô tả các modules chương trình nhỏ.

Kí hiệu UML dùng cho ca sử dụng:

Hình 2. : Ký hiệu UML dùng cho ca sử dụng

Kí hiệu Nội dung

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Tác nhân

Ca sử dụng

Hình 2. : Ký pháp của phương pháp Use Case

Phân tích hệ thống

Là một công đoạn quan trọng nhất của quá trình xây dựng phần mềm, công đoạn
giúp mô hình hóa quy trình và nghiệp vụ, các yêu cầu của phần mềm

Để mô hình hóa các nghiệp vụ, sử dụng:

• Sơ đồ ngữ cảnh ( CD – Context Diagram )


• Sơ đồ chức năng (Bussiness Funtion Diagram)
• Sơ đồ luồng dữ liệu (Data Flow Diagram)
• Sơ đồ luồng thông tin (Information Flow Diagram)

Sơ đồ chức năng (BFD)

• Là mô hình được sử dụng để 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:
• Cho phép xác định các chức năng
• Cho biết vị trí của mỗi chức năng trong toàn bộ hệ thống
• 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

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Các ký pháp

Ký pháp Ý nghĩa
Mô tả chức năng

Mối liên kết giữa các chức năng (phân


cấp chức năng)

Hình 2. : Ký pháp sử dụng trong sơ đồ chức năng BFD

Lưu ý:

• 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ơ đồ luồng 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ế giới
vật lý.
Dưới đây là các ký pháp của sơ đồ luồng thông tin

Xử lý

Thủ công Giao tác người - máy Tin học hóa toàn phần

Kho dữ liệu

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Dòng thông tin

Thủ công Tin học hóa Điều khiển

Hình 2. : Ký pháp sơ đồ luồng thông tin IFD

Sơ đồ ngữ cảnh (CD)

Ý nghĩa: cho ta bức tranh tổng quát và đơn giản nhất để hình dung về một quá trình
nào đó.

Các ký pháp

Ký pháp Ý nghĩa
Tất cả vấn đề cần nghiên cứu

Đối tượng tham gia vào quá trình

Mối liên hệ

Hình 2. : Ký pháp sơ đồ ngữ cảnh

Lưu ý:
• Khi biểu diễn sơ đồ ngữ cảnh, giữa vấn đề 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.

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

• 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.

Sơ đồ luồng dữ liệu (DFD)

Là sơ đồ chỉ ra cách thông tin vận chuyển 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 chi tiết.

Các kí pháp:

Ký pháp Ý nghĩa
Hoạt động xử lý

Dòng dữ liệu

Đối tượng bên ngoài hệ thống (Nguồn,


đích)

Kho dữ liệu

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Hình 2. : Ký pháp sơ đồ luồng dữ liệu DFD

Lưu ý:
• Khi biểu diễn sơ đồ DFD, tên các dòng dữ liệu phải ngắn gọn, không có hai tên
trùng nhau trong một sơ đồ.
• Các tác nhân bên ngoài hoặc cáckho dữ liệu không có mối quan hệ với nhau.
• Các dòng dữ liệu vào 1 quá trình đều phải được xử lý trước khi đi ra.
• Mỗi kho dữ liệu bắt bược phải có 1 dòng dữ liệu vào và dòng dữ liệu ra.
• Có thể biểu diễn nhiều lần nguồn và đích trong cùng 1 sơ đồ.

Thiết kế phần mềm

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ế
để 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:

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:

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

• 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à quá
trình xử lý trong mỗi bài toán.
• Để 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
vấn đề một cách rõ ràng, trực quan.
• Các ký pháp của lưu đồ:

Ký pháp Ý nghĩa Ký pháp Ý nghĩa


Khối bắt đầu Khối xuất dữ liệu
Khối kết thúc
Khối điều kiện rẽ Khối nối tiếp
nhánh
Khối xử lý Luồng xử lý

Khối nhập dữ liệu

Hình 2. : Ký pháp sơ đồ giải thuật

Thiết kế giao diện

Mục đích: 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ế:
• Tạo 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 ảnh
thực mag nghười sử dụng đã quen.
• Khi thiết kế chỉ sử dụng tối đa 3 màu.

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

• Không thiết kế giao diện nhấp nháy.

Lập trình máy tính

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
máy tính.

Bao gồm các công đoạn:

1. Lựa chọn hệ quản trị CSDL nhằm cài đặt CSDL


2. Lựa chọn công cụ lập trình
3. Lập trình tích hợp

Kiểm thử phần mềm:

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ư
độ đá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
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 xuyên
suốt trong quá trình phát triển phần mềm dưới dạng kiểm thử các modul.

Triển khai phần mềm

Khi phần mềm đã qua quá trình kiểm thử và khắc phục toà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 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ả cao
trong quá trình sử dụng.

Bảo trì

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Đây là công đoạn sau cùng của quá 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 tính năng mới để đá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 phần mềm


2.2.1. Mô hình thác nước
Là mô hình cổ điển và đầu tiên, phổ biến được áp dụng trong quá trình phần
mềm. Nó chia quá 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 của giai
đoạn sau

Hình 2. : Mô hình thác nước

Ứng dụng

• Các ứng dụng thường được xây dựng dựa trên mô hình này

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

• 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 cầu ban đầu, ít thay đổi, ít và hầu như
không cập nhật chức năng mới.

Ư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…
• 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 để
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ó để đ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
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êu cầu
điều chỉnh thường xuyên.

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Hình 2. : Mô hình xoắn ốc .( Nguồn: https://slideplayer.com/slide/14476712/, Slide 18)

Ưu điểm

• Phù hợp với các dự có quy mô lớn


• Dễ kiếm soát các quá trình theo các yêu cầu
• Đá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.
• Chi phí cao, thời gian cần để hoàn thành dự án lớn
• Phức tạp và không thích hợp với các dự án nhỏ và ít rủi ro.
• 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
2.3. Công cụ thực hiện
2.3.1. Android Studio

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Là IDE chính thức trong phát triển ứng dụng Android, là môi trường phát triển
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
Android.
Các tính năng chính:
• Một hệ thống xây dựng Gradle linh hoạt.
• Trình mô phỏng nhanh và tính năng phong phú
• Phát triển cho tất cả thiết bị Android
• Instant Run để đẩ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ụ để bắt hiệu suất, khả năng sử dụng, tương thích phiên bản, và các
vấn đề khác
• Hỗ trợ C ++ và NDK
• Tích hợp hỗ trợ Google Cloud Platform , giúp dễ dàng tích hợp Google Cloud
Messaging và App Engine
• Hỗ trợ tích hợp sâu Firebase vào trong các ứng dụng chỉ sau một click chuột.
2.3.2. SQLite Databse
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 yêu cầu một quy trình hoặc hệ thống máy chủ riêng biệt để hoạt
động.
• 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 đa nền
tảng (cross-platform disk file).

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

• SQLite rất nhỏ và trọng lượng nhẹ, dưới 400KiB được cấu hình đầy đủ hoặc
dưới 250KiB với các tính năng tùy chọn bị bỏ qua.
• SQLite là khép kín (self-contained), có nghĩa là không có phụ thuộc bên ngoài.
• Các transaction trong SQLite hoàn toàn tuân thủ ACID, cho phép truy cập an
toàn từ nhiều tiến trình (process) hoặc luồng (thread).
• SQLite hỗ trợ hầu hết các tính năng ngôn ngữ truy vấn (query language) được
tìm thấy trong tiêu chuẩn SQL92 (SQL2).
• SQLite được viết bằng ANSI-C và cung cấp API đơn giản và dễ sử dụng.
• SQLite có sẵn trên UNIX (Linux, Mac OS-X, Android, iOS) và Windows
(Win32, WinCE, WinRT).
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 động
có màn hình cảm ứng (điện thoại thông minh, máy tính bảng, tablet, wearable,
Auto…). Thời gian đầu Android được phát triển bởi Android Inc cùng với hỗ trợ của
Google, sau này chính thức được Google mua lại vào năm 2005.

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 bị cầm tay như: Texas Instruments, Broadcom Corporation,
Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm,
Samsung Electronics, Sprint Nextel, T-Mobile, ARM Holdings, Atheros
Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson,
Toshiba Corp, and Vodafone Group,…

Mục tiêu của Liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn 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

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

đượ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 số các mục tiêu 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 bị cầm tay được gọi là
Android Dev Phone 1 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 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á lỗi 1.1 của hệ điều hành này.
Ở cả hai phiên bản 1.0 và 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 vấn đề này bằng cách 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, và các live folder..

2.4.2. Kiến trúc Android

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Hình 2. : Kiến trúc của Android

Tầng 1: Tầng thuộc về người dùng - Applications.

Hình 2. : Tầng Applications trong Kiến trúc Android

- Applications – là tầng 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: Là ứng dụng được nhà phát triển cài đă ̣t sẵn vào trong điê ̣n thoại
( không thể gỡ ): Phone, SMS
- Third party app: là ứng dụng được nhà phát triển đẩy lên CH Play và người dùng
dowload về để sử dụng

Tầng 2: Application Framework.

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Hình 2. : Tầng 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 để 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ử lý
các thao tác của người dùng trên giao diê ̣n đó.
 Window Manager: quản lý các thông số của màn hình điê ̣n thoại bao gồm: Đô ̣
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.
 Content Provider: là đối tượng quản lý cơ 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
nguyên giữa các ứng dụng.
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ô ̣ các
bài nhạc để chạy trong ứng dụng media. Dùng Content Provider.
 View System: là đối tượng quản lý tất cả các đối tượng giao diê ̣n được sử dụng
trong chương trình.
 Package Manager: là đối tượng quản lý tất 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 sử
dụng trong điê ̣n thoại, bằng viê ̣c sử dụng đối tượng này sẽ biết được cuô ̣c gọi đế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.

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

 Resource Manager: là đối tượng để quản 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 để theo dõi vị trí của điê ̣n thoại,
hiển thị vị 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
vào cô ̣t phát sóng.
 Notification Manager: là đối tượng quản lý tất cả các thông báo nhanh trên điê ̣n
thoại.

Tầng 3: Libraries và Android Runtime (ART).

Hình 2. : Tầng Libries và Android Runtime trong Kiến trúc Android

 Libraries: Là tầng chứa các thư viê ̣n được viết bằng C và C++ là cầu nối giữa
phần cứng và tầng application framework.
 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
dịch vụ được sử dụng trong điê ̣n thoại.

VD: RAM là 2G, khi bật chương trình nào đó lên và nó tốn 1,8 GB. Bỗng nhiên
có cuộc gọi đến yêu cầu 0,3GB thì lúc đấy 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ả.

Tầng 4: Nhân Linux (Linux Kernel)

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Hình 2. : Tầng Linux Kernel trong Kiến trúc Android

Với khoảng 115 bản vá, tầng này liên hệ với phần cứng và chứa toàn bộ các
driver phần cứng cần thiết như camera, bàn phím, màn hình,..

2.4.3. Giao diện

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ữ để xử lý các đối tượng trên màn
hình. Hiệu ứng rung để tạo phản hồi rung cho người dùng. Thiết bị phần 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ế độ màn
hình.

Cấu trúc 1 màn hình ứng dụng

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Hình 2. : Cấu trúc của một màn hình Android

Trong đó:

Statusbar: Là thanh trạng thái của màn hình giao diê ̣n.

• Nó 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.

Actionbar: là thanh chứa những thao tác của người dùng trên giao diê ̣n, thường
được thể hiê ̣n bằng các icon.

NavigationBar: là thanh điều hướng trong ứng dụng, thường sử dụng bằng 3 thao
tác.

• Với thao tác BackPress ( ) : Trở về màn hình trước đó, nếu là màn hình đầu
tiên, thì nó sẽ thoát chương trình.
• Với thao tác Home : Đưa app xuống nền background, lúc này app vẫn đang
hoạt đô ̣ng, giao diê ̣n trở về màn hình Home.
• Với thao tác RecentTask : Hiển thị danh sách các ứng dụng gần đây.

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

2.3.4 Ngôn ngữ lập trình Java.


a. Ngôn ngữ lập trình Java.

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 đoà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,….

b. Java Development Kit.

Java Development Kit: (Bộ công cụ mã nguồn mở cho người phát 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
những applet Java hay những ứng dụng Java.

Đượ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 để 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
code này là được.
• Trình thông dịch (Interpreter): Giúp thông dịch từng dòng lệnh sau đó chuyển
qua ngôn ngữ máy để máy tính thực thi
• Trình giúp sửa lỗi (Debugger): Giúp tạo ra các nút dừng( block point ) tại các
dòng code thực thi chương trình để kiểm tra giá trị tức thời của các đối tượng, qua
đó giúp cho việc rà soát lỗi của chương trình hiệu quả
2.3.5 Mô hình thiết kế Model View Presenter (MVP)
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 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ữ liệu.

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Hình 2. : Mô hình MVP Pattern Design

Trong đó:

• Model: Interface xác định cách mà dữ 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
sau đó gửi cho Presenter
• Presenter: Là nơi xử lý logic, thay đổi, update Model sau đó đưa tới View để
hiển thị

MVP cho phép tách tầng Presenter ra khỏi tầng 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.

2.4 LocalDatabase trong Android – Room Database


2.4.1. Khái niệm Room.
Room là một cơ sở dữ liệu trên nền tàng SQLite Database. Là cơ sở dữ liệu
được giới thiệu bởi google.

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Room được tạo ra 1 lần đầu tiên sử dụng ứng dụng, được tồn tại và lưu trữ vào
vùng nhớ System Storage của ứng dụng đó.
Room bao gồm 3 thành phần 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/
sửa/ xóa trên các bảng của CSDL
• Entites: Là các đối tượng định nghĩa các bảng dữ liệu trong CSDL.

Hình 2. : Cấu trúc của Room trong Android

2.4.2. Các bước để tạo CSDL Room.

Bước 1: Tạo RoomEntities: Mỗi đối tượng (mỗi bảng) được coi là 1 class và
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

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

đó một tiền tố @Columinfor(name= “ten_cot”) . Tiền tố này sẽ tạo thành các cột thuộc
tính trong bảng RoomEntities tương ứng khi tạo CSDL.
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 để khởi tạo.
Bước 4: Khởi tạo Database trong Androistudio.

CHƯƠNG 3. XÂY DỰNG APP BÁN ĐỒ ĂN NHANH FASTFOOD - APP DÀNH


CHO KHÁCH HÀNG

3.1. Mô tả bài toán


Cửa hàng FastFood là cửa hàng bán đồ ăn nhanh trên địa 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, ngoà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 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 App có thể
xem toà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 toá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. Ngoà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àng cho việc mua hàng tại cửa hàng, cũng như quản lý các đơn hàng
đã mua trong quá khứ.

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

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
cho App phiên bản khách hàng như sau:
Các chức năng cần có của phần mềm:
• Quản lý tài khoản:
 Chức năng đăng nhập
 Chứa năng đăng ký
 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 )
• Quản lý mua hàng:
 Chức năng xem thông tin sản phẩm
 Chức năng mua hàng
 Chức năng đặt bàn
 Chức năng thanh toán
 Chức năng khuyến mãi
 Chọn địa điểm giao hàng
• Quản lý giỏ hàng:
 Xem thông tin giỏ hàng
 Cập nhật thông tin sản phẩm trong giỏ hàng

3.2. Phân tích hệ thống


Sơ đồ chức năng (BFD) xây dưng App FastFood (App khách hàng)

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Hình 3. : Sơ đồ chức năng xây dựng App FASTFOOD

Sơ đồ ngữ cảnh (CD)

Hình 3. : Sơ đồ ngữ cảnh xây dựng App FASTFOOD

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Sơ đồ DFD mức 0:

Hình 3. : Sơ dồ DFD mức 0

Sơ đồ DFD mức 1 :

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58


Chuyên đề thực tập tốt nghiệp GVHD: TS.Nguyễn Thị Bạch Tuyết

Hình 3. : Sơ đồ DFD mức 1 “Quản lý người dùng”

SVTH: Nguyễn Ngọc Khánh-11162581 Lớp: Tin học kinh tế 58

You might also like