Chương 1: Tổng quan về vấn đề nghiên cứu. • Chương 2: Khảo sát hiện trạng về ứng dụng trò chuyện trực tuyến và xây dựng đặc tả. • Chương 3: Phân tích thiết về chức năng, dữ liệu của hệ thống. • Chương 4: Trình bày kết quả đã thực hiện được.
• Chương 6: Kết quả, ưu điểm và mặt hạn hạn chế của ứng dụng. Đưa ra đề xuất hướng phát triển của ứng dụng trong tương lai để nâng cao tính hoàn thiện. TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU 1.1 TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU 1.1 Tình hình nghiên cứu trên thế giới Ứng dụng trò chuyện trực tuyến đang trở thành một phương tiện giao tiếp rỗng rãi và phổ biến trên toàn thế giới. Một số ứng dụng chat realtime phổ biến nhất như WhatsApp, Facebook Messenger, Telegram, Viber, và WeChat đang được ưu chuộng và phổ biến trên khắp thế giới.
Với sự phát triển công nghệ và nhu cầu của người dùng, các ứng dụng trò chuyện trực tuyến cũng đang được phát triển và cải tiến liên tục. Một số tính năng mới đã ra đời như mã hóa đầu cuối để bảo vệ tính bảo mật của người dùng, hoặc chức năng cuộc gọi video với chất lượng cao hơn để giúp người dùng kết nối với nhau một cách sống động hơn. Tuy nhiên, sự phát triển của nó cũng đem lại một số vấn đề mới như mất riêng tư. Do đó, các nhà nghiên cứu đang tìm kiếm các cách tiếp cận mới để giải quyết những thách thức này.
Từ việc cải thiện giao diện người dùng đến việc kết hợp trí tuệ nhân tạo để giúp nâng cao trải nghiệm người dùng, tạo ra sự tiện dụng và khả năng quản lý thông tin hiệu quả.2 Tình hình nghiên cứu trong nước Ứng dụng trò chuyện ở nước ta đang được quan tâm nghiên cứu và phát triển vì những lợi ích, tiềm năng mà nó mang lại. Trong vòng một thập kỉ trở lại Việt Nam đã có rất nhiều nghiên cứu và phát triển về ứng dụng trò chuyện này, Zalo là một ví dụ điển hình và hiện tại có hơn 80 triệu người dùng. Việt Nam đang trên đà phát triển về công nghệ thông tin và nỗ lực chuyển đổi kỹ thuật số đang được tiến hành. Tỷ lệ sử dụng dịch vụ chat và các ứng dụng trao đổi thông tin trực tuyến tại Việt Nam đang tăng nhanh, đặc biệt là trong bối cảnh thực dịch COVID-19 khi nhu cầu làm việc và học tập trực tuyến càng tăng cao nên các ứng dụng này đang có tiềm năng phát triển rất lớn.
Do vậy trong đồ án này, em đã nghiên cứu đồ án “Xây Dựng Ứng Dựng Chat RealTime Video Call” cho phép nhắn tin và tạo các phòng họp trực tuyến dành riêng cho người Việt.1 Quy trình phát triển dự án Khảo sát dự án Giai đoạn đầu tiên trong quy trình phát triển dự án khảo sát. Nhiệm vụ của giai đoạn này là thu thập nghiên cứu các thông tin cần thiết để giải quyết các yêu cầu dự án. Phân tích hệ thống Phân tích là một kỹ thuật giải quyết vấn đề bằng cách phân rã các thành phần của hệ thống. Mục đích là xác định rõ các thông tin và tính năng của hệ thống sẽ được triển khai.
Thiết kế Tiến hành phân tích thông tin thu thập được từ quá trình khảo sát, sau đó tích hợp dữ liệu vào phần mềm và sử dụng những công cụ chuyên dụng để đảm bảo việc thiết kế hệ thống một cách chính xác và hiệu quả. • Thiết kế cơ sở dữ liệu. • Tạo các truy vấn, thủ tục, các thông báo, cảnh báo lỗi. • Thiết kế giao diện chương trình.
• Thiết kế các chức năng. Thực hiện Trong giai đoạn này, sẽ tiến hành xây dựng hệ thống theo thiết kế đã được xác định trước. Các nhiệm vụ bao gồm việc cài đặt cơ sở dữ liệu, cài đặt chức năng, giao diện bằng việc sử dụng các công cụ hỗ trợ như Visual Studio, IntelliJ IDEA và các phần mềm tương tự. Kết quả cuối cùng của giai đoạn này sẽ là mã nguồn hoàn chỉnh của hệ thống.
Kiểm thử • Kiểm chứng các chức năng theo tài liệu đặc tả. • Tạo các kịch bản kiểm thử, tiến hành kiểm thử và bổ sung cập nhật vào các kịch bản kiểm thử. • Khắc phục các lỗi (nếu có). Triển khai và bảo trì • Cài đặt phần mềm.
3 • Đưa ra tài liệu hướng dẫn sử dụng, kỹ thuật. • Phát hiện sai sót hệ thống. • Bảo hành, nâng cấp hệ thống.2 Các công cụ mô hình hóa Ở đề tài “Xây Dựng Ứng Dựng Chat RealTime Video Call” sử dụng OOAD vào quá trình phát triển dự án. Để mô tả hệ thống được thiết kế OOAD cần có các bản vẽ, còn UML là ngôn ngữ được sử dụng để mô hình hóa hệ thống.
Sự ứng dụng của mô hình hóa giúp ta dễ dàng hình dung và giải thích thế giới thực bằng cách sử dụng các mô hình khác nhau, đồng thời hiểu rõ hệ thống từ nhiều góc độ khác nhau. ULM là ngôn ngữ mô hình hóa để: • Trực quan hóa (visualizing): cung các các luật và ký hiệu để mô hình hóa. • Đặc tả (specifying): cung cấp công cụ để mô tả hệ thống ở nhiều mức khác nhau. • Xây dựng (constructing): các mô hình được tạo ra có thể chuyển đổi sang ngôn ngữ lập trình cụ thể.
• Tài liệu hóa (documenting): lập tài liệu mô tả về cách xây dựng hệ thống. Các bản vẽ của UML: • Biểu đồ Use Case: biểu đồ mô tả các ca hệ thống, giúp xác định người sử dụng hệ thống, tính năng của hệ thống và hiểu được yêu cầu của hệ thống. • Biểu đồ Activity: mô tả hoạt động của các đối tượng, giúp ta hiểu về nghiệp vụ hệ thống. • Biểu đồ Sequence: mô tả cách các đối tượng trong hệ thống tương tác với nhau.
• Biểu đồ Class: mô tả cấu trúc của hệ thống, cấu trúc tĩnh của lớp, hệ thống cấu tạo từ những thành phần nào.3 Mô hình Client Server Mô hình Client-Server trong mạng máy tính, máy khách (client) và máy chủ (server) là hai thành phần chính. Chức năng của máy chủ là lưu trữ tài nguyên và thiết 4 lập các chương trình dịch vụ theo yêu cầu của các máy khách. Và máy khách bao gồm các thiết bị điện tử và máy tính, chúng sẽ gửi các yêu cầu đến máy chủ. Mô hình Client-Server (Nguồn: client-server) Khi client yêu cầu kết nối với server, server có thể chấp nhận hoặc từ chối kết nối.
Nếu kết nối được chấp nhận, server sẽ thiết lập và duy trì kết nối với máy khách qua một giao thức cụ thể. Mô hình xử lý Client/Server muốn hoạt động thì phải triển khai ba thành phần cơ bản sau: Client (Front-end), Server (Back-end), Network. Ưu điểm: • Mọi vấn đề phát sinh trên toàn bộ mạng có thể được giải quyết tại một địa điểm duy nhất. • Khả năng mở rộng: ví dụ máy khách và máy chủ có thể tăng lên khi cần.
• Quản lý dễ dàng: máy khách và máy chủ không cần phải ở gần nhau để truy cập dữ liệu một cách hiệu quả. • Khả năng truy cập: Các vị trí của hệ thống máy khách-máy chủ đều độc lập, chỉ yêu cầu dữ liệu từ máy chủ, cho phép nâng cấp, thay thế và di chuyển đơn giản. • Bảo mật dữ diệu: kiểm soát truy cập đảm bảo những người được ủy quyền mới được phép truy cập. Ví dụ như thông tin đăng nhập (tên người dùng, mật khẩu) là một trong các các kiểm soát truy cập.
Nhược điểm • Tắc nghẽn: việc quá tải hệ thống do thiếu tài nguyên để phục vụ tất cả các máy khách. Nếu có quá nhiều máy khách tạo request tới cùng một máy chủ thì kết nối có thể bị chậm hoặc không hoạt động (crash). 5 • Chi phí để cài đặt và bảo trị mô hình này là khá cao. • Toàn bộ hệ thống sẽ bị gián đoạn nếu máy chủ chính gặp sự cố.3 CÔNG NGHỆ SỬ DỤNG 1.1 DotNet Nền tảng DotNet (.NET) cung cấp cho nhà phát triển thư viện và công cụ để tạo ra các ứng dụng đa dạng, bao gồm các ứng dụng web, trò chơi, máy tính để bàn, thiết bị di động, IoT, đám mây và dịch vụ siêu nhỏ, có khả năng hoạt động trên mọi hệ điều hành.NET có nhiều kiểu triển khai, cho phép mã .NET thực thi trên những hệ điều hành khác nhau: • .NET Framework là kiểu triển khai ban đầu của .NET được Microsoft phát triển vào đầu những năm 2000 với mục đích phát triển các ứng dụng cho Windows, bao gồm cả máy tính để bàn và web.
Nó cung cấp một môi trường thực thi đầy đủ dịch vụ cho các ứng dụng đang chạy trên nó và cũng là một thư viện lớp mở rộng để viết các loại ứng dụng khác nhau. Nó gồm hai phần chính: Common language runtime (CLR), Base Class Library (BCL) [1].NET Core được phát triển vào cuối năm 2014 để phù hợp với một framework đa nền tảng. Kiến trúc mô-đun của .NET Core cung cấp các phiên bản nhỏ hơn của, cho phép nhà phát triển tải xuống các thành phần bổ sung từ kho lưu trữ NuGet. Việc tái cấu trúc này cho phép triển khai đơn giản hóa và tính linh động.NET Standard cho phép các thư viện xây dựng dựa trên bộ API chung đã được thống nhất, đảm bảo có thể được áp dụng vào mọi loại ứng dụng .NET, bao gồm cả di động, IoT, máy tính để bàn, web hoặc bất kỳ nền tảng nào sử dụng mã .2 Csharp C# (Csharp) là một ngôn ngữ lập trình hướng đối tượng, cho phép các nhà phát triển tạo ra các ứng dụng chuyên nghiệp và hiệu quả chạy trên nền tảng.
Phiên bản đầu tiên ra mắt vào năm 2002, và hiện tại phiên bản mới nhất là C# 11 được ra mắt phát hành vào tháng 11 năm 2022. C# sử dụng để phát triển các ứng dụng như: • Websites, web services • Ứng dụng máy tính • Ứng dụng di động • Chương trình dòng lệnh (command-line) • Hệ thống đám mây • Thiết bị vạn vật (IoT devices) • Học máy (machine learning) • Games Kiểu dữ liệu trong C# được chia thành hai loại: • Tham trị (value types) - Kiểu đơn giản: 𝑠𝑏𝑦𝑡𝑒, 𝑏𝑦𝑡𝑒, 𝑠ℎ𝑜𝑟𝑡, 𝑢𝑠ℎ𝑜𝑟𝑡, 𝑢𝑖𝑛𝑡, 𝑖𝑛𝑡, 𝑙𝑜𝑛𝑔, 𝑢𝑙𝑜𝑛𝑔, 𝑑𝑒𝑐𝑚𝑖𝑎𝑙, 𝑓𝑙𝑜𝑎𝑡, 𝑑𝑜𝑢𝑏𝑙𝑒, 𝑐ℎ𝑎𝑟, 𝑏𝑜𝑜𝑙. - Kiểu Enum: ví dụ enum E {.} 7 - Kiểu Struct: ví dụ struct S {.} - Kiểu Nullable: null - Kiểu Tuple: (T1, T2, .) • Kiểu tham chiếu (reference types) - Kiểu lớp (class types): object, string và các kiểu class do người dùng định nghĩa class class C {.} - Kiểu giao diện (interface types): interface I {.} - Kiểu mảng: string [], int [,] và int [] [] - Kiểu delegate: delegate int D(.