You are on page 1of 26

Phần mềm Remote - Desktop GVHD: T.

S: Lê Tân

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

Lớp: 21MC
Giảng viên hướng dẫn: T.S LÊ TÂN

Đà Nẵng, tháng 1 năm 2024


Phần mềm Remote - Desktop GVHD: T.S: Lê Tân

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

Lớp: 21MC
Giảng viên hướng dẫn: T.S LÊ TÂN

Đà Nẵng, tháng 1 năm 2024


Phần mềm Remote - Desktop GVHD: T.S: Lê Tân

NHẬN XÉT

………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………

Xác nhận của GVHD


Phần mềm Remote - Desktop GVHD: T.S: Lê Tân

LỜ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ình
giả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ô xem
xé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!
Phần mềm Remote - Desktop GVHD: T.S: Lê Tân

MỤ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
Phần mềm Remote - Desktop GVHD: T.S: Lê Tân
3.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
Phần mềm Remote - Desktop GVHD: T.S: Lê Tân

DANH MỤC HÌNH Ả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

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
Phần mềm Remote - Desktop GVHD: T.S: Lê Tân

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
1.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ển
như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ình
bằ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ống
doanh 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.
Có 3 vấn đề chính:
 Kiến thức mạng truyền thông.
 Mô hình lập trình mạng.
 Ngôn ngữ lập trình mạng.
1.2 Các mô hình mạng máy tính
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ài
nguyên mạng từ các máy chủ.

Hình 1. 1 Mô hình Client - Server


Phần mềm Remote - Desktop GVHD: T.S: Lê Tân

1.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 đến
má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)
Phần mềm Remote - Desktop GVHD: T.S: Lê Tân
1.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ết
nối (connectionless). Nó sẽ không thực hiện thao tác xây dựng kết nối trước
khi 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
được truyền…
 Nhanh và hiệu quả hơn đối với các dữ liệu có kích thước nhỏ và yêu cầu
khắt khe về thời gian.
 Bản chất không trạng thái nên UDP hữu dụng đối với việc trả lời các truy
vấn nhỏ với số lượng lớn người yêu cầ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ạn
khá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.
Tiế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èm
Phần mềm Remote - Desktop GVHD: T.S: Lê Tân
với địa chỉ IP và port number của tiến trình tương ứng trên máy server. Khi client tạo
Socket, 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ữa
má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ệp
truyề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 client
qua 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.
Phần mềm Remote - Desktop GVHD: T.S: Lê Tân
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.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

STT Tên tác nhân Stakeholder Mô tả


Là các cá nhân sử dụng phần mềm Remote-
1 User(1) Desktop để tiến hành các chức năng kết nối
với 1 máy ở xa.
Là người tiếp xúc trực tiếp hoặc gián tiếp qua
2 User(2) mạ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

STT Tên User Case Mô Tả


Là người dùng sẽ lấy IP và Port từ
1 Đăng nhập một ở máy khác ở xa.
Là người sử dụng có thể chọn một IP
2 Chọn IP Đăng nhập đăng nhập đã biết.
Là người sử dụng có thể chọn một IP
3 Chọn IP Chat đăng nhập đã biết để gửi file hoặc
mess.
3 Thoát Người dùng sẽ thoát khỏi phần mềm
Phần mềm Remote - Desktop GVHD: T.S: Lê Tân
Remote - Desktop và ngắt kết nối.

2.2 Đặc tả Use-case


2.2.1 Đặc tả Use-case Đăng nhập
Tên User case Đăng nhập
Actor User
Người sử dụng muốn dùng phần mềm để kết nối từ
Mô tả xa với máy còn lại thông qua IP và Port đã được tạo.

Mục Đích Đăng nhập phần mềm Remote - Desktop

IP và Port kích hoạt trên Server .


Yêu cầu đặc biệt

Điều kiện tiên quyết IP và Port không bị khóa


Nhấn connect để đăng nhập.
Điều kiện phát sinh

Điều kiện hậu quyết Không có


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
Dòng sự kiện chính
3. Đăng nhập thành công sẽ hiển thị giao diện
quản kết nối giữa 2 máy.

Dòng sự kiện phụ/rẽ Đăng nhập thất bại sẽ yêu cầu nhập lại.
nhánh
Dòng sự kiện ngoại lệ Không có.
Khác Không có.

