Em xin chân thành cảm ơn Ban Lãnh Đạo, các phòng ban và các kỹ sư củaTrung tâm Nghiên cứu và Phát triển điện thoại di động SVMC Việt Nam đã tạo điềukiện thuận lợi cho em được tìm hiểu th
Trang 1 BÁO CÁO THỰC TẬP TỐT NGHIỆP CHUYÊN SÂU
Đơn vị: Trung tâm Nghiên cứu và Phát triển điện thoại di động Samsung
tại Việt Nam (SVMC)
Giảng viên hướng dẫn: Th.s Bùi Trường Sơn
PGS.Ts Lê Hải Châu Th.s Lê Thanh Thủy Sinh viên thực hiện: Nguyễn Công Thắng
Mã sinh viên: B18DCVT408
Lớp: D18CQVT08-B
Hà Nội, 2022
Trang 2Mục lục Lời cảm ơn I DANH MỤC HÌNH ẢNH II THUẬT NGỮ VIẾT TẮT III
Phần 1: Thực tập tại công ty Samsung Vietnam Mobile R&D Center (SVMC) 2
Chương 1: Giới thiệu chung về đơn vị thực tập 2
1.1 Thông tin về đơn vị thực tập 2
1.2 Các công việc chủ yếu tại SVMC 3
1.3 Đánh giá và kết quả thu được 4
Chương 2 Quá trình thực tập tại đơn vị thực tập 5
2.1 SVMC chương trình thực tập sinh 5
2.2 Chương trình thực tập chi tiết 5
Phần 2: Thực tập đề cương tốt nghiệp chuyên sâu tại trường 18
I vRAN là gì? 18
II Kiến trúc của vRAN 20
2.1 Kiến trúc vRAN 20
2.2 Phương pháp thiết kế vRAN: 21
III Lợi ích của VRAN 23
3.1 Cải thiện hiệu suất mạng 23
3.2 Giảm chi phí trang web di động 24
3.3 Tăng tính linh hoạt trong các tùy chọn triển khai 24
3.4 Cung cấp vRAN của Samsung 24
IV Sự phát triển của vRAN ở SAMSUNG 25
V Tại sao SAMSUNG đang dẫn đầu trong công nghệ này? 26
5.1 VRAN SAMSUNG 26
5.2 các giai đoạn phát triển của vRAN samsung 28
5.3 Lợi thế cạnh tranh của SAMSUNG 30
Trang 3Lời cảm ơn
Để hoàn thành phần báo cáo thực tập tốt nghiệp này trước hết em xin gửi đếnquý Thầy, Cô giảng viên trong khoa Viễn thông I của Học viện Công nghệ Bưu chínhViễn thông lời cảm ơn chân thành nhất
Em xin chân thành cảm ơn Ban Lãnh Đạo, các phòng ban và các kỹ sư củaTrung tâm Nghiên cứu và Phát triển điện thoại di động SVMC Việt Nam đã tạo điềukiện thuận lợi cho em được tìm hiểu thực tiễn trong suốt quá trình thực tập tại quýcông cũng như tích lũy được nhiều kinh nghiệm trong làm việc tại đây
Qua khóa thực tập tốt nghiệp này em có cơ hội học tập và trải nghiệm nhữngkiến thức mới mẻ và bổ ích sẽ giúp ích cho công việc sau này của bản thân
Em xin gửi lời cảm ơn sâu sắc và chân thành tới giảng viên hướng dẫn cô
Lê Thanh Thủy, thầy Bùi Trường Sơn, thầy Lê Hải Châu Nhờ cô thầy luôn dìu
dắt, giúp đỡ và chỉ bảo tận tình cho em để hoàn thành tốt Thực tập
Em xin chân thành cảm ơn!
Trang 4DANH MỤC HÌNH ẢNH
Hình 1.1 Logo Công ty SVMC 2
Hình 1.2 Thời gian biểu tại SVMC 7
Hình 1.3 Mô hình MVC 14
Hình 1.4 Game PACMAN 17
Hình 2.1 Kiến trúc SVMC 20
Hình 2.2 Thiết kế DU/CU cùng vị trí 21
Hình 2.3 Thiết kế xử lí tập trung 22
Hình 2.4 Thiết kế DU/RRU cùng vị trí 23
Hình 2.5 Kiến trúc Vran SAMSUNG 27
Hình 2.6 Mô hình tích hợp liên tục và triển khai liên tục (CI / CD) 28
Hình 2.7 Sự phát triển của vRAN SAMSUNG 30
Trang 5THUẬT NGỮ VIẾT TẮT
Trang 6Phần 1: Thực tập tại công ty Samsung Vietnam Mobile R&D Center (SVMC)
Chương 1: Giới thiệu chung về đơn vị thực tập
1.1 Thông tin về đơn vị thực tập
Địa chỉ: Tòa nhà PVI, Số 1 Phạm Văn Bạch, Yên Hòa, Cầu Giấy, Hà Nội
Tên: SVMC (Samsung Vietnam Mobile R&D Center)
Tên đầy đủ Trung tâm nghiên cứu và phát triển ĐTDĐ Samsung Việt Nam
Website: www.facebook.com/SamsungVietnamRnD
SVMC là gì? SVMC là trung tâm nghiên cứu lớn nhất của SAMSUNG tại khu vực Đông Nam Á Chúng tôi không ngừng đổi mới để tạo ra một nơi làm việc tốt nhất(Great Work Place), chính sách đào tạo phát triển nhân tài bài bản, cùng chế độ lương thưởng cạnh tranh, công bằng nhằm nâng cao hiệu quả làm việc và sự gắn bó lâu dài của nhân viên
Được thành lập năm 2012, đến nay Công ty SVMC đã xây dựng được một đội ngũ nhân viên với hơn 1.000 kỹ sư trong lĩnh vực nghiên cứu và phát triển phần mềm ĐTDĐ, trong đó có nhiều Tiến sỹ, Thạc sỹ được đào tạo chuyên sâu ở nước ngoài
Trụ sở chính của SVMC được đặt tại Tòa nhà PVI, số 1 Phạm Văn Bạch, Cầu Giấy,
Hà Nội
Hình 1.1: Logo công ty SVMC
Trang 7Trung tâm chịu trách nhiệm cung cấp phần mềm cho các sản phẩm điện thoạicủa Samsung, phần mềm cho các nhà cung cấp dịch vụ mạng LTE tại khu vực ĐôngNam Á, Australia và New Zealand SVMC là một trong 25 trung tâm R&D chuyênthực hiện nghiên cứu về mảng điện thoại của Samsung trên toàn cầu.
Trung tâm Nghiên cứu và Phát triển điện thoại di động Samsung tại Việt Nam(SVMC) đặt tại Hà Nội được thành lập vào 02/2012, là trung tâm R&D lớn nhất củahãng tại khu vực Đông Nam Á 10% thị phần smartphone và tablet bán ra củaSamsung trên toàn cầu có sự tham gia và phát triển của SVMC
Không chỉ nghiên cứu và phát triển phần mềm ĐTDĐ, SVMC còn tham gia
chuyển giao công nghệ tiên tiến đưa vào dây chuyền sản xuất tại 2 nhà máy lớn nhất tập đoàn ở Bắc Ninh và Thái Nguyên, góp phần vào thành công to lớn của tập đoàn Samsung Electronics – trở thành một trong những doanh nghiệp có vốn đầu tư nước ngoài thành công nhất tại Việt Nam
1.2 Các công việc chủ yếu tại SVMC
Phát triển các phần mềm thương mại cho các thiết bị thông minh của Samsung.Nghiên cứu phát triển các giải pháp phần mềm và dịch vụ tiên tiến cho người dùng Samsung và cho doanh nghiệp
Nghiên cứu và thiết kế phần cứng: Bản mạch điện tử và cấu trúc cơ khí các
dòng sản phẩm hàng đầu của Samsung
Hỗ trợ cho quy trình sản xuất phần cứng chuyên sâu tại các nhà máy SEV/T
Kiểm thử chức năng và hiệu năng của các điện thoại di động mới nhất
Kiểm thử dựa trên các test-case cho các hạng mục về giao diện người dùng(UIT, GUI test), đa phương tiện (MMT) và hiệu năng của điện thoại
Sử dụng các quy trình vận hành tiêu chuẩn (SOP) và các yêu cầu chất lượngcủa Samsung
Triển khai và vận hành các dịch vụ của Samsung trên Amazon Web Sevice
Nghiên cứu, tìm hiểu các chức năng của thiết bị viễn thông của Samsung dựa trên chuẩn 3GPP
Trang 8 Kiểm thử chức năng và hiệu năng của các thiết bị viễn thông 4G-5G Samsung
1.3 Đánh giá và kết quả thu được
1.3.1 Đánh giá
SVMC thực sự là công ty có môi trường làm việc hiện đại trong lĩnh vực ICT ở
Việt Nam hiện nay SVMC tạo ra môi trường nghiêm túc trong công việc, bảo mậtthông tin nghiệm ngặt Nhân viên thì chủ động trong công việc, giờ giấc Môi trườngthì thoải mái hỗ trợ nhân viên tốt nhất SVMC có thể xem là một trong những nơi làmviệc lý tưởng cho sinh viên ngành ICT hiện nay
Khi đến với SVMC sinh viên phải tuân thủ tác phong của công ty và tòa nhà Sinhviên được tận hưởng phong cách làm việc chuyên nghiệp khác xa so với ở trường.Được sự hướng dẫn của các anh Trainer được tiếp thu nhiều kiến thức, kinhg nghiệmtrong cuộc sống cũng như công việc
1.3.2 Kết quả thu được
Qua quá trình thực tập tại SVMC em đã có cơ hội trải nghiệm và học tập trongmôi trường chuyên nghiệp và hiện đại, giúp em học hỏi được những kiến thức và kinhnghiệm quý báu:
Nâng cao được các kỹ năng lập trình với một số thuật toán nâng cao
Trải nghiệm phong cách làm việc chuyên nghiệp
Chương 2 Quá trình thực tập tại đơn vị thực tập
2.1 SVMC chương trình thực tập sinh.
SVMC Internship Program là chương trình được tổ chức hàng năm của SVMCdành cho những sinh viên của khoa CNTT, ĐTVT, Toán – Tin của những trường cóhợp tác với Samsung SVMC
Trang 9Đây là chương trình rất thiết thực, ý nghĩa dành cho các bạn sinh viên năm cuốihoặc gần cuối Tham gia chương trình, sinh viên được hệ thống lại, đào tạo bài bản vềthuật toán cơ bản; được đào tạo và tham gia làm các mini-project với các sản phẩmđầu ra cụ thể trên nền tảng Android hoặc C/C++ Application.
Ngoài ra, sinh viên cũng được tham gia trải nghiệm văn hóa làm việc của mộttrung tâm công nghệ hàng đầu của Samsung, được hướng dẫn về các kỹ năng cần thiếttrên Microsoft office
Quy trình và thời gian tham gia ứng tuyển:
1 Bài test phân loại đầu vào
- Thời gian: Ngày 14/05/2022, buổi sáng hoặc chiều tại SVMC (Hà Nội)
- Địa điểm: Samsung SVMC, số 1 Phạm Văn Bạch, Yên Hòa, Cầu Giấy, HN
- Hình thức bài test phân loại trình độ: Test trên máy tính với công cụ lập trình
(IDE) là Visual Studio hoặc Eclipse, bằng 1 trong 3 ngôn ngữ C/C++/Java
2.2 Chương trình thực tập chi tiết
2.2.1 Giai đoạn 1 học thuật toán APS 1
- 06/07: Học các quy định tại công ty, nội quy của tòa nhà Gặp gỡ người hướngdẫn APS-1
- 07/07 đến 18/07: Học thuật toán căn bản: Cách sử dụng mảng, string, for,while, if,… Làm bài tập trên hệ thống submit của công ty
Học về cấu trúc dữ liệu stack, queue, cách cài đặt, làm bài tập submit, debug
- 19/07: Tham gia làm bài thi INTERMEDIATE bài thi đánh giá của công ty
2.2.2 Giai đoạn 2 đào tạo c++ application
Trang 10Thời gian từ: 20/07/2022 – 01/08/2022
2.2.2.1 Nội dung đào dạo chi tiết:
Trang 11a Plan study và làm việc nhóm
b Coding Convention
Code convention – tạm dịch là quy ước viết code, có thể được hiểu đơn giản
là tập hợp những nguyên tắc chung khi lập trình như đặt tên biến, hàm, file,class, comment,… nhằm giúp cho code dễ đọc, dễ hiểu hơn vì vậy dễ bảo trì vàsửa lỗi hơn
Tiêu chuẩn viết code (coding standard) thường được công nhận và sử dụng bởimột nhóm các deverloper trong một môi trường để chia sẻ code một cách thốngnhất Một ví dụ phổ biến của coding standard là tập hợp các quy ước được ápdụng trong các tài liệu của một ngôn ngữ lập trình Lấy ví dụ tiêu biểu như
Hình 1.2: Thời gian biểu tại SVMC
Trang 12ngôn ngữ c có tiêu chuẩn K&R, tiêu chuẩn của Microsoft về C# hay tiêu chuẩncho Java của Oracle,…
Thông thường, một code convention sẽ mô tả các thông tin sau:
Cách đặt tên biến (camel case: variableName, snake case:variable_name,…)
Kiểu thụt lề, độ rộng thụt lề, sử dụng tab hay space
Phương pháp đặt dấu ngoặc
Cách dùng khoảng trắng trong các biểu thức logic và số học
Cách viết comment cho code và tài liệu
Quy ước đặt tên class, tên file
Cách viết câu lệnh
Cách khai báo class và giao diện
Phương pháp tổ chức file
Những lợi ích mà Coding Convention mang lại:
Đẩy cao năng suất làm việc nhóm nhanh hơn
Quy tắc hoạt động của Code Convention theo tính thống nhất và tuânthủ theo tiêu chuẩn sẽ giúp bạn dễ dàng làm việc hơn
Khi viết Code bằng Code Convention, sẽ khiến người khác dễ hiểu vànắm bắt được cái mà bạn truyền tải đến
Phần mềm Code Convention dễ dàng nâng cấp và được cải tiến
Code Convention có thể tái sử dụng trong nhiều phần mềm và các ứngdụng khác
Việc bảo trì hệ thống với Code Convention trở nên thuận lợi và dễ dànghơn bao giờ hết
Trang 13 Các biến trong class phải có dấu gạch dưới hoặc chữ m trước dấu gạchdưới và phải viết thường chữ cái đầu tiên: _max, m_min,m_maxNumber.
c Variables and constant, Primary dada type, Array – Pointer
Variable and constant
Auto Variable: tự động phát hiện và gán kiểu dữ liệu cho biến mà nó được sửdụng
Ví dụ auto age= 18; auto weight= 56.6
Extern Variable: Extern giúp truy cập các biến từ tệp C
Register Variable: Thanh ghi yêu cầu trình biên dịch lưu trữ biến trong thanhghi CPU thay vì bộ nhớ
Array – Pointer
Thực chất con trỏ cũng là mảng bản chất con trỏ là địa chỉ các ô nhớ của các dữliệu Nhưng kích thước của mảng là cố định, kích thước của con trỏ có thể thayđổi
Ví dụ: int i=10; int *p=&i;
lúc này i=10, p= địa chỉ ô nhớ lưu giá trị i, &p sẽ là địa chỉ lưu giá trị địa chỉ p,
*p =10=i
d Hướng đối tượng trong lập trình (OOP)
Lập trình hướng đối tượng là gì? Lập trình hướng đối tượng là một kỹthuật lập trình cho phép lập trình viên tạo ra các đối tượng trong code trừutượng hóa các đối tượng thực tế trong cuộc sống Hướng tiếp cận này hiện đangrất thành công và đã trở thành một trong những khuôn mẫu phát triển phầnmềm, đặc biệt là các phần mềm cho doanh nghiệp
Khi phát triển ứng dụng sử dụng OOP, chúng ta sẽ định nghĩa các lớp(class) để mô hình các đối tượng thực tế Trong ứng dụng các lớp này sẽ đượckhởi tạo thành các đối tượng và trong suốt thời gian ứng dụng chạy, các phươngthức (method) của đối tượng này sẽ được gọi
Trang 14Lớp định nghĩa đối tượng sẽ như thế nào: gồm những phương thức vàthuộc tính (property) Một đối tượng chỉ là một thể hiện của lớp Các lớp tươngtác với nhau bởi các public API: là tập các phương thức, thuộc tính public củanó.
Tính đóng gói (Encapsulation)
Tính đóng gói tức là quy tắc yêu cầu trạng thái bên trong của mộtđối tượng được bảo vệ và tránh truy cập được từ code bên ngoài (tức làcode bên ngoài không thể trực tiếp nhìn thấy và thay đổi trạng thái củađối tượng đó) Bất cứ truy cập nào tới trạng thái bên trong này bắt buộcphải thông qua một public API để đảm bảo trạng thái của đối tượng luônhợp lệ bởi vì các public API chịu trách nhiệm thực hiện kiểm tra tính hợp
lệ cũng như trình tự cập nhật trạng thái của đối tượng đó
Nói chung trạng thái đối tượng không hợp lệ thường do: chưađược kiểm tra tính hợp lệ, các bước thực hiện không đúng trình tự hoặc
bị bỏ qua nên trong OOP có một quy tắc quan trọng cần nhớ đó là phảiluôn khai báo các trạng thái bên trong của đối tượng là private và chỉ chotruy cập qua các public/protected/private method/property Khi sử dụngcác đối tượng ta không cần biết bên trong nó làm việc như thế nào, ta chỉcần biết các public API là gì và điều này đảm bảo những gì thay đổi đốitượng sẽ được kiểm tra bởi các quy tắc logic bên trong, tránh đối tượng
bị sử dụng không chính xác
Ví dụ với máy vi tính sẽ có các màu sắc, chiều dài, chiều rộng,các giá trị đó sẽ được bảo mật bạn chỉ có thể truy nhập qua các phươngthức để có thể biết thông tin nếu các phương thức public
Trang 15thức sử dụng riêng ở lớp con Tính chất này giúp tái sử dụng, tận dụng
mã nguồn có sẵn
Ví dụ với ví dụ về máy tính thì đây sẽ được gọi là lớp cha cácmáy tính khác như Dell, ASUS sẽ kế thừa các đặc tính của máy tính nhưmàu sắc, chiều dài, chiều rộng
Tính trừu tượng (Abstraction)
Đó là quy trình để loại bỏ thông tin thừa: chỉ để lại thông tin phổ biến vàcần thiết
Tập trung vào các đặc điểm cơ bản của thực thể: để có thể phân biệt nóvới các thực thể khác
Tùy thuộc vào quan điểm: các thuộc tính quan trọng trong bối cảnh này,nhưng không có ý nghĩa trong bối cảnh khác
Tính đa hình (Polymorphism)
Tính đa hình là một hành động có thể được thực hiện bằng nhiều cáchkhác nhau Đây lại là một tính chất có thể nói là chứa đựng hầu hết sứcmạnh của lập trình hướng đối tượng
Hiểu một cách đơn giản hơn: Đa hình là khái niệm mà hai hoặc nhiềulớp có những phương thức giống nhau nhưng có thể thực thi theo nhữngcách thức khác nhau
Ví dụ như ở phần trên, mỗi một máy tính kế thừa từ lớp cha máy tínhnhưng có thể lưu trữ dữ liệu trên cloud theo những cách khác nhau Androidlưu trữ bằng Google Drive, Macbook lưu trên iCloud
Trang 16Đây là ngôn ngữ kế vị xứng đáng cho những ngôn ngữ mô hình hoá nhưBooch, OOSE/Jacobson, OMT và một số các phương thức khác.
f Design Pattern
Design Patterns cũng vậy, một Design Pattern là một giải pháp thiết kế, mộtcông thức đã được chứng minh bằng thực tế để giải quyết một vấn đề thườnggặp trong phát triển phần mềm Mỗi một Design Pattern sẽ đưa ra cácinterfaces, classes, mối quan hệ giữa chúng và cách thức chúng hoạt động đểgiải quyết được vấn đề một cách linh hoạt, đảm bảo tính mở rộng, bảo trì, sửdụng lại Thay vì phải áp dụng các nguyên tắc thiết kế và lập trình cơ bản lặp đilặp lại để đưa ra giải pháp thiết kế thì chúng ta có thể áp dụng ngay các DesignPatterns có sẵn để tiết kiệm thời gian tăng chất lượng Software
Design Patterns có tính chất common, áp dụng chung cho tất cả các ngôn ngữlập trình hướng đối tượng
RAII (Resource Acquisition is Initialisation)
RAII (Resoure Acquisition Is Initialization – tạm dịch, được sử dụngtrong một số ngôn ngữ lập trình hướng đối tượng , được định kiểutĩnh để mô tả một hành vi ngôn ngữ cụ thể Trong RAII, việc nắmgiữ một tài nguyên là một lớp bất biến và được gắn với thời gian tồn
Trang 17tại của đối tượng Việc phân bổ tài nguyên (hoặc mua lại) được thựchiện trong quá trình tạo đối tượng (khởi tạo cụ thể), bởi phương thứckhởi tạo , trong khi việc phân bổ tài nguyên (giải phóng) được thựchiện trong quá trình hủy đối tượng (cụ thể là hoàn thiện), bởitrình hủy Nói cách khác, việc mua lại tài nguyên phải thành công đểkhởi tạo thành công Do đó, tài nguyên được đảm bảo sẽ được lưugiữ trong khoảng thời gian từ khi quá trình khởi tạo kết thúc và quátrình hoàn thiện bắt đầu (việc nắm giữ các tài nguyên là một bất biếncủa lớp) và chỉ được giữ khi đối tượng còn sống Vì vậy, nếu không
có rò rỉ đối tượng, không có rò rỉ tài nguyên Quy tắc: Nếu class của bạn cần cấp phát bộ nhớ động, hãy sử dụng
mô hình RAII, chứ đừng nên cấp phát động trực tiếp cho những đốitượng của class
Singleton
Singleton Pattern là một design pattern trong số 5 design patternthuộc nhóm Creational Design Pattern Singleton Pattern đảm bảorằng một class chỉ có duy nhất một instance và cung cấp một cáchtoàn cục để truy cấp tới instance đó
Mục tiêu của Observer pattern là:
Định nghĩa mối phụ thuộc một - nhiều giữa các đối tượng
để khi mà một đối tượng có sự thay đổi trạng thái, tất cácthành phần phụ thuộc của nó sẽ được thông báo và cậpnhật một cách tự động
Trang 18 Một đối tượng có thể thông báo đến một số lượng khônggiới hạn các đối tượng khác.
Observer Pattern được áp dụng khi:
Sự thay đổi trạng thái ở 1 đối tượng có thể được thông báo đếncác đối tượng khác mà không phải giữ chúng liên kết quá chặt chẽ Cần
mở rộng dự án với ít sự thay đổi nhất
g MVC
MVC
MVC là viết tắt của cụm từ “Model-View-Controller “ Đây là
mô hình thiết kế được sử dụng trong kỹ thuật phần mềm MVC là mộtmẫu kiến trúc phần mềm để tạo lập giao diện người dùng trên máy tính.MVC chia thành ba phần được kết nối với nhau và mỗi thành phần đều
có một nhiệm vụ riêng của nó và độc lập với các thành phần khác Têngọi 3 thành phần:
Model (dữ liệu): Quản lí xử lí các dữ liệu
View (giao diện): Nới hiển thị dữ liệu cho người dùng
Controller (bộ điều khiển): Điều khiển sự tương tác của hai thànhphần Model và View
Mô hình MVC (MVC pattern) thường được dùng để phát triển giaodiện người dùng Nó cung cấp các thành phần cơ bản để thiết kế mộtchương trình cho máy tính hoặc điện thoại di động, cũng như là các ứngdụng web