Đồ án cuối kỳ xây dựng phần mềm desktop Đồ án cuối kỳ xây dựng phần mềm desktop Đồ án cuối kỳ xây dựng phần mềm desktop Đồ án cuối kỳ xây dựng phần mềm desktop Đồ án cuối kỳ xây dựng phần mềm desktop v
Trang 1GVHD: T.S: Lê Tân Phần mềm Remote - Desktop
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN
THÔNG VIỆT – HÀN
Khoa Khoa Học Máy Tính
ĐỒ ÁN CUỐI KỲ
XÂY DỰNG PHẦN MỀM DESKTOP
Sinh viên thực hiện: LÊ THỊ ÁNH LY
LÊ THỊ KIM TUYỀN
Giảng viên hướng dẫn: T.S LÊ TÂN
Đà Nẵng, tháng 1 năm 2024
Trang 2GVHD: T.S: Lê Tân Phần mềm Remote - Desktop
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN
THÔNG VIỆT – HÀN
Khoa Khoa Học Máy Tính
ĐỒ ÁN CUỐI KỲ
XÂY DỰNG PHẦN MỀM DESKTOP
Sinh viên thực hiện: LÊ THỊ ÁNH LY Mã SV: 21IT153
LÊ THỊ KIM TUYỀN Mã SV: 21IT660
Giảng viên hướng dẫn: T.S LÊ TÂN
Đà Nẵng, tháng 1 năm 2024
Trang 3NHẬN XÉT
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Xác nhận của GVHD
Trang 4LỜI CẢM ƠN
Đầu tiên, nhóm em xin gửi lời cảm ơn chân thành đến Trường đại học Công nghệ Thông tin và Truyền thông Việt - Hàn đã đưa môn học Lập trình mạng vào chương trìnhgiảng dạy Đặc biệt, chúng em xin gửi lời cảm ơn sâu sắc đến thầy Lê Tân đã tận tình hướng dẫn, giảng dạy và truyền đạt những kiến thức quý báu cho chúng em trong suốt thời gian học tập vừa qua Trong thời gian tham gia lớp học, chúng em đã có thêm cho mình nhiều kiến thức bổ ích, tinh thần học tập hiệu quả, nghiêm túc Đây chắc chắn sẽ
là những kiến thức quý báu, là hành trang để chúng em có thể vững bước sau này.Tuy nhiên, do vốn kiến thức còn nhiều hạn chế và khả năng tiếp thu thực tế còn nhiều bỡ ngỡ Mặc dù chúng em đã cố gắng hết sức nhưng chắc chắn bài báo cáo khó cóthể tránh khỏi những thiếu sót và nhiều chỗ còn chưa chính xác, kính mong thầy cô xemxét và góp ý để bài báo cáo của chúng em được hoàn thiện hơn
Chúng em xin chân thành cảm ơn!
Trang 5MỤC LỤC
MỤC LỤC
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 8
1.1 Tổng quan 8
1.1.1 Phát biểu bài toán 8
1.1.2 Sơ lược về lập trình mạng 8
1.1.3 Lập trình mạng được xây dựng theo công thức: 8
1.2 Các mô hình mạng máy tính 8
1.2.1 Mô hình Client - Server 8
1.2.2 Mô hình mạng hàng ngang (Peer-to-Peer) 9
1.2.3 Mô hình lai(Hybrid) 9
1.3 Giao thức TCP/IP và UDP 9
1.3.1 Giao thức TCP(Transmission Control protocol) 9
1.3.2 Giao thức UDP 10
1.4 Ngôn ngữ Java và Lập trình bằng Socket 10
1.4.1 Lập trình socket cơ bản với tcp/ip trong java 10
1.4.2 Lập trình TCP Socket với Java 10
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 12
2.1 Sơ lược về phần mềm Remote - Desktop 12
2.1.1 Danh sách các Stakeholder 12
2.1.2 Danh sách các Use-case 12
2.2 Đặc tả Use-case 13
2.2.1 Đặc tả Use-case Đăng nhập 13
2.2.2 Đặc tả Use-case Chat 13
2.3 Sơ đồ hoạt động 15
2.3.1 Sơ đồ hoạt động của Use-case Đăng nhập 15
2.3.2 Sơ đồ hoạt động của Use-case Chat 16
2.3.3 Sơ đồ hoạt động của Use-case Đăng xuất 16
2.4 Sơ đồ trình tự 17
2.6.1 Sơ đồ trình tự của Use-case Đăng nhập 17
2.6.2 Sơ đồ trình tự của Use-case Chat 17
2.6.3 Sơ đồ trình tự của Use-case Đăng xuất 18
CHƯƠNG 3 THIẾT KẾ PHẦN MỀM 19
3.1 Thiết kế kiến trúc 19
3.1.1 Hệ thống được thiết kế theo mô hình Client - Server 19
Trang 63.1.2 Danh sách các thành phần trong mô hình Client - Server 19
3.1.3 Danh sách các form màn hình 20
3.2 Thiết kế giao diện phần mềm 20
3.2.1 Giao diện tương tác 21
3.2.2 Các Control để xử lý 23
CHƯƠNG 4 KIỂM NGHIỆM PHẦN MỀM 24
4.1 Test case kịch bản “Đăng nhập sai thông tin IP với Port” 24
1 Những kết quả đã đạt được 25
2 Hạn chế, khó khăn và hướng phát triển 25
Trang 7DANH MỤC HÌNH Ả
Hình 1 1 Mô hình Client - Server 8
Hình 1 3 Mô hình Peer-to-Peer 9
Hình 1 4 Kết nối các ứng dụng thông qua Socket 10
Y Hình 2 1 Biểu đồ sơ lược về phần mềm Remote - Desktop 12
Hình 2 2 Sơ đồ hoạt động của Use-case Đăng nhập 15
Hình 2 3 Sơ đồ hoạt động của Use-case Chat 16
Hình 2 4 Sơ đồ hoạt động của Use-case Đăng xuất 16
Hình 2 5 Sơ đồ trình tự của Use-case Đăng nhập 17
Hình 2 6 Sơ đồ trình tự của Use-case Chat 17
Hình 2 7 Sơ đồ trình tự của Use-case Đăng xuất 18
Hình 3 1 Mô hình Client – Server 19
Hình 3 2 Sơ đồ hoạt động của phần mềm Remote – Desktop 20
Hình 3 3 Giao diện tương tác của Remote Desktop 21
Hình 3 4 Giao diện đăng nhập thành công 21
Hình 3 5 Giao diện gửi tin nhắn trong Chat 22
Hình 3 6 Giao diện chọn file trong Chat 22
Trang 8CHƯƠNG 1 CƠ SỞ LÝ THUYẾT1.1 Tổng quan
1.1.1 Phát biểu bài toán
Ngày nay việc kết nối với nhau trên thế giới đang ngày càng được phát triểnnhưng vẫn còn những bất tiện về mặt trao đổi thông tin khi 2 bên không hiểu ý nhau
Vì thế nhằm đáp ứng nhu cầu kết nối và trao đổi thông tin với nhau qua màn hìnhbằng cách kết nối từ xa Nhóm em đã xây dựng và phát triển ứng dụng Remote-Desktop trên Desktop dựa trên ngôn ngữ Java và thư viện javax.mail.*
1.1.2 Sơ lược về lập trình mạng
Lập trình mạng là nhiệm vụ cơ bản để phát triển các ứng dụng trong hệ thốngdoanh nghiệp, từ chương trình phần mềm quản lý như kế toán, nhân sự… cho đếnứng dụng giải trí là trò chơi, điều khiển…
1.1.3 Lập trình mạng được xây dựng theo công thức:
Lập trình mạng (LTM) = Kiến thức mạng truyền thông + Mô hình LTM + Ngôn ngữ của LTM.
1.2.1 Mô hình Client - Server
Các máy trạm được nối với các máy chủ, nhận quyền truy nhập mạng và tàinguyên mạng từ các máy chủ
Hình 1 1 Mô hình Client - Server
Trang 91.2.2 Mô hình mạng hàng ngang (Peer-to-Peer)
Hai hay nhiều máy tính chia sẻ tệp tin và truy cập các thiết bị như máy in mà không cần đếnmáy chủ hay phần mềm máy chủ, đó chính là mô hình mạng ngang hàng
Hình 1 2 Mô hình Peer-to-Peer
1.2.3 Mô hình lai(Hybrid)
Đa số các mạng máy tính đều sử dụng mô hình này, đây là loại mô hình có sự
kết hợp giữa Client-Server và Peer-to-Peer
Nhìn chung các mạng máy tính đều có những ưu và nhược điểm khác nhau dựa
trên từng chi tiêu đánh giá như: Sự cài đặt, bảo mật thông tin, hay khả năng mở rộng
mạng
1.3 Giao thức TCP/IP và UDP
1.3.1 Giao thức TCP(Transmission Control protocol).
TCP là giao thức truyền tải hướng kết nối (connection-oriented), nghĩa là phải
thực hiện thiết lập kết nối với đầu xa trước khi thực hiện truyền dữ liệu Tiến trình
thiết lập kết nối ở TCP được gọi là tiến trình bắt tay 3 bước (threeway handshake)
Cung cấp cơ chế báo nhận (Acknowledgement) :Khi A gửi dữ liệu cho B, B
nhận được thì gửi gói tin cho A xác nhận là đã nhận Nếu không nhận được tin xác nhận
thì A sẽ gửi cho đến khi B báo nhận thì thôi
Cung cấp cơ chế đánh số thứ tự gói tin (sequencing) cho các đơn vị dữ liệu
được truyền, sử dụng để ráp các gói tin chính xác ở điểm nhận và loại bỏ gói tin
trùng lặp
Có các cơ chế điều khiển luồng thích hợp (flow control) để tránh nghẽn xảy ra.
Hỗ trợ cơ chế full-duplex ( truyền và nhận dữ liệu cùng một lúc)
Phục hồi dữ liệu bị mất trên đường truyền ( A gửi B mà không thấy xác nhận sẽ
gửi lại)
Trang 101.3.2 Giao thức UDP
Ngược lại với giao thức TCP thì UDP là giao thức truyền tải hướng không kếtnối (connectionless) Nó sẽ không thực hiện thao tác xây dựng kết nối trướckhi truyền dữ liệu mà thực hiện truyền ngay lập tức khi có dữ liệu cần truyền(kiểu truyền best effort) => truyền tải rất nhanh cho dữ liệu của lớp ứng dụng
Không đảm bảo tính tin cậy khi truyền dữ liệu và không có cơ chế phục hồi
dữ liệu ( nó không quan tâm gói tin có đến đích hay không, không biết gói tin
có bị mất mát trên đường đi hay không) => dễ bị lỗi
Không thực hiện các biện pháp đánh số thứ tự cho các đơn vị dữ liệu
1.4 Ngôn ngữ Java và Lập trình bằng Socket
Hình 1 3 Kết nối các ứng dụng thông qua Socket
1.4.1 Lập trình socket cơ bản với tcp/ip trong java
Socket được biết đến là cánh cửa giao tiếp giữa hai tiến trình ứng dụng Socket
hỗ trợ nhiều ngôn ngữ (C, java, perl, python,…) cũng như nhiều platform (*nix,Windows,…) Socket được viết bằng các ngôn ngữ khác nhau và chạy trên bất kỳplatform nào đều có thể giao tiếp với nhau Trong bài viết này mình gửi đến các bạnkhái niệm cơ bản về Socket cũng như cách lập trình Socket với các loại giao thức
1.4.2 Lập trình TCP Socket với Java
Đúng như tính chất của TCP chúng ta cần có liên kết 2 chiều trước khi server vàclient có thể trao đổi thông điệp với nhau
Ban đầu, phía server tạo Socket được ràng buộc với một cổng (port number) đểchờ nhận yêu cầu từ phía client
Trang 11Tiếp đến phía client yêu cầu server bằng cách tạo một Socket TCP trên máy kèmvới địa chỉ IP và port number của tiến trình tương ứng trên máy server Khi client tạoSocket, client TCP tạo liên kết với server TCP và chờ chấp nhận kết nối từ server.TCP cung cấp dịch vụ truyền dòng tin cậy và có thứ tự giữa client và server, giữamáy chủ và máy nhận chỉ có 1 địa chỉ IP duy nhất Thêm vào đó, mỗi thông điệptruyền đi đều có xác nhận trả về.
Sau đây là một ví dụ ứng dụng đơn giản về lập trình TCP Socket với Java
Miêu tả ứng dụng:
Client đọc dòng văn bản nhập từ bàn phím người dùng, gửi tới server qua
Socket
Server đọc các dòng văn bản gửi từ Socket
Server sẽ chuyển lại dòng văn bản kèm theo “Server accepted” tới phía clientqua Socket
Client đọc dòng văn bản từ socket và in ra dòng văn bản nhận được từ Server
Trang 12CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG2.1 Sơ lược về phần mềm Remote - Desktop
Hình 2 1 Biểu đồ sơ lược về phần mềm Remote - Desktop
2.1.1 Danh sách các Stakeholder
1 User(1)
Là các cá nhân sử dụng phần mềm Desktop để tiến hành các chức năng kết nốivới 1 máy ở xa
Remote-2 User(2)
Là người tiếp xúc trực tiếp hoặc gián tiếp quamạng truyền thông với người sử dụng để cóthế giải đáp và tiếp nhận phàn nàn cũng như ýkiến
2.1.2 Danh sách các Use-case
1 Đăng nhập Là người dùng sẽ lấy IP và Port từmột ở máy khác ở xa.
2 Chọn IP Đăng nhập Là người sử dụng có thể chọn một IPđăng nhập đã biết.
mess
3 Thoát Người dùng sẽ thoát khỏi phần mềm
Remote - Desktop và ngắt kết nối
Trang 132.2 Đặc tả Use-case
2.2.1 Đặc tả Use-case Đăng nhập
Mô tả Người sử dụng muốn dùng phần mềm để kết nối từxa với máy còn lại thông qua IP và Port đã được tạo
Điều kiện phát sinh
Nhấn connect để đăng nhập
Dòng sự kiện chính
1 Hệ thống yêu cầu nhập tên IP và port
2 Người dùng nhập đầy đủ IP và Port
3 Đăng nhập thành công sẽ hiển thị giao diệnquản kết nối giữa 2 máy
Dòng sự kiện phụ/rẽ
Khác Không có
2.2.2 Đặc tả Use-case Chat
Mô tả Người sử dụng muốn dùng phần mềm để nhắn tinhoặc gửi file thông qua IP và Port đã được tạo
Desktop
Trang 14Yêu cầu đặc biệt IP và Port kích hoạt trên Server
Điều kiện phát sinh
Click vào Chat để nhắn tin hoặc gửi file
Dòng sự kiện chính
3 Hệ thống yêu cầu nhập tên IP và port
4 Người dùng nhập đầy đủ IP và Port
3 Đăng nhập thành công sẽ hiển thị giao diệnquản kết nối giữa 2 máy
Dòng sự kiện phụ/rẽ
nhánh
Đăng nhập thất bại sẽ yêu cầu nhập lại
Khác Không có
2.1.1 Đặc tả Use-case Đăng xuất
Desktop
Trang 15Khác Không có
2.3 Sơ đồ hoạt động
2.3.1 Sơ đồ hoạt động của Use-case Đăng nhập
Hình 2 2 Sơ đồ hoạt động của Use-case Đăng nhập
2.3.2 Sơ đồ hoạt động của Use-case Chat
Trang 16Hình 2 3 Sơ đồ hoạt động của Use-case Chat
2.3.3 Sơ đồ hoạt động của Use-case Đăng xuất
Hình 2 4 Sơ đồ hoạt động của Use-case Đăng xuất
2.4 Sơ đồ trình tự
2.6.1 Sơ đồ trình tự của Use-case Đăng nhập
Trang 17Hình 2 5 Sơ đồ trình tự của Use-case Đăng nhập
2.6.2 Sơ đồ trình tự của Use-case Chat
Hình 2 6 Sơ đồ trình tự của Use-case Chat
Trang 182.6.3 Sơ đồ trình tự của Use-case Đăng xuất
Hình 2 7 Sơ đồ trình tự của Use-case Đăng xuất
Trang 19CHƯƠNG 3 THIẾT KẾ PHẦN MỀM3.1 Thiết kế kiến trúc
3.1.1 Hệ thống được thiết kế theo mô hình Client - Server
Hình 3 1 Mô hình Client – Server
3.1.2 Danh sách các thành phần trong mô hình Client - Server
Client Máy khách truy cập cơ sở dữ liệu và thực hiện thao tác
Trang 203.1.3 Danh sách các form màn hình
1 Đăng nhập Là Form bắt buộc thực hiện thành công.
2 Thoát Thực hiện quá trình thoát khỏi hệ thống.
3.2 Thiết kế giao diện phần mềm
3.2.1 Sơ đồ hoạt động của phần mềm
Hình 3 2 Sơ đồ hoạt động của phần mềm Remote – Desktop
3.2 Đặc tả giao diện tương tác và xử lý
Trang 213.2.1 Giao diện tương tác
Hình 3 3 Giao diện tương tác của Remote Desktop
Hình 3 4 Giao diện đăng nhập thành công
Trang 22Hình 3 5 Giao diện gửi tin nhắn trong Chat
Hình 3 6 Giao diện chọn file trong Chat
Trang 233.2.2 Các sự kiện xử lý
1 text_ip Địa chỉ IP cần kết nối
2 submit Kết nối tới máy tính cần điều khiển
3.2.2 Các Control để xử lý
1 text_ip Địa chỉ IP để kết nối
2 submit Kiểm tra IP khớp với phía Server
Trang 24CHƯƠNG 4 KIỂM NGHIỆM PHẦN MỀM
4.1 Test case kịch bản “Đăng nhập sai thông tin IP với Port”
Kịch bản Nhập sai thông tin đăng nhập tài khoản để connect
Related Use Case Connect
Context Bỏ trống text ở Form hoặc nhập sai thông tin
Input Data test IP: “ ” -> Bỏ trống
textIP: “1591” -> Nhập sai thông tin
Expected Output Đăng nhập lại
Test Steps
1 Nhập thông tin IP và Port
2 Connect tài khoản
3 Hiển thị màn hình giao diện
Trang 25KẾT LUẬN
1 Những kết quả đã đạt được
Đã xây dựng thành công phần mềm Remote - Desktop để kết nối hai máy tính từxa
Nắm được những kiến thức cơ bản về Lập trình mạng
Thiết lập được màn hình kết nối giữa 2 máy tính
Hiểu được các chức năng của phần mềm Remote - Desktop
2 Hạn chế, khó khăn và hướng phát triển
Phần mềm Remote - Desktop vẫn còn thiếu nhiều chức năng, chức năng vẫn cònhạn chế, chỉ thực hiện các tương tác đơn giản qua lại giữa 2 máy tính
Sẽ phát triển các tính năng nâng cao để người dùng có thể tương tác và giao tiếpqua lại giữa hai máy tính một cách dễ dàng và thuận tiện hơn
Trang 26TÀI LIỆU THAM KHẢO
UltraView
TeamView
Github