2.2.2 Đặc tả Use-case Chat

Tên User case Chat


Actor User
Người sử dụng muốn dùng phần mềm để nhắn tin
Mô tả hoặc gửi file thông qua IP và Port đã được tạo.

Mục Đích Trao đổi thông tin thông qua phần mềm Remote -
Phần mềm Remote - Desktop GVHD: T.S: Lê Tân

Desktop
IP và Port kích hoạt trên Server .
Yêu cầu đặc biệt

Điều kiện tiên quyết IP và Port không bị khóa


Click vào Chat để nhắn tin
Điều kiện phát sinh
hoặc gửi file.

Điều kiện hậu quyết Không có


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
Dòng sự kiện chính
3. Đăng nhập thành công sẽ hiển thị giao diện
quản kết nối giữa 2 máy.

Dòng sự kiện phụ/rẽ Đăng nhập thất bại sẽ yêu cầu nhập lại.
nhánh
Dòng sự kiện ngoại lệ Không có.
Khác Không có.

2.1.1. Đặc tả Use-case Đăng xuất


Tên User case Thoát
Actor User

Người sử dụng sẽ thoát khỏi phần mềm Remote -


Mô tả
Desktop.

Mục Đích Thoát và ngắt kết nối phần mềm Remote - Desktop.

Yêu cầu đặc biệt Đang hoạt động.

Điều kiện tiên quyết Đã đăng nhập.

Điều kiện phát sinh Không có

Điều kiện hậu quyết Không có

1. Hệ thống sẽ hiển thị nút X để đăng xuất


2. Người dùng chọn và ấn nút để thoát.
3. Thoát thành công.
Phần mềm Remote - Desktop GVHD: T.S: Lê Tân

Dòng sự kiện chính

Dòng sự kiện phụ/rẽ 3. Đăng xuất thất bại và kiểm tra lại kết nối
nhánh

Dòng sự kiện ngoại lệ Không có.

Khá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


Phần mềm Remote - Desktop GVHD: T.S: Lê Tân

Hì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
Phần mềm Remote - Desktop GVHD: T.S: Lê Tân

Hì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


Phần mềm Remote - Desktop GVHD: T.S: Lê Tân
2.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


Phần mềm Remote - Desktop GVHD: T.S: Lê Tân

CHƯƠNG 3 THIẾT KẾ PHẦN MỀM


3.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

Thành phần Giải thích

Client Máy khách truy cập cơ sở dữ liệu và thực hiện thao tác.

Server Server nơi lưu trữ Port.


Phần mềm Remote - Desktop GVHD: T.S: Lê Tân

3.1.3 Danh sách các form màn hình

STT Form màn hình Ý nghĩa/Chú thích


Là Form bắt buộc thực hiện thành
1 Đăng nhập công.

Thực hiện quá trình thoát khỏi hệ


2 Thoát thống.

3 Kết nối Hiện màn hình của máy nhập IP.

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ý


Phần mềm Remote - Desktop GVHD: T.S: Lê Tân
3.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


Phần mềm Remote - Desktop GVHD: T.S: Lê Tân

Hì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


Phần mềm Remote - Desktop GVHD: T.S: Lê Tân
3.2.2. Các sự kiện xử lý

STT Tên 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ý

STT Tên Control Xử lý

1 text_ip Địa chỉ IP để kết nối

submit Kiểm tra IP khớp với phía Server


2
Phần mềm Remote - Desktop GVHD: T.S: Lê Tân
CHƯƠ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”

Use-case Đăng nhập


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.
test IP: “ ” -> Bỏ trống
Input Data
textIP: “1591” -> Nhập sai thông tin
Expected Output Đăng nhập lại.
1. Nhập thông tin IP và Port.

Test Steps 2. Connect tài khoản.

3. Hiển thị màn hình giao diện.


Phần mềm Remote - Desktop GVHD: T.S: Lê Tân

KẾ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òn
hạ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ếp
qua lại giữa hai máy tính một cách dễ dàng và thuận tiện hơn.
Phần mềm Remote - Desktop GVHD: T.S: Lê Tân

TÀI LIỆU THAM KHẢO


 UltraView
 TeamView
 Github

You might also like