TRƯỜNG ĐẠI HỌC CNTT VÀ TT VIỆT – HÀN
KHOA KHOA HỌC MÁY TÍNH
BÁO CÁO LẬP TRÌNH MẠNG
ĐỀ TÀI: XÂY DỰNG GAME CARO
Sinh viên thực hiện:
NGUYỄN MINH DIỆN – 20IT3
NGUYỄN BẢO TÍN –
19IT3 ĐẶNG NGỌC THƯ –
ĐINH ĐỨC ANH – 20IT553
Giảng viên hướng dẫn:
TS. HOÀNG HỮU ĐỨC
Đà Nẵng, tháng 11 năm 2022
TRƯỜNG ĐẠI HỌC CNTT VÀ TT VIỆT – HÀN
KHOA KHOA HỌC MÁY TÍNH
BÁO CÁO LẬP TRÌNH MẠNG
ĐỀ TÀI: XÂY DỰNG GAME CARO
Sinh viên thực hiện:
NGUYỄN MINH DIỆN – 20IT3
NGUYỄN BẢO TÍN –
19IT3 ĐẶNG NGỌC THƯ –
ĐINH ĐỨC ANH – 20IT553
Giảng viên hướng dẫn:
TS. HOÀNG HỮU ĐỨC
MỤC LỤC
MỤC LỤC......................................................................................................................... 3
DANH MỤC HÌNH...........................................................................................................6
DANH MỤC BẢNG..........................................................................................................8
DANH MỤC VIẾT TẮT...................................................................................................9
MỞ ĐẦU......................................................................................................................... 10
LỜI CẢM ƠN.................................................................................................................. 11
CHƯƠNG 1. TỔNG QUAN............................................................................................ 12
1.1. Lý do chọn đề tài................................................................................................... 12
1.2. Mục tiêu nghiên cứu.............................................................................................. 13
1.3. Nhiệm vụ nghiên cứu............................................................................................ 13
1.4. Phương pháp và phạm vi nghiên cứu.................................................................... 13
1.5. Phương tiện nghiên cứu......................................................................................... 14
1.6. Xác định những yêu cầu hệ thống......................................................................... 14
1.6.1. Yêu cầu chức năng......................................................................... 14
1.6.2. Yêu cầu phi chức năng................................................................... 14
1.7. Kết quả đề tài........................................................................................................ 15
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT................................................................................. 16
2.1. Công cụ thiết kế ứng dụng..................................................................................... 16
2.1.1. Android studio............................................................................... 16
2.1.2. Sublime Text 3...............................................................................17
2.1.3. Phần mềm phân tích thiết kế hệ thống StarUML.....................................17
2.1.4. Công cụ quản trị cơ sở dữ liệu PhpMyAdmin................................ 18
2.2. Ngôn ngữ thiết kế ứng dụng.................................................................................. 18
2.2.1. Ngôn ngữ chính lập trình ứng dụng android.................................. 18
2.2.2. Ngơn ngữ XML (eXtensible Markup Language)...........................20
2.2.3. Ngôn ngữ thiết kế hệ thống UML........................................................... 21
2.2.4. Ngôn ngữ lập trình PHP..........................................................................22
2.2.2. Framework Laravel.................................................................................23
2.3. Cơng nghệ xây dựng ứng dụng.............................................................................. 24
2.3.1. Khái niệm về API RESTful API trong Moblie App................................ 24
2.3.2. Khái niệm và cấu trúc json...................................................................... 26
CHƯƠNG 3. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG................................................ 32
3.1. Biểu đồ Usecase................................................................................................... 32
3.1.1. Biểu đồ Usecase tổng quát...................................................................... 32
3.1.2. Biểu đồ Usecase phân rã actor “Giáo Viên”............................................ 33
3.1.3. Biểu đồ Usecase phân rã actor “Học Sinh”............................................. 33
3.1.4. Biểu đồ Usecase phân rã actor “Admin”................................................. 34
3.1.5. Usecase quản lí danh sách học sinh......................................................... 34
3.1.6. Usecase quản lí điểm............................................................................... 35
3.1.7. Usecase quản lí mơn học......................................................................... 35
3.1.8. Usecase quản lí lịch học.......................................................................... 36
3.1.9. Usecase quản lí và hiệu chỉnh tài khoản.................................................. 36
3.1.10. Usecase quản lí giáo viên...................................................................... 37
3.2. Đặc tả Usecase...................................................................................................... 37
3.2.1. Đặc Usecase đăng nhập hệ thống............................................................ 37
3.2.2. Đặc tả Usecase quản lí và hiệu chỉnh thơng tin học sinh.........................38
3.2.3. Đặc tả Usecase quản lý môn học............................................................. 39
3.2.4. Đặc tả Usecase quản lý Điểm.................................................................. 41
3.2.5. Đặc tả Usecase thống kê.......................................................................... 43
3.2.6. Đặc tả Usecase tra cứu thông tin.................................................... 44
3.2.7. Đặc tả Usecase quản lí giáo viên:.................................................. 44
3.2.8. Đặc tả Usecase quản lý và hiệu chỉnh tài khoản...................................... 46
3.3. Biểu đồ lớp............................................................................................................ 49
CHƯƠNG 4. XÂY DỰNG ỨNG DỤNG........................................................................ 50
4.1. Hệ thống CSDL..................................................................................................... 50
4.1.1. Bảng user....................................................................................... 50
4.1.2. Bảng giáo viên............................................................................... 50
4.1.3. Bảng học sinh................................................................................ 51
4.1.4. Bảng lớp........................................................................................ 51
4.1.5. Bảng lịch học................................................................................. 51
4.1.6. Bảng môn học................................................................................ 52
4.2. Thiết kế ứng dụng................................................................................................. 53
4.2.1. Phần web API................................................................................ 53
4.2.2. Phần ứng dụng Android................................................................. 55
KẾT LUẬN...................................................................................................................... 65
Kết quả đạt được.......................................................................................................... 65
Hướng phát triển.......................................................................................................... 66
TÀI LIỆU THAM KHẢO................................................................................................ 67
MỞ ĐẦU
Cùng với sự phát triển không ngừng của các ngành khoa học kỹ thuật, các ngành
công nghiệp cũng phát triển nhanh chóng. Việc áp dụng những cơng nghệ hiện đại vào
nhiều lĩnh vực trong cuộc sống đó là điều tất yếu. Song song với sự phát triển đó là sự
phát triển về văn hóa, giáo dục.
Sự ra đời của cơng nghệ thơng tin là sự tích hợp đồng thời các tiến bộ về công
nghệ và tổ chức thông tin, đem đến nhiều ảnh hưởng tích cực cho sự phát triển cho ngành
giải trí. Chính vì thế và việc áp dụng cơng nghệ thơng tin vào việc giải trí và học tập là
điều rất cần thiết, nó giúp con người thuận tiện giải trí, kết nối bạn bè và học tập.
Do đó, nhóm chúng em quyết định thực hiện đề tài: “Xây dựng game caro”. Ứng
dụng sẽ giúp kết nối 2 hoặc nhiều máy với nhau để tương tác, giải trí với game caro.
LỜI CẢM ƠN
Trong suốt thời gian làm đồ án, nhóm chúng em nhận được rất nhiều sự giúp đỡ.
Chúng em xin chân thành cảm ơn Khoa khoa học máy tính - Trường ĐH CNTT & TT
Việt Hàn - ĐHĐN đã tạo điều kiện thuận lợi cho em thực hiện đề tài đồ án cơ sở 3 này.
Xin cảm ơn quý Thầy Cơ bộ mơn Khoa khoa học máy tính - Trường ĐH CNTT & TT
Việt Hàn - ĐHĐN đã tận tình giảng dạy, trang bị cho chúng em những kiến thức quý báu
trong năm học vừa qua.
Chúng em xin chân thành tỏ lịng biết ơn sâu sắc đến Hồng Hữu Đức đã tận tình
hướng dẫn em trong suốt quá trình thực hiện làm đồ án này.
Cảm ơn các bạn trong lớp, trong trường, trong ngành Khoa khoa học máy tính Trường ĐH CNTT & TT Việt Hàn - ĐHĐN đã hỗ trợ, giúp đỡ, chia sẻ kinh nghiệm và
kiến thức cho nhóm trong q trình thực hiện đề tài.
Trong q trình làm đồ án, do kiến thức về lập trình di động chưa thực sự sâu sắc
nên đồ án của chúng em khơng thể tránh khỏi những sai sót. Mong cơ thơng cảm và góp
ý thêm cho chúng em để đồ án được hoàn chỉnh hơn.
Chúng em xin chân thành cảm ơn!
CHƯƠNG 1. TỔNG QUAN
1.1. Lý do chọn đề tài
Hiện nay, công nghệ thông tin được xem là một ngành mũi nhọn của các quốc gia,
đặc biệt là các quốc gia đang phát triển, tiến hành cơng nghiệp hóa và hiện đại hố như
nước ta. Sự bùng nổ thơng tin và sự phát triển mạnh mẽ của công nghệ kỹ thuật số, u
cầu muốn phát triển thì phải tin học hố vào tất cả các ngành các lĩnh vực.
Cùng với sự phát triển nhanh chóng về phần cứng máy tính, các ứng dụng ngày càng trở
nên đa dạng, phong phú, hoàn thiện hơn và hỗ trợ hiệu quả cho con người. Các ứng dụng
hiện nay ngày càng mô phỏng được rất nhiều nghiệp vụ khó khăn, hỗ trợ cho người dùng
thuận tiện sử dụng, thời gian xử lý nhanh chóng, và hỗ trợ von người trong việc gải trí rất
tốt.
Do vậy mà trong việc phát triển ứng dụng, sự đòi hỏi khơng chỉ là sự chính xác,
xử lý được nhiều nghiệp vụ thực tế mà còn phải đáp ứng các yêu cầu khác như về tốc độ,
giao diện thân thiện. Việc lựa chọ đề tài ‘xây dựng ứng dụng game caro’ được chúng em
lên ý tưởng dựa trên cơ sở môn lập trình mạng được học trên lớp. chúng em thấy rằng
việc ứng dụng kết thức của môn này vào việc xây dựng game caro là một lợi thế rất lớn.
1.2. Mục tiêu nghiên cứu
Xây dựng một ứng dụng hoàn thiện về giao diện và tối ưu về chức năng. Ứng
dụng sẽ giúp người dùng dễ dàng truy cập, kết nói với máy khác và thực kiện chơi game.
Ứng dụng phát triên với một số chức năng cơ bản như tạo phịng thường, tạo phịng có
mật khẩu, phần chat, tìm phịng, đầu hàng, tính điểm,…
- Xây dựng một hệ thống mới phù hợp, dể hiểu, dể sử dụng cho người dùng phần
mềm.
- Giúp bản thân có thêm khả năng sáng tạo, tư duy thông qua thiết kế giao diện
tương tác với người dùng, vận dụng kiến thức bản thân vào thực tiễn.
1.3. Nhiệm vụ nghiên cứu
Phần mềm này được tạo ra nhằm mục đích giải trí với game caro, tạo mơi trường
tương tác qua internet.
8
1.4. Phương pháp và phạm vi nghiên cứu
Phương pháp nghiên cứu:
- Tham khảo, nghiên cứu thêm các tài liệu trên trang web, trang báo, tìm hiểu tình
hình thực trạng của đề tài.
- Tìm hiểu các đề tài của các anh chị khóa trước đã làm hoặc tìm hiểu qua sách báo,
trang mạng liên quan đến đề tài nghiên cứu.
- Quan sát, học tập cách chơi caro từ đó ứng dụng vào game một cách hợp lý.
1.5. Phương tiện nghiên cứu
- Nghiên cứu cơ sở lý thuyết về phân tích và thiết kế hệ thống thông tin.
- Hệ quản trị CSDL và ngơn ngữ lập trình Java.
- Sử dụng các cơng cụ eclip để lập trình, thiết kế giao diện. - Sử dụng hệ quản trị cơ
sở dữ liệu MySQL để quản trị cơ sở dữ liệu cho đề tài.
1.6. Xác định những yêu cầu hệ thống
1.6.1. Yêu cầu chức năng
Hệ thống bao gồm:
- Quản lý tài khoản người dung.
- Đăng nhập và đăng kí tài khoản.
- Tạo phịng chơi có mật khẩu và khơng mật khẩu.
- Tìm phịng.
Những người quản lý thơng tin được cập nhật chính xác, những người thay đổi,
những người có quyền lợi thì dễ dàng truy cập để theo dõi thông tin. Hệ thống hoạt động
một cách tự động.
1.6.2. Yêu cầu phi chức năng
Về thiết bị:
- Phần cứng: máy tính, mạng để phục vụ cho việc trao đổi dữ liệu và truy cập dễ
dàng.
- Ứng dụng có thiết kế giao diện đẹp mà đơn giản, khơng rườm rà.
- Dễ sử dụng đối với người dùng.
- Bố cục các phần của ứng dụng rõ ràng.
1.7. Kết quả đề tài
Hoàn thiện ứng dụng về mặt giao diện và một số chức năng cơ bản. Ứng dụng
hoàn thiện tạo nên một mối liên hệ mới giữa hai máy tính với nhau với đầy ddue chức
năng như:
- Quản lý tài khoản người dung.
- Đăng nhập và đăng kí tài khoản.
- Tạo phịng chơi có mật khẩu và khơng mật khẩu.
- Tìm phịng.
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1. Công cụ thiết kế ứng dụng
2.1.1. Eclips.
- Eclipse là gì?
Eclipse là 1 cơng cụ hỗ trợ lập trình mã nguồn mở được phát triển bởi IBM.
Eclipse như một mơi trường phát triển Java tích hợp (IDE), với Eclipse chúng ta có thể
mở rộng hơn mã nguồn bằng cách chèn thêm các plugins cho project (PDE- Plug-in
Development Environment). Mặc dù Eclipse được viết bằng ngôn ngữ lập trình Java,
nhưng việc sử dụng nó khơng hạn chế chỉ cho ngơn ngữ Java. Ví dụ, Eclipse hỗ trợ sẵn
hoặc có thể cài thêm các plugins để hỗ trợ cho các ngơn ngữ lập trình như C/C + + và
COBOL. Ngồi ra, cịn rất nhiều ngơn ngữ khác như PHP, Groovy, ...
Eclipse cịn hỗ trợ cho lập trình viên code theo các mơ hình phát triển như MVC, tạo
thêm các lib hỗ trợ phát triển phần mềm.
- Ưu, nhược điểm của eclipse
Ưu điểm
•
Tạo thuận lợi cho tích hợp liền mạch các công cụ bên trong mỗi một và xuyên
qua nhiều kiểu nội dung và các nhà cung cấp cơng cụ khác nhau.
•
Hỗ trợ việc xây dựng nhiều cơng cụ.
•
Hỗ trợ một tập hợp khơng hạn chế các nhà cung cấp công cụ, bao gồm cả các
nhà cung cấp phần mềm độc lập (ISV).
•
Hỗ trợ các cơng cụ thao tác các kiểu nội dung bất kỳ (bao gồm cả HTML, Java,
C, JSP, EJB, XML, và GIF).
•
Hỗ trợ cả mơi trường phát triển ứng dụng GUI lẫn không dựa trên GUI.
•
Chạy trên nhiều hệ điều hành, bao gồm cả Windows và Linux.
•
Lợi dụng tính phổ biến của ngơn ngữ Java để viết các cơng cụ.
•
Do sử dụng SWT/JFace nên có lẽ load nhanh hơn
Nhược điểm
•
Cài đặt phức tạp
•
Tốn phần cứng máy Eclipse cũng khá tốn bộ nhớ máy để cài đặt nên hiện
nay eclipse đã khắc phục bằng phiên bản Eclipse Luna, không cần cái đặt
•
Tốn bộ nhớ máy: chạy eclipse cũng khá tốn bộ nhớ máy tính nên để sử dụng
nó máy của bạn cũng cần có cấu hình tương đối cao
•
Thiếu tính nhất qn vì có nhiều plugins q
Hình 2 - 1: Cơng cụ lập trình Eclipse
2.1.2. Công cụ quản trị cơ sở dữ liệu MySQL.
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và
được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì
MySQL là hệ quản trị cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả
chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện
ích rất mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng
dụng có truy cập CSDL trên internet. Người dùng có thể tải về MySQL miễn phí từ
trang chủ. MySQL có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản
Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD,
NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,..
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu
quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).
MySQL được sử dụng cho việc bổ trợ Node.js, PHP, Perl, và nhiều ngôn ngữ
khác, làm nơi lưu trữ những thông tin trên các trang web viết bằng NodeJs, PHP
hay Perl,...
2.2. Ngôn ngữ thiết kế ứng dụng
2.2.1. Ngơn ngữ chính lập trình ứng dụng java.
Java là một trong những ngơn ngữ lập trình hướng đối tượng. Nó được sử dụng
trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị di động. Java
được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem năm 1991.
Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia dụng, và
có tên là Oak. Java được phát hành năm 1994, đến năm 2010 được Oracle mua lại từ Sun
MicroSystem. Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi”
(Write Once, Run Anywhere – WORA). Chương trình phần mềm viết bằng Java có thể
chạy trên mọi nền tảng (platform) khác nhau thông qua một mơi trường thực thi với điều
kiện có mơi trường thực thi thích hợp hỗ trợ nền tảng đó.
Đặc điểm
Tương tự C++, hướng đối tượng hồn tồn. Trong q trình tạo ra một ngơn ngữ mới
phục vụ cho mục đích chạy được trên nhiều nền tảng, các kỹ sư của Sun MicroSystem
muốn tạo ra một ngôn ngữ dễ học và quen thuộc với đa số người lập trình. Vì vậy họ đã
sử dụng lại các cú pháp của C và C++. Ngơn ngữ lập trình Java thuộc loại ngơn ngữ
thơng dịch. Chính xác hơn, Java là loại ngơn ngữ vừa biên dịch vừa thông dịch. Cơ chế
thu gom rác tự động: Khi tạo ra các đối tượng trong Java, JRE sẽ tự động cấp phát không
gian bộ nhớ cho các đối tượng ở trên heap.
Đa luồng: Java hỗ trợ lập trình đa tiến trình (multithread) để thực thi các cơng việc đồng
thời. Đồng thời cũng cung cấp giải pháp đồng bộ giữa các tiến trình (giải pháp sử dụng
priority…).
Hình 2 - 4: Ngơn ngữ lập trình Java
2.2.2. Ngôn ngữ thiết kế hệ thống UML
UML (Unified Modeling Language) là ngơn ngữ dành cho việc đặc tả, hình dung, xây
dựng và làm tài liệu của các hệ thống phần mềm.
UML tạo cơ hội để viết thiết kế hệ thống, bao gồm những khái niệm như tiến trình
nghiệp vụ và các chức năng của hệ thống.Cách xây dựng các mơ hình trong UML phù
hợp mơ tả các hệ thống thông tin cả về cấu trúc cũng như hoạt động. Cách tiếp cận theo
mơ hình của UML giúp ích rất nhiều cho những người thiết kế và thực hiện hệ thống
thơng tin cũng như những người sử dụng nó; tạo nên một cái nhìn bao quát và đầy đủ về
hệ thống thơng tin dự định xây dựng. Cách nhìn bao quát này giúp nắm bắt trọn vẹn các
yêu cầu của người dùng; phục vụ từ giai đoạn phân tích đến việc thiết kế, thẩm định và
kiểm tra sản phẩm ứng dụng cơng nghệ thơng tin.
Hình 2 - 6: Ngơn ngữ thiết kế hệ thống UML
UML sử dụng một hệ thống ký hiệu thống nhất biểu diễn các Phần tử mô hình (model
elements). Tập hợp các phần tử mơ hình tạo thành các Sơ đồ UML (UML diagrams). Có
các loại sơ đồ UML chủ yếu sau:
- Sơ đồ lớp (Class Diagram)
- Sơ đồ đối tượng (Object Diagram)
- Sơ đồ tình huống sử dụng (Use Cases Diagram)
- Sơ đồ trình tự (Sequence Diagram)
- Sơ đồ cộng tác (Collaboration Diagram hay là Composite Structure Diagram)
- Sơ đồ trạng thái (State Machine Diagram)
- Sơ đồ thành phần (Component Diagram)
- Sơ đồ hoạt động (Activity Diagram)
- Sơ đồ triển khai (Deployment Diagram)
- Sơ đồ gói (Package Diagram)
- Sơ đồ liên lạc (Communication Diagram)
- Sơ đồ tương tác (Interaction Overview Diagram - UML 2.0)
- Sơ đồ phối hợp thời gian (Timing Diagram - UML 2.0)
2.3. Công nghệ xây dựng ứng dụng
2.3.1. Khái niệm về mơ hình Client – Server
- Client Server là gì?
Client server là mơ hình mạng máy tính gồm có 2 thành phần chính đó là máy khách
(client) và máy chủ (server). Server chính là nơi giúp lưu trữ tài nguyên cũng như cài đặt
các chương trình dịch vụ theo đúng như yêu cầu của client. Ngược lại, Client bao gồm
máy tính cũng như các loại thiết bị điện tử nói chung sẽ tiến hành gửi yêu cầu đến server.
Mơ hình mạng Client Server sẽ cho phép mạng tập trung các ứng dụng có cùng chức
năng tại một hoặc nhiều dịch vụ file chuyên dụng. Chúng sẽ trở thành trung tâm của hệ
thống. Hệ điều hành của mơ hình Client server sẽ cho phép người dùng chia sẻ đồng thời
cùng một loại tài nguyên mà không giới hạn vị trí địa lý.
Ngun tắc hoạt động của mơ hình Client Server
Client
Client chính là khách hàng sử dụng dịch vụ. Nó có thể là một tổ chức hay cá nhân cụ thể
nào đó. Và khi khái niệm này được sử dụng trong lĩnh vực kỹ thuật số thì cũng mang ý
nghĩa tương tự như vậy. Trong Client Server thì Client chính là một máy tính (Host).
Chúng có khả năng nhận thơng tin từ nhà cung cấp và sử dụng dịch vụ cụ thể (Server).
Server
Server là từ dùng để nói về một máy chủ hoặc một phương tiện được sử dụng để phục vụ
các dịch vụ nào đó. Khi khái niệm này được sử dụng trong lĩnh vực cơng nghệ thì Server
là một máy tính từ xa. Chúng có chức năng là cung cấp các thông tin (dữ liệu) cho một
dịch vụ cụ thể nào đó hoặc quyền truy cập đối với dịch vụ.
Ưu điểm
Tập trung
Ưu điểm đầu tiên của mơ hình Client Server kiểu mạng khách chủ đó chính là khả năng
kiểm sốt tập trung (Centralization) đã được tích hợp sẵn. Theo như mơ hình này thì tất
cả mọi thơng tin cần thiết đều sẽ được đặt ở một vị trí duy nhất. Đây là một ưu điểm vơ
cùng hữu ích được những người quản trị viên mạng u thích bởi vì họ có thể tồn quyền
quản lý cũng như điều hành mọi việc.
Tính năng này giúp cho mọi sự cố trong mạng đều sẽ được giải quyết ở cùng một nơi
thống nhất. Đồng thời, việc cập nhật cơ sở tài nguyên, dữ liệu cũng sẽ dễ dàng hơn rất
nhiều.
Bảo mật
Trong mạng Client Server, tất cả các dữ liệu đều sẽ được bảo vệ một cách tối đa nhờ vào
hệ thống kiến trúc tập trung của mạng. Thơng qua đó, nó sẽ giúp người dùng kiểm sốt
truy cập để chỉ có những ai được cấp quyền truy cập thì mới được thực hiện các thao tác
cần thiết.
Muốn làm như vậy, chúng ta cần phải áp đặt thông tin đăng nhập cũng như Username
hay Password. Bên cạnh đó, nếu dữ liệu của chúng ta bị mất thì các file sẽ được khơi
phục một cách vô cùng dễ dàng chỉ từ một bản sao lưu duy nhất mà thơi.
Khả năng mở rộng
Mơ hình mạng kết nối Client Server có khả năng mở rộng vơ cùng tốt. Chỉ cần người
dùng cần sử dụng bất cứ lúc nào thì họ cũng có thể tăng được số lượng tài ngun của
mình. Ví dụ như số Client hoặc Server. Nhờ đó mà chúng ta có thể tăng kích thước của
Server một cách dễ dàng mà không bị gián đoạn nhiều.
Khả năng truy cập
Hồn tồn khơng hề có sự phân biệt giữa các vị trí hay nền tảng với nhau. Tất cả mọi
Client đều có khả năng đăng nhập được vào hệ thống mạng máy tính. Điều này sẽ giúp
cho tất cả các nhân viên đều có thể truy cập thông tin của công ty một cách dễ dàng mà
không cần phải dùng một terminal mode hoặc một bộ xử lý nào khác.
Nhược điểm
Tắc nghẽn lưu lượng
Nói về nhược điểm lớn nhất của mơ hình mạng Client Server đó chính là tắc nghẽn lưu
lượng. Trong trường hợp có quá nhiều Client tạo request từ cùng một Server thì nó có thể
sẽ làm cho kết nối chậm hơn. Trong trường hợp xấu nhất cịn có thể xuất hiện hiện tượng
crash. Khi một server bị quá tải thì sẽ tạo ra nhiều vấn đề khi truy cập thơng tin.
Chi phí
Chi phí được sử dụng để thiết lập và bảo trì Server trong Client Server thường sẽ khá cao.
Lý do là vì các hệ thống mạng có sức mạnh rất lớn cũng đồng nghĩa với việc giá để chi
cho việc này là rất đắt. Chính vì vậy, khơng phải ai cũng có khả năng chỉ trả và sử dụng.
Bảo trì
Khi các Server thực hiện triển khai để làm việc thì nó cũng sẽ hoạt động một cách không
ngừng nghỉ. Điều này đồng nghĩa với việc chúng ta cần phải quan tâm đến việc bảo trì hệ
thống đúng mức. Khi xảy ra bất cứ vấn đề gì cũng cần phải giải quyết ngay lập tức. Vậy
nên, cần phải có một nhà quản lý mạng chuyên biệt để tiến hành duy trì hoạt động của
Server khi chúng được đưa vào và sử dụng.
2.3.2. Khái niệm về Socket và Đa Luồng
- Socket là một điểm cuối(end-point) của liên kết truyền thơng hai chiều(two-way
communication) giữa hai chương trình chạy trên mạng. Các lớp Socket được sử dụng để
biểu diễn kết nối giữa client và server. Gói java.net cung cấp hai lớp - Socket và
ServerSocket - thể hiện kết nối giữa client và server.
Các Socket cung cấp kỹ thuật giao tiếp giữa hai máy tính sử dụng TCP. Một chương trình
Client tạo một socket trên đầu cuối của giao tiếp và cố gắng để kết nối socket đó tới một
Server.
Khi kết nối được tạo, Server tạo một đối tượng Socket trên đầu cuối của giao tiếp. Client
và Server bây giờ có thể giao tiếp bằng việc đọc và ghi từ Socket.
Lớp java.net.Socket biểu diễn một Socket, và lớp java.net.ServerSocket cung cấp một kỹ
thuật cho chương trình Server để nghe thơng tin từ các Client và thành lập các kết nối với
chúng.
- Thread (luồng) về cơ bản là một tiến trình con (sub-process). Một đơn vị xử lý nhỏ nhất
của máy tính có thể thực hiện một cơng việc riêng biệt. Trong Java, các luồng được quản
lý bởi máy ảo Java (JVM).
- Multi-thread (đa luồng) là một tiến trình thực hiện nhiều luồng đồng thời. Một ứng
dụng Java ngồi luồng chính có thể có các luồng khác thực thi đồng thời làm ứng dụng
chạy nhanh và hiệu quả hơn.
Ưu điểm của đa luồng
• Nó khơng chặn người sử dụng vì các luồng là độc lập và bạn có thể thực hiện
nhiều cơng việc cùng một lúc.
• Mỗi luồng có thể dùng chung và chia sẻ nguồn tài nguyên trong quá trình chạy,
nhưng có thể thực hiện một cách độc lập.
• Luồng là độc lập vì vậy nó khơng ảnh hưởng đến luồng khác nếu ngoại lệ xảy ra
trong một luồng duy nhất.
• Có thể thực hiện nhiều hoạt động với nhau để tiết kiệm thời gian. Ví dụ một ứng
dụng có thể được tách thành : luồng chính chạy giao diện người dùng và các luồng
phụ nhiệm gửi kết quả xử lý đến luồng chính.
Nhược điểm của đa luồng
• Càng nhiều luồng thì xử lý càng phức tạp.
• Xử lý vấn đề về tranh chấp bộ nhớ, đồng bộ dữ liệu khá phức tạp.
• Cần phát hiện tránh các luồng chết (dead lock), luồng chạy mà khơng làm gì trong
ứng dụng cả.
CHƯƠNG 3. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
3.1. Biểu đồ Usecase
3.1.1. Biểu đồ Usecase tổng quát
Hình 3 - 1: Biểu đồ Use-case tổng quát
3.1.2. Biểu đồ Usecase phân rã actor “Giáo Viên”
Hình 3 - 2: Biểu đồ Usecase phân rã actor “Giáo Viên”
3.1.3. Biểu đồ Usecase phân rã actor “Học Sinh”
Hình 3 - 3: Biểu đồ Usecase phân rã actor “Học Sinh”
3.1.4. Biểu đồ Usecase phân rã actor “Admin”
Hình 3 - 4: Biểu đồ Usecase phân rã actor “Admin”
3.1.5. Usecase quản lí danh sách học sinh
Hình 3 - 5: Usecase quản lý học sinh
3.1.6. Usecase quản lí điểm
Hình 3 - 6: Usecase quản lí điểm
3.1.7. Usecase quản lí mơn học
Hình 3 - 7: Usecase quản lí mơn học
3.1.8. Usecase quản lí lịch học
Hình 3 - 8: Usecase quản lí lịch học
3.1.9. Usecase quản lí và hiệu chỉnh tài khoản.
Hình 3 - 9: Usecase quản lí và hiệu chỉnh tài khoản.