Professional Documents
Culture Documents
KINH TẾ QUỐC
tốt nghiệp DÂN
GVHD: TS.Nguyễn Thị Bạch Tuyết
Hà Nội, 06/2020
MỤC LỤC
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.
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.
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
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.
- Khách hàng, cửa hàng bán đồ ăn nhanh, các món ăn tại cửa hàng
- Để 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
- 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
- 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
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
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ư:
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ọ.
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.
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
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
• 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.
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
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ử,…
• 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.
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
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
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.
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ỏ.
Tác nhân
Ca sử dụ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
• 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
Các ký pháp
Ký pháp Ý nghĩa
Mô tả chức năng
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.
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
Ý 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
Mối liên hệ
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.
• 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.
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
Kho dữ liệu
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ơ đồ.
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:
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
• 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 đồ:
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.
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.
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.
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ì
Đâ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.
Ứng dụng
• Các ứng dụng thường được xây dựng dựa trên mô hình này
Ư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
Ưu điểm
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
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).
• 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
đượ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..
- 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
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.
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.
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ả.
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,..
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.
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.
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,….
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.
• 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.
Trong đó:
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.
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.
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
đó 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.
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
Sơ đồ DFD mức 0:
Sơ đồ DFD mức 1 :