Bởithế mà thực tập hay kiến tập ở các doanh nghiệp là một phần không thể thiếu trong quátrình đào tạo, đây là cơ hội cho sinh viên trải nghiệm thực tế và cũng là thời gian đểcác sinh viê
Trang 1THÔNG TIN VÀ TRUYỀN THÔNG
VIỆT - HÀN
KHOA KỸ THUẬT MÁY TÍNH VÀ ĐIỆN TỬ
BÁO CÁO
THỰC TẬP TỐT NGHIỆP
FRESHER ANDROID (Đào tạo tân binh)
Sinh viên thực hiện
: Nguyễn Văn Liêm
Đà Nẵng, tháng 8 năm 2022
Trang 2(Bản phô-tô)
Trang 3LỜI MỞ ĐẦU
Trong quá trình đào tạo tại trường Đại học công nghệ thông tin và truyền thôngViệt-Hàn, Việc tổ chức cho các sinh viên được đi thực tập là điều rất quan trọng Bởithế mà thực tập hay kiến tập ở các doanh nghiệp là một phần không thể thiếu trong quátrình đào tạo, đây là cơ hội cho sinh viên trải nghiệm thực tế và cũng là thời gian đểcác sinh viên sử dụng các kiến thức được học ở trường áp dụng vào một môi trườngcông việc thực tế Sau thời gian tìm kiếm công ty thực tập thì em đã vượt qua vòngphỏng vấn và được nhận thực tập tại công ty TNHH phần mềm FPT Miền trung Mộttrong số các công ty có một môi trường làm việc cực kỳ tốt và phù hợp với chươngtrình mà em được đào tạo tại trường Trong quá trình thực tập em đã tìm hiểu tình hìnhxây dựng, phát triển cũng như cơ cấu tổ chức của công ty, đặc biệt em đã rút ra đượcnhiều bài học kinh nghiệm rất quý báu cho bản thân sau khi hoàn thành quá trình thựctập
Để có được những bài học quý giá này em xin gửi lời cảm ơn chân thành đến nhàtrường và các giảng viên đã giảng dạy và truyền đạt những kiến thức quý báu cho emtrong quá trình học tập tại trường Đặc biệt là dưới sự hướng dẫn tận tình của thầyHoàng Hữu Đức trong thời gian thực tập đã đưa ra nhiều ý kiến đóng góp giúp emhoàn thành tốt công việc
Và em cũng xin cảm ơn tới các anh chị trong Công ty TNHH phần mềm FPT miềntrung đã cho em có được một môi trường thực tập hòa đồng, thần thiện và giúp emhoàn thành tốt trong thời gian thực tập lần này
Do chưa có nhiều kinh nghiệm tiếp xúc với một hoạt động thực tế ở công ty, cũngnhư kiến thức chuyên môn còn hạn chế, nên bài báo cáo không thể tránh khỏi nhữngthiếu sót, vì vậy em mong nhận được sự đóng góp từ đại diện công ty và ban lãnh đạotrường Đại học công nghệ thông tin và truyền thông Việt-Hàn, để bài báo cáo của emđược hoàn thiện hơn
Một lần nữa em xin chân thành cảm ơn!
Trang 4LỜI CẢM ƠN
Trong quá trình thực tập tại Công ty TNHH phần mềm FPT miền trung, đây là lầnđầu em tham gia thực tập tại một công ty lớn nên còn rất bỡ ngỡ chưa thành thạo trongcông việc Nhưng rất may mắn là trong quá trình đó em đã nhận được rất nhiều sựgiúp đỡ rất nhiệt tình của các anh chị trong bộ phần đào tạo của công ty nên em đã dầnquen với công việc Đúng vậy, để hoàn thành được một công việc nào đó không chỉdựa vào bản thân mình mà còn phải cần đến sự giúp đỡ của nhiều người
Đối với bản thân em trước tiên em xin chân thành cảm ơn nhà trường đã tạo cơ hộicho em được tìm hiêu cũng như có cơ hội tham gia thực tập tại các công ty lớn ở ĐàNẵng và thầy Hoàng Hữu Đức đã hỗ trợ em, cũng như các anh chị trong công ty đã chỉbảo và hướng dẫn em nhiệt tình trong quá trình thực tập Một lần nữa em xin chânthành cảm ơn ban lãnh đạo công ty TNHH FPT miền trung cùng các anh chị trong bộphận lãnh đạo đã giúp đỡ em trong thời gian qua Em xin chúc ban lãnh đạo, các nhânviên mạnh khỏe, thành công trong công việc và gặt hái được nhiều kết quả và thànhcông trong những năm tới
Em xin chân thành cảm ơn!
Trang 5NHẬN XÉT (Của giảng viên hướng dẫn)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Ký tên
TS Hoàng Hữu Đức
Trang 6MỤC LỤC
CHƯƠNG 1 TỔNG QUAN VỀ CƠ SỞ THỰC TẬP 7
1.1 CƠ QUAN THỰC TẬP 7
1.2 TẦM NHÌN 7
1.3 PHÁT TRIỂN PHẦN MỀM THEO MÔ HÌNH WATERFALL 8
1.3.1 Các giai đoạn của mô hình waterfall 8
1.3.2 Ưu điểm, nhược điểm của mô hình Waterfall 9
CHƯƠNG 2 NỘI DUNG NGHIÊN CỨU 12
2.1 NHIỆM VỤ 12
CHƯƠNG 3 CƠ SỞ LÝ THUYẾT 13
3.1 Những thứ được training ở công ty 13
3.1.1 Java 13
3.1.2 Kotlin 14
3.1.3 XML 16
3.1.4 SDK 17
3.1.5 SQLite 18
3.1.6 Firebase 19
3.1.7 Bitbucket 20
CHƯƠNG 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 22
4.1 Kết luận 22
4.2 Hướng phát triển 22
Trang 7DANH MỤC PHỤ LỤC HÌNH
Hình 1: Logo FPT 6
Hình 2: Các giai đoạn của mô hình Waterfall 7
Hình 3:Java 12
Hình 4:Ngôn ngữ lập trình Kotlin 14
Hình 5: file XML 16
Hình 6: Android SDK 17
Hình 7: SQLite 17
Hình 8: Firebase 18
Hình 9:Firebase Test Lab 19
Hình 10:Bitbucket 20
Trang 8DANH MỤC PHỤ LỤC BẢNG
Bảng 1:Chi tiết nội dung Trainning 11
Trang 9CHƯƠNG 1 TỔNG QUAN VỀ CƠ SỞ THỰC TẬP
1.1 CƠ QUAN THỰC TẬP
Tên công ty: Công ty TNHH FPT miền trung
Địa chỉ: FPT Complex, Khu đô thị FPT City, Ngũ Hành Sơn, Đà Nẵng 550000,Việt Nam
- Gia công phần mềm:
Tại FPT, là nơi luôn mang đến sự cách tân, luôn có sự đổi mới trong từ sảnphẩm của khác hàng cũng như của chính chúng tôi Chúng tôi muốn đóng gópvào sự đổi mới của công nghệ và xã hội cùng bạn, đó là điều chúng tôi nhữngcon người FPT luôn hướng đến
Chuyên môn của chúng tôi bao gồm các công nghệ hàng đầu trong Fintech đểtối ưu hóa quy trình kinh doanh, nâng cao năng suất, giảm gian lận và tăng sựhài lòng của khách hàng
- Media & Entertainment:
Hệ thống phát trực tuyến, nội dung của chúng tôi đã giúp các đài truyền hình vệtinh trong danh sách Fortune 500 đẩy mạnh trò chơi của họ và nâng cao cả giảipháp phụ trợ và phụ trợ
- Automotive:
Trang 10FPT Automotive IoT ở Predix kết hợp các khuôn khổ đã được chứng minh củaFPT với sức mạnh phân tích độc đáo của GE Predix để đáp ứng nhu cầu pháttriển của khách hàng toàn cầu của chúng tôi.
- Logistics & transportation:
Chúng tôi quan tâm đến Chất lượng trong việc cung cấp sự đổi mới công nghệ thông qua việc tuân thủ CMMi cấp 5, ISO 27001, ISO 9001
Waterfall là Mô hình Waterfall chú trọng vào sự tiến triển logic của các bước thựchiện trong suốt vòng đời phát triển của một phần mềm Mô hình thác nước chú trọngvào sự tiến triển logic của các bước được thực hiện trong suốt vòng đời phát triển củamột phần mềm (software development life cycle-SDLC), giống như các bước mà mộtdòng nước đổ xuống một dòng thác Mặc dù sự phổ biến của mô hình này đã giảmnhiều trong vài năm trở lại đây khi các phương pháp linh hoạt (Agile) hơn được ưachuộng, tính logic tự nhiên của quá trình tuần tự được sử dụng trong phương pháp này
là không thể phủ nhận, và nó vẫn là một quá trình thiết kế thông dụng trong ngànhCNTT
Mô hình Waterfall hay còn gọi là mô hình thác nước Được biết tới là một trongnhững mô hình quản lý dự án dễ hiểu nhất hiện nay, mô hình Waterfall là một phươngpháp quản lý dự án dựa trên quy trình thiết kế tuần tự và liên tiếp
Trong mô hình Waterfall, các giai đoạn của dự án được thực hiện lần lượt và nốitiếp nhau Giai đoạn mới chỉ được bắt đầu khi giai đoạn trước nó đã được hoàn thành
1.3.1 Các giai đoạn của mô hình waterfall
Hình 2: Các giai đoạn của mô hình Waterfall
Một mô hình Waterfall đơn giản có 6 giai đoạn:
Trang 111.3.1.1 Giai đoạn yêu cầu (Requirement analysis)
Nhóm thực hiện tìm kiếm các yêu cầu liên quan đến dự án
Ví dụ:
-Xác định dự án sẽ giải quyết nhu cầu kinh doanh nào
Yêu cầu của người dùng đối với sản phẩm được phát triển bởi dự án
Các ràng buộc và rủi ro đi kèm
1.3.1.2 Giai đoạn thiết kế (Design)
Nhóm tạo ra thiết kế cho sản phẩm để giải quyết mọi yêu cầu, ràng buộc và mụctiêu thiết kế Một bản thiết kế điển hình sẽ được hoàn thành một cách càng cụ thể càngtốt Nó sẽ mô tả chính xác logic của hệ thống được đề cập trong phần phân tích sẽđược thực thi như nào
1.3.1.3 Giai đoạn thực hiện hay giai đoạn xây dựng (Development)
Sản phẩm được chế tạo để hỗ trợ thiết kế Đôi khi, sản phẩm được xây dựng trongcác đơn vị dùng để thí nghiệm và tích hợp trong giai đoạn tiếp theo
1.3.1.4 Giai đoạn kiểm chứng (Test)
Các bộ phận của sản phẩm được kiểm tra Nếu cần sẽ được tích hợp lại với nhau đểthử nghiệm Toàn bộ hệ thống được kiểm tra để tìm ra lỗi và đảm bảo các mục tiêuthiết kế
1.3.1.5 Giai đoạn triển khai (Deployment)
Sản phẩm được thử nghiệm thực sự đi vào hoạt động Đối với các dự án thuộc lĩnhvực công nghệ thông tin, sản phẩm được triển khai vào môi trường để người dùng cóthể bắt đầu sử dụng nó Đối với một dự án xây dựng, giai đoạn triển khai là khi tòa nhàhoàn toàn sẵn sàng cho người ở
1.3.1.6 Giai đoạn bảo trì
Là một khoảng thời gian giám sát ngắn Trong đó nhóm dự án giải quyết các vấn
đề của khách hàng Đối với các dự án phần mềm, điều này thường có nghĩa phát hànhcác bản vá và cập nhật để sửa vấn đề Trong các dự án khác, các điều chỉnh về môitrường được thực hiện để giải quyết vấn đề Chẳng hạn như tối ưu hóa điều hòa khôngkhí trong một tòa nhà mới
1.3.2 Ưu điểm, nhược điểm của mô hình Waterfall
1.3.2.1 Ưu điểm của mô hình Waterfall
Dù mô hình thác nước đã dần dần biến mất trong vài năm trở lại đây nhường chỗcho các mô hình linh hoạt(agile) hơn, nó vẫn đem lại một số lợi ích, đặc biệt trong các
dự án và tổ chức lớn mà cần các giai đoạn và hạn hoàn thành của công việc nằm trongnhững thác nước này
nước có ưu điểm này, ứng dụng nó giúp toàn bộ dự án được duy trì kỹ càng, có mục
Trang 12tiêu bao quát và thiết kế có cấu trúc nhờ vào việc phác thảo và pha tài liệu hóa từtrước Điều này rất phù hợp với những nhóm lớn mà thường có các thành viên rờikhỏi hoặc tham gia mới trong các chu trình sống của dự án Nó cho phép thiết kếcốt lõi của dự án được đặt chủ yếu trong một tài liệu cụ thể, chứ không chỉ ở mộtthành viên nào đó của nhóm.
hơn là một lợi thế, nhưng sự thật là để duy trì mô hình thác nước bắt dự án, và thậm chí
cả tổ chức xây dựng một dự án vô cùng chính xác, tuân nghiêm ngặt theo thiết kế và cấutạo của nó Những dự án lớn sẽ cần bao gồm những tiến trình cụ thể để quản lý toàn bộkhía cạnh của dự án, từ thiết kế và phát triển đến kiểm thử và triển khai
ở những giai đoạn sau, phương pháp thác nước giúp triển khai các thay đổi ở đầu vòngđời của ứng dụng khá dễ dàng Vì chưa hề có mã hay bất cứ triển khai nào ở giai đoạnnày, việc chỉnh sửa các tài liệu trở nên nhanh chóng và vô cùng đơn giản
tuần tự của mô hình thác nước, những dự án sẽ rất phù hợp với những tổ chức vào nhómhoạt động tốt dựa chủ yếu vào các mốc hoặc ngày Với các pha rõ ràng và cụ thể, cácthành viên trong nhóm có thể dễ dàng hiểu và chuẩn bị cho nó Việc có một lịch trình chotoàn bộ quá trình và đề ra một vài thời điểm cụ thể hay dấu mốc quan trọng cho từng giaiđoạn cũng đơn giản hơn Tất nhiên điều này không có nghĩa rằng phát triển phần mềm thìkhông xảy ra chậm trễ, nhưng mô hình thác nước sẽ thích hợp cho những dự án có hạnchót hoàn thành
1.3.2.2 Nhược điểm của mô hình Waterfall
Mặc dù một vài khi tiến sĩ Royce lần đầu công bố, mô hình thác nước được coi làmột đột phát lớn ở năm 1970 Sau hơn bốn thế kỷ, một vài nhược điểm lớn đã thể hiện
vì sao mô hình khó còn đáng mong đợi như kỳ vọng và bị thay thế bởi các mô hìnhAgile như ngày nay
viết riêng về chủ đề này, thiếu sót quan trọng nhất của mô hình thác nước là khả năngthích ứng trước thay đổi trong toàn bộ vòng đời phát triển Khi việc kiểm thử ở pha thứnăm phát hiện ra một số lỗi ở phần thiết kế hệ thống, nó không chỉ yêu cầu một bước lùilớn về các bước cũ, trong một vài trường hợp còn phá hủy tính thống nhất của toàn bộ hệthống Trong khi phần lớn các nhóm và lập trình viên có kinh nghiệm sẽ rất khó để xảy ranhững phát hiện muộn màng như vậy ngay từ đầu, tình trạng này vẫn có thể xảy ra, đặcbiệt khi là các pha thường được để ở cuối của toàn chu trình
nghiêm ngặt từng bước một, mô hình thác nước gặp khó khăn trong vấn đề nhận phản hồicủa người dùng ở những giai đoạn sau của vòng đời sản phẩm Người quản lý dự ánđương nhiên có thể đưa quá trình về các giai đoạn trước vì những yêu cầu hoặc thay đổimới từ khách hàng, nhưng điều này sẽ vô cùng tốn kém và ngốn thời gian cho cả nhómphát triển và khách hàng
đại luôn tích hợp kiểm thử là một phần tất yếu và luôn luôn xuyên suốt mọi quá trìnhtrong quá trình phát triển, mô hình thác nước để kiểm thử vào cuối vòng đời
Khoa kỹ thuật máy tính và điện tử – Lớp :18CE Lê Phước Thành Quang
Trang 13Điều này không chỉ làm cho phần lớn lỗi kỹ thuật hay thậm chí vấn đề thiết kếkhông được phát hiện cho đến tận cuối chu trình sống, nó còn dễ gây ra thói quenviết mã kém chất lượng do việc kiểm thử chỉ thường khá ít và quá muộn
Trang 14CHƯƠNG 2 NỘI DUNG NGHIÊN CỨU 2.1
NHIỆM VỤ
Tham gia thực tập tại Công ty trong bối cảnh dịch bệnh phức tạp Toàn bộ nhiệm
vụ và công việc của thực tập sinh đều được diễn ra thông qua hình thức trực tuyến.Mục tiêu chính của kì thực tập này đó là giúp sinh viên thực tập nắm rõ được quy trìnhphát triển ứng dụng mobile bằng ngôn ngữ Java và Kotlin
- Thời gian thực tập: Từ ngày 16/06/2022 đến ngày 09/09/2022
- Thời gian làm việc: 5 ngày mỗi tuần, mỗi ngày 8 tiếng
- Hình thức : Trực tuyến với sự hướng dẫn của mentor
- Quá trình thực tập được chia làm 2 giai đoạn chính:
Giai đoạn 1: Tham gia vào các buổi training lý thuyết về công nghệ Giúp thực tập
sinh có thêm kiến thức cũng như cái nhìn tổng quan hơn về công nghệ phải sử dụng.Toàn bộ nội dung training cũng như thời gian được liệt kê tại
Giai đoạn 2: Áp dụng các kiến thức đã được training ở giai đoạn 1 cùng với các
kiến thức đã được dạy ở trường vào dự án mô phỏng Mỗi thành viên trong nhóm sẽđảm nhiệm một số task trong dự án
Ngày Nội dung nhiệm vụ công
việc
20/6/2022 Git Training (1 day)
21/6/2022 Training Kotlin Language (12
Bảng 1:Chi tiết nội dung Trainning
Sau 2 tháng học hỏi tìm hiểu và tiếp thu kiến thức thì hiện tại em đang bước tiếp vào giai đoạn 2 là bắt đầu làm dự án
Trang 15CHƯƠNG 3 CƠ SỞ LÝ THUYẾT
3.1 Những thứ được training ở công ty
Hình 3:Java
b Các tính năng của Java
- Đơn giản: Java đã cải tiến dễ dàng hơn bằng cách loại bỏ tất cả các phức tạp
như con trỏ, các toán tử, phương thức nạp chồng (overload)như bạn thấy trong C ++hoặc bất kỳ ngôn ngữ lập trình nào khác
- Portable: Java độc lập với nền tảng, có nghĩa là mọi ứng dụng được viết trên
một nền tảng đều có thể dễ dàng chuyển sang nền tảng khác
- Hướng đối tượng: Mọi thứ được coi là một đối tượng khác nhau, có sở hữu
các thuộc tính và tất cả các hoạt động được thực hiện bằng cách sử dụng các đối tượngnày
- Bảo mật: Tất cả các mã được chuyển đổi sang byteCode sau khi biên dịch,
không thể đọc được bởi con người và chạy các chương trình bên trong
Trang 16Sandbox để ngăn chặn mọi hoạt động từ các nguồn không đáng tin cậy Nó cho phép phát triển các hệ thống / ứng dụng không có virus, giả mạo.
nhớ động do giảm lãng phí bộ nhớ và hiệu suất của ứng dụng được tăng lên
- Phân tán: Java cung cấp một tính năng giúp tạo các ứng dụng phân tán Sử
dụng phương thức từ xa(RMI), một chương trình có thể gọi một phương thức của mộtchương trình khác thông qua và nhận được đầu ra Bạn có thể truy cập các file bằng cáchgọi các phương thức từ bất kỳ máy nào trên internet
- Mạnh mẽ: Java có một hệ thống quản lý bộ nhớ mạnh Nó giúp loại bỏ lỗi vì
nó kiểm tra Code trong quá trình biên dịch và runtime
- Hiệu suất cao: Java đạt được hiệu suất cao thông qua việc sử dụng byteCode
có thể dễ dàng dịch sang mã máy Với việc sử dụng các trình biên dịch JIT Time), Java mang lại hiệu năng cao
(Just-In Thông dịch: Java được biên dịch thành byteCode, được thông dịch bởi môi
trường Java run-time
- Đa luồng: Java hỗ trợ nhiều luồng thực thi, bao gồm một tập hợp các nguyên
hàm đồng bộ hóa Điều này làm cho lập trình với các chủ đề dễ dàng hơn nhiều
c Các thành phần trong Java - Components in Java
JVM là máy ảo giúp máy tính chạy các chương trình Java Đây là môi moi trường giúp cho byteCode java có thể thực thi
Nó là một cỗ máy trừu tượng Đây là một đặc tả cung cấp một môi trường thời gian chạy trong đó mã byte Java có thể được thực thi Nó theo ba ký hiệu: Specification: Đây là một tài liệu mô tả việc triển khai máy ảo Java Nó được cung cấp bởi Sun và các công ty khác
Implementation (Triển khai): Đây là một chương trình đáp ứng các yêu cầu củađặc tả JVM
Instance Runtime: Một thể hiện của JVM được tạo bất cứ khi nào bạn viết lệnh java trên dấu nhắc lệnh và chạy các lớp
- JRE (Java Runtime Environment)
JRE (là viết tắt của Java Runtime Environment) được sử dụng để cung cấp môitrường để các byteCode có thể thực thi Nó là trình triển khai của JVM và cungcấp các lớp thư viện hoặc các file khác mà JVM sử dụng khi chạy Vì vậy, JRE
là gói phần mềm chứa những gì được yêu cầu để chạy chương trình Java Về cơbản JDK (Bộ phát triển Java)
3.1.2 Kotlin
a Khái niệm
Kotlin là một ngôn ngữ lập trình mã nguồn mở được phát triển bởi JetBrains (Cha
đẻ của IDE đình đám IntelliJ IDEA – được Google mua lại và chuyển thành AndroidStudio)
Cũng giống như Java, Kotlin là “ngôn ngữ lập trình kiểu tĩnh” Tức là các biến cầnphải được khai báo trước khi sử dụng Đối với ứng dụng Android, chúng ta có thể sử
Khoa kỹ thuật máy tính và điện tử – Lớp :18CE Lê Phước Thành Quang