B21DCCN722-Dương Minh Trí-Pha Phân Tích

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN

Môn Học: Nhập Môn Công Nghệ Phần Mềm


Nhóm 15
Đề Tài: Hệ Thống Quản Lí Lên Lịch Và Kết Quả Giải Cờ Vua
Vô Địch Thế Giới
Tên Modul: Xem bảng xếp hạng
Thành viên trong nhóm:
Nguyễn Đức Hùng – B21DCAT093
Trần Thị Thu Phương – B21DCAT151
Dương Minh Trí – B21DCCN722
Mầu Nhân Tú – B21 DCCN746
Giảng viên hướng dẫn: Nguyễn Mạnh Hùng

Hà Nội, 2/2024
Mục Lục
I. Glossary List............................................................ Error! Bookmark not defined.
II. Business Model .................................................................................................... 5
1. Mục đích và phạm vi .................................................................................................... 5
2. Ai làm được gì cho hệ thống ........................................................................................ 5
3. Các chức năng hoạt động như thế nào .......................................................................... 6
4. Hệ thống xử lý các thông tin gì về đối tượng? ........................................................... 12
5. Mối quan hệ giữa các thông tin cần sử lí .................................................................... 13
III. Use case……………………………………………………………………….14
1. Use case tổng quát…………………………………………………………………..14
2. Use case chi tiết cho modul “Xem bảng xếp hạng”………………………………...15

IV. Phân tích………………………………………………………………………17


1. Scenario……………………………………………………………………………..17
2. Trích lớp thực thể và vẽ biểu đồ…………………………………………………….18
3. Trích lớp biên và xây dựng lớp biểu đồ của modul…………………………………20
4. Kịch bản V.2 và biểu đồ tuần tự của modul………………………………………...22
I. Glossary list
STT Tên khái niệm Tên tiếng anh Giải nghĩa
Các khái niệm liên quan đến người
Người tham gia giải đấu với vai trò thi
1 Cờ thủ Player
đấu
Cờ thủ đứng đầu bảng xếp hạng sau 11
2 Nhà vô địch Champion
vòng đấu
Organizing
3 Ban tổ chức Người thuộc ban tổ chức giải đấu
Committee
Nhân viên quản trị Người quản lí, điều hành các hoạt động
4 Admin
hệ thống xung quanh hệ thống
5 Đối thủ Opponent Người mà cờ thủ sẽ đối đầu
Nhân viên quản lí cờ Người quản lý các thông tin cá nhân của
6 Player Manger
thủ cờ thủ
Người quản lý các vấn đề liên quan đến
Nhân viên quản lí Tournament
7 giải đấu bao gồm: xếp lịch thi đấu, cập
giải đấu management
nhật bảng xếp hạng
Người cung cấp các thông tin cần thiết
8 Nhân viên lễ tân Receptionist
về giải đấu, cờ thủ
Các khái niệm liên quan đến vật
9 Mã giải đấu Tournament code Mã của giải đấu
Địa điểm của giải
10 Location Địa điểm tổ chức giải đấu
đấu
Năm tổ chức giải
11 Date Năm giải đấu được tổ chức
đấu
12 Lần tổ chức giải đấu Occurrences Lần tổ chức thứ bao nhiêu của giải đấu
13 Tổng điểm Total score Tổng điểm cờ thủ kiếm được
Điểm được sử dụng để do lường khả
14 Hệ số Elo Elo rating
năng chơi cờ của các cờ thủ
Bảng xếp hạng các cờ thủ dựa theo tổng
15 Bảng xếp hạng Leaderboard
điểm
16 Mức tăng giảm Elo Elo rating change Mức tăng giảm elo trước và sau giải đấu
17 Vòng đấu Round
18 ID ID Id của cờ thủ
19 Quốc tịch Country Quốc tịch của cờ thủ
20 Năm sinh Birthdate Năm sinh của cờ thủ
21 Danh sách cờ thủ Player list Danh sách các cờ thủ tham gia thi đấu
22 Ghi chú Note Ghi chú cho cờ thủ
23 Họ và tên Name Tên của cờ thủ
24 Số điện thoại Phone number Số điện thoại của cờ thủ
Danh sách các bàn
25 Match schedule Danh sách các trận cờ thủ đã đấu
đấu
Các khái niệm liên quan đến hoạt động
26 Sắp xếp lịch thi đấu Arrange Match Đặt lịch các trận đấu của giải đấu theo
Schedule thời gian và ngày thi đấu.
27 Xem lịch thi đấu View Tournament Đây là tính năng cho phép người dùng
Schedule xem và kiểm tra thông tin về các trận
đấu đã được lên lịch, bao gồm thông tin
về vòng đấu, thời gian, địa điểm, và cặp
đấu cụ thể giữa các cờ thủ.
28 Tìm thông tin cờ thủ Search Player Ban tổ chức tìm thông tin của cờ thủ
Information bằng id
29 Sửa thông tin của cờ Edit player Quản lí thực hiện sửa thông tin của cờ
thủ infomation thủ
30 Hiện danh sách các Display player list Hiện danh sách các cờ thủ tham gia giải
cờ thủ đấu
31 Xếp hạng cờ thủ Ranking player Sắp xếp các cờ thủ theo điểm số hoặc
elo để xác định thứ hạng của họ trong
giải đấu.
32 Xem kết quả View Results Hiển thị kết quả của các trận đấu đã
diễn ra trong giải đấu.
33 Xếp cặp thi đấu Pairing Matches Thực hiện quy trình xếp cặp giữa các
đối thủ trong một vòng đấu của giải đấu.
34 Lưu kết quả Save results Ghi lại và lưu trữ kết quả của các trận
đấu trong hệ thống.
35 Cập nhật kết quả Update match result Thực hiện việc nhập và lưu trữ kết quả
của các trận đấu trong hệ thống.
36 Quản lí thông tin cờ Manage information Theo dõi và quản lí thông tin cá nhân
thủ player của các cờ thủ, bao gồm tên, thông tin
liên lạc, và các thành tích trong cờ vua.
37 Xem bảng xếp hạng Check Rankings Post Hiển thị bảng xếp hạng của các cờ thủ
sau vòng đấu Round sau khi hoàn thành một vòng đấu cụ thể.
Các khái niệm liên quan đến luật
38 Công thức FIDE FIDE Formula Là cách tính điểm và xếp hạng cầu thủ
cờ vua dựa trên kết quả các trận đấu và
sức mạnh của đối thủ.
39 Thể thức Thụy Sĩ Swiss System Là phương pháp tổ chức giải đấu cờ vua
trong đó các cầu thủ được xếp vào các
nhóm dựa trên điểm số và thi đấu với
những đối thủ có điểm số tương tự.
40 Luật xếp cặp cờ vua Chess Pairing Luật xếp đối thủ cho cờ thủ
Regulations

II. Business Model


Mô tả hệ thống bằng ngôn ngữ tự nhiên
1. Mục đích và phạm vi
− Hệ thống là một ứng dụng được sử dụng trên máy bàn của ban tổ chức giải cờ vua thế
giới, cho phép quản lý thông tin các cờ thủ, lên lịch các vòng đấu, cung cấp thông tin
cho cờ thủ và quản lý kết quả trong giải đấu.

− Là ứng dụng chạy trong nội bộ của tổ chức, gồm nhiều máy tính của tổ chức, máy của
nhân viên dùng chung dữ liệu của tổ chức.

− Chỉ ban tổ chức và nhân viên quản trị hệ thống mới được sử dụng trực tiếp:
+ Nhân viên quản trị hệ thống
+ Nhân viên quản lí giải đấu
+ Nhân viên quản lí cờ thủ
+ Nhân viên lễ tân
− Hệ thống quản lý giải cờ vua thế giới không bao gồm:
+ Mô phỏng lại trận đấu

2. Ai làm được gì cho hệ thống


− Nhân viên quản lí giải đấu:
+ Xem các thông tin về giải đấu:
▪ Các cờ thủ:
o Thông tin cá nhân
o Các trận đấu của các cờ thủ
▪ Các vòng đấu
+ Thống kê:
▪ Xem bảng xếp hạng sau từng vòng đấu
▪ Thống kê thay đổi Elo của các cờ thủ sau mỗi vòng
+ Xếp cặp thi đấu cho các cờ thủ trong mỗi vòng
+ Cập nhập kết quả:
▪ Kết quả của từng trận đấu
▪ Hệ số Elo cho mỗi cờ thủ

− Nhân viên quản lí cờ thủ:

+ Quản lý thông tin của các cờ thủ: thêm, sửa, xóa, tìm kiếm.
− Nhân viên quản trị hệ thống:
+ Quản lý tài khoản người dùng: thêm, sửa, xóa, tìm kiếm.
− Ban tổ chức:
+ Quản lí thông tin về các nhà tài trợ, phần thưởng và các thức trao giải thưởng.
− Nhân viên lễ tân:
+ Xem các thông tin liên quan đến cờ thủ: bảng xếp hạng, thông tin cá nhân, các
trận đấu của cờ thủ

3. Các chức năng hoạt động như thế nào


3.1. Xem các thông tin cá nhân của cờ thủ
− Nhân viên quản lí cờ thủ đăng nhập (username, password)
→ Giao điện của nhân viên cờ thủ giải đấu có các lưạ chọn:
+ Xem thông tin về giải đấu
+ Thống kê
+ Xếp cặp thi đấu
+ Cập nhập kết quả

− Nhân viên quản lí cờ thủ chọn menu Xem các thông tin về giải đấu
→ Giao diện Xem các thông tin về giải đấu hiện ra bao gồm:
+ Các cờ thủ
+ Các vòng đấu

− Nhân viên quản lí cờ thủ chọn menu Các cờ thủ


→ Giao điện Các cờ thủ hiện ra bao gồm:
+ Thông tin cá nhân
+ Lịch thi đấu của cờ thủ

− Nhân viên quản lí cờ thủ chọn menu Thông tin cá nhân


→ Giao diện Thông tin cá nhân hiện ra bao gồm:
+ Nút tìm kiếm (ở đầu giao diện)
+ Danh sách thông tin cá nhân của tất cả các cờ thủ

− Nếu nhân viên quản lí giải đấu nhấn vào một cờ thủ bất kỳ
→ Hệ thống hiện ra Giao diện thông tin cá nhân của cờ thủ đó bao gồm:
+ Mã cờ thủ
+ Tên cở thủ
+ Năm sinh
+ Quốc tịch
+ Hệ số Elo
+ Ghi chú

− Nếu nhân viên quản lí giải đấu nhập thông tin cần tìm kiếm theo tên cờ thủ
+ Nếu tồn tại thì đưa ra danh sách các cờ thủ có liên quan và Nhân viên quản lý
giải đấu có thể chọn 1 cờ thủ bất kỳ để xem thông tin cá nhân của mỗi cờ thủ
đó.
+ Nếu không thì đưa ra thông báo “Cờ thủ này không tồn tại trong hệ thống”
+ Trong giao điện kết quả tìm kiếm này sẽ có nút là: Quay trở lại màn hình chính
và Tìm kiếm tiếp.
Nhân viên quản lý giải đấu chọn Quay lại màn hình chính → Hệ thống sẽ quay
về màn hình chính.
Nhân viên quản lý giải đấu chọn Tìm kiếm tiếp → Hệ thống sẽ quay về giao
diện Thông tin cá nhân.

3.2. Xem các thông tin về các trận đấu của cờ thủ
− Nhân viên quản lý giải đấu đăng nhập

− Nhân viên quản lý giải đấu chọn menu Xem các thông tin về giải đấu
→ Giao diện Xem các thông tin về giải đấu hiện ra bao gồm:
+ Các cờ thủ
+ Các vòng đấu

− Nhân viên quản lý giải đấu chọn menu Các cờ thủ


→ Giao điện Các cờ thủ hiện ra bao gồm:
+ Thông tin cá nhân
+ Các trận đấu của cờ thủ
− Nhân viên quản lý giải đấu chọn menu Các trận đấu của cờ thủ
→ Giao diện Các trận đấu của cờ thủ hiện ra bao gồm:
+ Nút tìm kiếm (ở đầu giao diện)
+ Danh sách các trận đấu của tất cả các cờ thủ

− Nếu Nhân viên quản lý giải đấu nhấn vào một trận đấu bất kỳ
→ Hệ thống hiện ra giao diện Danh sách các trận đấu của cờ thủ đó bao gồm:
+ STT
+ Mã cờ thủ
+ Tên cở thủ
+ Tên đối thủ
+ Kết quả
+ Thời gian
+ Địa điểm
+ Ghi chú

− Nếu Nhân viên quản lý giải đấu nhập thông tin cần tìm kiếm theo tên cờ thủ
+ Nếu tồn tại thì đưa ra danh sách các cờ thủ có liên quan và Nhân viên quản lý
giải đấu có thể chọn 1 cờ thủ bất cờ để xem thông tin về các trận đấu của cờ thủ
đó.
+ Nếu không thì đưa ra thông báo “Trận đấu này không tồn tại trong hệ thống”
+ Trong giao điện kết quả tìm kiếm này sẽ có nút là: Quay trở lại màn hình chính
và Tìm kiếm tiếp.
Nhân viên quản lý giải đấu chọn Quay lại màn hình chính → Hệ thống sẽ quay
về màn hình chính.
Nhân viên quản lý giải đấu chọn Tìm kiếm tiếp → Hệ thống sẽ quay về giao
diện Thông tin cá nhân.

3.3. Xem thông tin về các vòng đấu


− Nhân viên quản lý giải đấu đăng nhập

− Nhân viên quản lý giải đấu chọn menu Xem các thông tin về giải đấu
→ Giao diện Xem các thông tin về giải đấu hiện ra bao gồm:
+ Các cờ thủ
+ Các vòng đấu
− Nhân viên quản lý giải đấu chọn menu Các vòng đấu
→ Giao điện Các vòng đấu hiện ra bao gồm:
+ Vòng 1
+ Vòng 2
+ …..

− Nhân viên quản lý giải đấu chọn menu Vòng 1 (hoặc 1 vòng bất kỳ khác)
→ Giao diện Các trận đấu của vòng 1 hiện ra bao gồm:
+ Nút tìm kiếm (ở đầu giao diện)
+ Danh sách tất cả các trận đấu của vòng 1

− Nếu Nhân viên quản lý giải đấu nhấn vào một trận đấu bất kỳ
→ Hệ thống hiện ra giao diện Kết quả thi đấu của trận đấu đó
+ Nếu trận đấu đó chưa diễn ra thì hệ thống đưa thông báo “Trận đấu chưa diễn
ra”
+ Nếu trận đấu đã diễn ra thì hiện ra Giao điện kết quả trận đấu bao gồm:
▪ Tên cờ thủ
▪ Tên đối thủ
▪ Kết quả
▪ Thời gian
▪ Địa điểm
▪ Ghi chú

− Nếu Nhân viên quản lý giải đấu nhập thông tin cần tìm kiếm theo tên cờ thủ
+ Nếu tồn tại thì đưa ra danh sách các trận đấu có liên quan và Nhân viên quản lý
giải đấu có thể chọn 1 trận đấu bất kỳ để xem thông tin về các trận đấu đó
+ Nếu không thì đưa ra thông báo “Trận đấu này không tồn tại trong hệ thống”
+ Trong giao điện kết quả tìm kiếm này sẽ có nút là: Quay trở lại màn hình chính
và Tìm kiếm tiếp.
Nhân viên quản lý giải đấu chọn Quay lại màn hình chính → Hệ thống sẽ quay
về màn hình chính.
Nhân viên quản lý giải đấu chọn Tìm kiếm tiếp → Hệ thống sẽ quay về giao
diện Thông tin cá nhân.

3.4. Xem bảng xếp hạng sau từng vòng đấu

− Nhân viên quản lý giải đấu đăng nhập (username, password)

− Nhân viên quản lý giải đấu chọn menu thống kê → Chọn chức năng xem bảng xếp
hạng sau từng vòng đấu → Chọn vòng đấu từ danh sách sổ ra

− Kết quả hiện ra danh sách các cờ thủ với các thông tin: id, tên, năm sinh, quốc tịch,
tổng điểm, tổng điểm các đối thủ đã gặp, hệ số elo tức thời,

+ Bảng xếp hạng được sắp xếp theo tiêu chí tổng điểm (giảm dần), tổng điểm của
các đối thủ đã gặp (giảm dần), hệ số Elo (giảm dần)

− Nhân viên quản lý giải đấu click vào bất cờ 1 dòng cờ thủ nào → Hệ thống hiện lên
danh sách chi tiết các trận cờ thủ đã đấu, mỗi trận trên 1 dòng, bao gồm: id đối thủ, tên
đối thủ

3.5. Thống kê thay đổi elo của các cờ thủ sau từng vòng đấu
− Nhân viên quản lý giải đấu đăng nhập (username, password)

− Nhân viên quản lý giải đấu chọn menu Thống kê → Chọn chức năng xem thống kê
thay đổi elo → Chọn vòng đấu từ danh sách đã sổ ra

− Hệ thống hiện ra danh sách đã sắp xếp theo tiêu chí với các thông tin: id, tên, năm sinh,
quốc tịch, hệ số elo cũ, hệ số elo mới, hệ số elo đã tăng/giảm

+ Danh sách được sắp xếp theo mức tăng hệ số Elo, sau đó là hệ số Elo mới (giảm
dần)

− Nhân viên quản lý giải đấu click vào bất cờ 1 dòng cờ thủ nào → Hệ thống hiện lên
danh sách chi tiết các trận cờ thủ đã đấu, mỗi trận trên 1 dòng, bao gồm: id đối thủ,
tên đối thủ, mức tăng giảm elo

3.6. Xếp cặp thi đấu


− Nhân viên quản lý giải đấu đăng nhập (username, password)
→ Giao điện của Nhân viên quản lý giải đấu có các lưạ chọn:
+ Xem thông tin về giải đấu
+ Thống kê
+ Xếp cặp thi đấu
+ Cập nhập kết quả
− Nhân viên quản lý giải đấu chọn menu xếp cặp thi đấu
→ Giao diện Xếp cặp thi đấu hiện ra bao gồm:
+ Vòng 1
+ Vòng 2
+ Vòng 3
+ …
− Nhân viên quản lý giải đấu chọn vòng đấu cần xếp cặp trong danh sách sổ xuống →
hệ thống hiện bảng xếp hạng hiện tại + nút Xếp lịch.
− Nhân viên quản lý giải đấu click nút Xếp lịch → Hệ thống tự động xếp cặp cho các cờ
thủ theo luật và hiện danh sách các bàn đấu theo đúng thứ tự các cặp đấu
− Nhân viên quản lý giải đấu click Lưu → Hệ thống lưu lịch thi đấu của vòng mới vào
CSDL.
→ Hệ thống thông báo thành công và quay trở lại giao diện chính của Nhân viên quản
lý giải đấu.

3.7. Cập nhật kết quả trận đấu


− Nhân viên quản lý giải đấu đăng nhập (username, password)

− Nhân viên quản lý giải đấu chọn menu cập nhật kết quả → Trang cập nhật gồm danh
sách các vòng đấu sẽ hiện ra

− Nhân viên quản lý giải đấu chọn vòng đấu từ danh sách → Giao diện chọn cặp đấu sẽ
được hiện ra bao gồm: danh sách các cặp đấu và ô tìm kiếm

− Nhân viên quản lý giải đấu chọn cặp đấu muốn cập nhật:

+ Nhân viên quản lý giải đấu tìm kiếm cờ thủ thông qua tên tại ô tìm kiếm → Kết
quả là danh sách các cặp đấu có tên cờ thủ hợp lệ

− Giao diện cập nhật hiện lên với thông tin 2 cờ thủ, mỗi cờ thủ có 2 ô nhập tương ứng
với điểm và elo

− Nhân viên quản lý giải đấu nhập số điểm và elo của 2 cờ thủ → Nhấn nút cập nhật →
Một thông báo xác nhận cập nhật điểm số hiện ra

− Nếu điểm số cập nhật đúng Nhân viên quản lý giải đấu nhấn xác nhận, nếu nhập điểm
số sai thì nhấn nút quay lại

− Hệ thống thông báo cập nhật thành công sau đó quay trở lại giao diện chọn cặp cặp
đấu

3.8. Quản lý thông tin cờ thủ

− Nhân viên quản lý cờ thủ chọn menu quản lý thông tin cờ thủ → trang quản lý hiện ra

− Nhân viên quản lý cờ thủ chọn chức năng sửa thông tin cờ thủ → giao diện tìm tuyển
thủ theo tên hiện ra

− Nhân viên quản lý cờ thủ nhập tên tuyển thủ và click tìm kiếm → danh sách các tuyển
thủ có tên chứa từ khóa hiện ra

− Nhân viên quản lý cờ thủ chọn sửa một cờ thủ → giao diện sửa cờ thủ hiện ra với các
thông tin của cờ thủ đã chọn

− Nhân viên quản lý cờ thủ nhập một số thông tin thay đổi và click cập nhập → hệ thống
lưu thông tin vào CSDL và thông báo thành công.

3.9. Quản lý thông tin tài khoản người dùng


− Nhân viên quản trị hệ thống chọn menu Quản lý nhân viên quản trị hệ thống → trang
quản lý hiện ra.

− Nhân viên quản trị hệ thống chọn chức năng sửa thông tin người dùng→ giao diện tìm
người dùng theo tên hiện ra

− Nhân viên quản trị hệ thống nhập tên tuyển thủ và click tìm kiếm → danh sách người
dùng có tên chứa từ khóa hiện ra

− Nhân viên quản trị hệ thống chọn sửa một cờ thủ → giao diện sửa người dùng hiện ra
với các thông tin của người dùng đã chọn

− Nhân viên quản trị hệ thống nhập một số thông tin thay đổi và click cập nhập → hệ
thống lưu thông tin vào CSDL và thông báo thành công.

3.10. Xem các thông tin có liên quan đến cờ thủ

− Cờ thủ yêu cầu thông tin về lịch thi đấu, bảng xếp hạng hoặc thông tin cá nhân

− Lễ tân đăng nhập vào hệ thống (username, password) → Giao diện hệ thống hiện ra
danh sách các vòng đấu

− Lễ tân chọn vòng đấu theo yêu cầu của cờ thủ → Nhập tên của cờ thủ vào ô tìm kiếm
đã hiện ra → Hệ thống hiện lên danh sách các cờ thủ có tên hợp trùng với yêu cầu

− Lễ tân chọn tên cờ thủ → Giao diện hiện ra bao gồm: thông tin cá nhân, bảng xếp hạng,
các trận đấu của cờ thủ đó (đã diễn ra và sắp tới)

− Lễ tân chọn thông tin mà cờ thủ đó muốn biết → Hệ thống trả về kết quả cần tìm.

4. Hệ thống xử lý các thông tin gì về đối tượng?

− Giải đấu:
+ Mã giải đấu: Varchar(10)
+ Tên giải đấu: Varchar(255)
+ Năm tổ chức: Year
+ Địa điểm: Varchar(100)
+ Mô tả: Varchar (255)
− Cờ thủ:
+ Mã cờ thủ: Varchar (30)
+ Tên cở thủ: Varchar (30)
+ Năm sinh: Date
+ Quốc tịch: Varchar (30)
+ Hệ số Elo: int
+ Số trận đã tham gia
+ Tổng điểm các trận đấu đã tham gia
+ Tổng điểm của đối thủ đã gặp
+ Ghi chú: Varchar (255) null
− Trận đấu:
+ Mã trận đấu: Varchar (15)
+ Tên Kỳ thủ A: Varchar (30)
+ Tên Kỳ thủ B: Varchar (30)
+ Kết quả: Varchar (30)
+ Thời gian: Date
+ Địa điểm: Varchar (100)
+ Ghi chú: Varchar (255) null
− Vòng đấu:
+ Mã vòng đấu: Varchar (255)
+ Tên vòng đấu: Varchar (255)
+ Số trận đấu: int
+ Thời gian: Date
+ Ghi chú: Varchar (255) null
− Chi tiết thay đổi hệ số Elo:
+ Mã cờ thủ: Varchar (30)
+ Tên cờ thủ: Varchar (30)
+ Mã vòng đấu: Varchar (30)
+ Hệ số Elo tức thời: int
+ Hệ số Elo cũ: int
+ Hệ số Elo đã tăng/giảm: int (null)

5. Mối quan hệ giữa các thông tin cần sử lí


− Giải đấu – Vòng đấu:
+ Một giải đấu có nhiều vòng đấu
− Giải đấu – Cờ thủ:
+ Một giải đấu có nhiều cờ thủ
− Vòng đấu - Cờ thủ:
+ Một vòng đấu có nhiều cờ thủ tham gia
+ Một Cờ thủ tham gia nhiều vòng đấu
− Vòng đấu – Trận đấu:
+ Một vòng dấu có thể có nhiều trận đấu
− Cờ thủ - Chi tiết thay đổi hệ số Elo
+ Tại một thời điểm, một cờ thủ chỉ có một hệ số Elo
+ Mỗi một chi tiết thay đổi hệ sô Elo tương ứng với một cờ thủ
− Cờ thủ - Trận đấu:
+ Một trận đấu chỉ có thể diễn ra với 2 cở thủ
+ Một cờ thủ chỉ có thể tham gia nhiều trận đấu

III. Use case


1. Use case tổng quát

- Diễn giải
+ Các Actor:
• Có 1 actor trừu tượng là Ban tổ chức
• Gồm 4 người dùng: Nhân viên quản lý giải đấu, nhân viên quản lý cờ thủ, nhân
viên quản trị hệ thống, nhân viên lễ tân → Sẽ có 4 actor chính kế thừa từ actor
trừu tượng Ban tổ chức
• Có 1 actor ẩn là Cờ thủ
+ Các Use case chính của hệ thống gồm:
• Xem thông tin về các vòng đấu
• Xem thông tin về các trận đấu của cờ thủ
• Cập nhập kết quả trận đấu
• Xem các loại báo cáo thống kê
• Xếp cặp thi đấu
• Xem bảng xếp hạng sau từng vòng đấu
• Quản lý thông tin của cờ thủ
• Xem các thông tin có liên quan đến cờ thủ
• Quản lý thông tin người dùng

− Mô tả Use case:
+ Use case xem thông tin về vòng đấu cho phép nhân viên quản lý giải đấu xem
các thông tin về các vòng đấu trong giải đấu.
+ Use case xem thông tin về các trận đấu của cờ thủ cho phép nhân viên quản lý
giải đấu xem các thông tin về các trận đấu của cờ thủ.
+ Use case cập nhập kết quả trận đấu cho phép nhân viên quản lý giải đấu cập kết
quả của từng trận đấu, hệ số Elo cho mỗi cờ thủ.
+ Use case xem các loại báo cáo thống kê cho phép nhân viên quản lý giải đấu
xem các loại báo cáo thống kê bao gồm: thống kê thay đổi điểm Elo sau giải,
thống kê thay đổi Elo sau từng vòng.
+ Use case xếp cặp thi đấu cho phép nhân viên quản lý giải đấu xếp cặp thi đấu
cho các cờ thu sau mỗi vòng đấu.
+ Use case xem bảng xếp hạng sau từng vòng đấu cho phép nhân viên quản lý
trận đấu xem bảng xếp hạng các cờ thủ sau từng vòng đấu.
+ Use case quản lý thông tin cờ thủ cho phép nhân viên quản lý cờ thủ quản lý
thông tin của cờ thủ bao gồm các việc: thêm, sửa, xóa, tìm kiếm thông tin cờ
thủ.
+ Use case xem các thông tin có liên quan đến cờ thủ cho phép nhân viên lễ tân
xem các thông tin như: bảng xếp hạng của từng vòng đấu, thông tin cá nhân,
các trận đấu của cờ thủ (đã diễn ra và sắp diễn ra).
+ Use case quản lý thông tin người dùng cho phép nhân viên quản trị hệ thống
quản lý các thông tin của người dùng bao gồm các việc thêm, sửa, xóa, tìm kiếm
thông tin người dùng.
2. Use Case chi tiết cho modul “Xem bảng xếp hạng”
- Mô tả chi tiết
+ Nhân viên quản lí giải đấu chọn menu Thống kê
+ Nhân viên quản lí giải đấu chọn nút Xem bảng xếp hạng -> Giao diện bảng xếp
hạng chung hiện ra
+ Nhân viên quản lí giải đấu chọn chức năng Xem bảng xếp hạng theo từng vòng đấu
-> kết quả hiện ra danh sách các cờ thủ, mỗi người có đầy đủ thông tin: mã cờ thủ,
tên, năm sinh, quốc tịch, tổng điểm, tổng điểm đối thủ đã gặp, hệ số Elo tức thời
+ Nhân viên quản lí giải đấu chọn 1 cờ thủ để xem chi tiết -> Giao diện hiện dang
sách thông tin các đối thủ mà cờ thủ này đã từ thi đấu
- Mô tả các Use Case con
+ Use Case Xem bảng xếp hạng theo từ vòng đấu cho phép Nhân viên quản lí giải đấu
xem thay đổi thứ tự BXH theo từng vòng

+ Use Case Xem lịch sử thi đấu của cờ thủ cho phép Nhân viên quản lí giải đấu xem
lịch sử, kết quả thi đấu, đối thủ của cờ thủ này qua từng vòng
IV. Phân tích
1. Scenario
Scenario Xem bảng xếp hạng theo từng vòng đấu và chi tiết lịch sử thi đấu của cờ thủ
Actor Nhân viên quản lí giải đấu
Pre- Nhân viên quản lí giải đấu có tài khoản của nhân viên quản lí giải đấu
condition
Post- Nhân viên quản lí giải đấu đăng nhập được, xem được BXH và chi tiết lịch sử
condition thi đấu của kì thủ
Main Event 1. Nhân viên quản lí giải đấu đăng nhập (username: manager,
password=abc1234)
2. Giao diện hiện lên với các chức năng:
- Thống kê giải đấu
- Bảng xếp hạng
- Xếp cặp thi đấu
- Cập nhật kết quả
3. Nhân viên quản lí giải đấu A chọn chức năng Xem Bảng xếp hạng từ chính
của giao diện chính dành cho nhân viên quản lí giải đấu
4. Giao diện Bảng xếp hạng hiện lên với gồm:
- Bảng xếp hạng,
- Nút chức năng Xem bảng xếp hạng theo từ vòng đấu hiện ra
5. Nhân viên quản lí giải đấu chọn vào nút Xem bảng xếp hạng từng vòng đấu
6. Giao diện chọn vòng đấu hiện lên với một ô để nhập vòng đấu cần tìm->
Nhân viên điền số 4
7. Hệ thống hiện ra danh sách sách các cờ thủ với các thông tin kèm theo vào
được sắp xếp theo thứ tự giảm dần tổng điểm:
ID Tên Năm sinh Quốc tịch Tổng Hệ số
điểm Elo
P001 Dương Minh Trí 2003 Vietnam 1200 2400
P002 Nguyễn Văn Quý 2003 Vietnam 1190 2334
P003 Ronaldo 2001 Portugal 1150 2290
P004 Messi 2000 Argentina 1140 2300
8. Nhân viên quản trị giải đấu click vào tên = Nguyễn Văn Quý để xem chi tiết
về lịch sử đấu của cờ thủ qua các vòng
9. Hệ thống hiện ra giao diện là một bảng mô tả các thông tin chi tiết các trận
mà cờ thủ đã đấu
ID Tên đối thủ Vòng Thời gian thi đấu Mức tăng
giảm Elo
P012 Ivan Aika 1 15 phút +25
P008 Nguyễn Quang 2 23 phút -15
Toản
P004 Messi 3 18 phút -19
P006 Dương Trần Đức 4 17 phút +23
10. Sau khi xem xong thì nhân viên click lại vào ô Trang chủ để quay lại giao
diện chính dành cho nhân viên quản lí giải đấu
Exceptions 1. Hệ thống báo đăng nhập sao
1.1 Nhân viên click vào OK
1.2 Hệ thống quay về giao diện đăng nhập (Username, password)
1.3 Nhân viên sửa lại (Password=abc@123) và ấn Login
1.4 Hệ thông hiện giao diện chính của Nhân viên quản lí giải đấu như ở
bước 2
6. Hệ thống báo “Vòng đấu này hiện tại chưa diễn ra”
6.1 Nhân viên click vào OK
6.2 Nhân viên nhập lại số vòng đấu hợp lệ
6.3 Hệ thống hiện ra danh sách như ở bước 7

2. Trích lớp thực thể và vẽ biểu đồ


- Bước 1: Mô tả đoạn văn bằng một đoạn văn
Hệ thống là một ứng dụng được sử dụng trên máy tính để bàn tại một giải thi đấu
cờ vua thế giới cho phép quản lí thông tin về các cờ thủ, tổng điểm, hệ số Elo tức
thời, các trận đấu, phần thưởng, nhà tài trợ, … Sau khi đăng nhập thành công,
nhân viên quản lí giải đấu có thể xem các loại báo cáo thống kê chung của giải
đấu, bảng xếp hạng hoặc các chức năng như xếp cặp thi đấu, cập nhật kết quả.
Nhân viên quản lí giải đấu chọn chức năng Xem bảng xếp hạng ở thanh chức
năng để xem chi tiết bảng xếp hạng hiện thời và bảng xếp hạng qua từng vòng
đấu. Sau khi giao diện bảng xếp hạng hiện thời hiện ra kèm với ô chức năng xem
bảng xếp hạng theo từng vòng đấu, nhân viên quản lí giải đấu nhập vào số vòng
đấu cần xem và ấn nút tìm. Giao diện hiện ra một danh sách các cờ thủ theo thứ
tự giảm dần, mỗi cờ thủ gồm các thông tin: mã cờ thủ, tên, năm sinh, quốc tịch,
tổng điểm, hệ số Elo hiện thời. Nhân viên quản lí giải đấu chọn một cờ thủ bất kì
để xem chi tiết lịch sử đấu của cờ thủ. Giao diện hiện ra gồm một danh sách các
đối thủ đã gặp tại các vòng gồm các thông tin: mã cờ thủ, Tên, vòng đấu, thời
gian thi đấu, mức tăng giảm Elo
- Bước 2: Trích các danh từ trong đoạn văn
+ Danh từ liên quan đến người: Cờ thủ, nhà tài trợ, nhân viên quản lí giải đấu,
đối thủ
+ Danh từ liên quan đến vật: Hệ thống, ứng dụng, máy tính, hệ số Elo, trận đấu,
phần thưởng, bảng xếp hạng theo vòng, giao diện, vòng đấu, mã cờ thủ, tên, năm
sinh, quốc tịch, tổng điểm, hệ số Elo hiện thời, lịch sử đấu, thời gian thi đấu, mức
tăng giảm Elo
+ Các danh từ chỉ thông tin: danh sách, báo cáo thống kê
- Bước 3: Đánh giá các danh từ
+ Các danh từ bị loại: nhà tài trợ, hệ thống, ứng dụng, máy tính, phần thưởng,
giao diện, danh sách, báo cáo thống kê, lịch thi đấu
+ Các danh từ làm thuộc tính: tổng điểm, hệ số Elo tức thời, mã cờ thủ, tên, năm
sinh, quốc tịch, thời gian thi đấu, mức tăng giảm Elo, vòng đấu
+ Các danh từ làm thực thể:
• Cờ thủ -> lớp Player: mã cờ thủ, tên, năm sinh, quốc tịch, tổng điểm, hệ số Elo
tức thời, ghi chú
• Nhân viên quản lí giải đấu -> lớp User: username, password, fullname, role
• Vòng đấu -> lớp Round: mã vòng đấu, tên vòng đấu
• Bảng xếp hạng theo vòng: STT, mã cờ thủ, tên, năm sinh, quốc tịch, tổng điểm,
hệ số Elo tức thời
• Lịch sử đấu: mã cờ thủ, tên, mã vòng đấu, thời gian thi đấu, mức tăng giảm Elo
- Bước 4: Xét quan hệ giữa các thực thể
• Một cờ thủ có một lịch sử đấu -> quan hệ giữa cờ thủ và lịch sử đấu là một-một
(1-1)
• Một nhân viên quản lí giải đấu quản lí nhiều cờ thủ -> quan hệ giữa nhân viên
quản lí giải đấu và cờ thủ là một-nhiều (1-n)
• Một nhân viên quản lí giải đấu quản lí nhiều vòng đấu -> quan hệ giữa nhân
viên quản lí giải đấu và vòng đấu là một-nhiều (1-n)
• Một cờ thủ tham gia nhiều vòng đấu, một vòng đấu thì có nhiều cờ thủ thi đấu
-> Quan hệ giữa cờ thủ và vòng đấu là nhiều-nhiều (n-n) -> đề xuất lớp Trận
đấu: mã trận đấu, thời gian thi đấu
• Một bảng xếp hạng theo vòng có nhiều cờ thủ mà một cờ thủ tham gia nhiều
vòng -> quan hệ giữa cờ thủ và bảng xếp hạng theo vòng là nhiều-nhiều (n-n) -
> đề xuất một lớp Thứ hạng quan các vòng đấu: mã vòng đấu, thứ hạng
• Một vòng đấu thì có một bảng xếp hạng theo vòng đấu đó và mỗi bảng xếp
hạng theo vòng thì có một vòng tương ứng -> quan hệ một-một (1-1)
- Bước 5: Bổ sung quan hệ giữa cá lớp
• Lớp bảng xếp hạng theo từng vòng đấu là lớp thành phần chặt của vòng đấu
• Lớp lịch sử đấu là thành phần chặt của lớp cờ thủ
• Lớp cờ thủ và lớp vòng đấu liên kết với nhau tạo ra lớp Trận đấu
• Lớp bảng xếp hạng theo vòng và lớp cờ thủ liên kết với nhau tạo ra lớp Thứ
hạng qua các vòng
- Biểu đồ lớp thực thể của modul

3. Trích lớp biên và xây dựng biểu đồ lớp của modul


- Phân tích modul và xác định thuộc tính
+ Nhân viên quản lí giải đấu truy cập hệ thống, giao diện đăng nhập sẽ hiện lên ->
đề xuất thành một lớp LoginView, cần phải có:
• Ô nhập username -> thuộc tính input – inUserName
• Ô nhập password -> thuộc tính input – inPassword
• Nút Login -> thuộc tính submit – subLogin
• Nút quên mật khẩu -> thuộc tính điều khiển chức năng – subForgotPass
+ Sau khi đăng nhập thành công, giao diện chính của hệ thống hiện lên -> đề xuất
thành một lớp MainView, cần phải có:
• Nút Thống kê giải đấu -> thuộc tính điều khiển chức năng –
subStatisticsOfTournament
• Nút Bảng xếp hạng -> thuộc tính điều khiển chức năng – subRanks
• Nút Xếp cặp thi đấu -> thuộc tính điều khiển chức năng – subPairs
• Nút Cập nhật kết quả -> thuộc tính điều khiển chức năng –
subUpdateResults
+ Chọn nút Bảng xếp hạng, giao diện bảng xếp hạng hiện lên -> đề xuất thành một
lớp RankView, cần phải có:

• Danh sách các kì thủ theo thứ hạng hiện tại -> thuộc tính output –
outRankBoard
• Tên vòng đấu -> thuộc tính input – inRound
• Nút tìm -> thuộc tính submit – subSearch
• Nút quay lại -> thuộc tính điều khiển chức năng – subBack
+ Nhập vào tên một vòng đấu và ấn nút tìm, giao diện Bảng xếp hạng theo vòng
đấu đã tìm hiện ra -> đề xuất lớp RankOfRoundView gồm có:

• Danh sách các kì thủ theo thứ tự điểm giảm dần -> thuộc tính output –
outCurentRankBoard
+ Chọn một kì thủ từ danh sách để xem lịch sử thi đấu, giao diện lịch sử đấu của kì
thủ đó hiện ra -> đề xuất lớp MatchHistoryView

• Danh sách các trận đấu của cờ thủ này trước khi vòng đấu diễn ra -> thuộc
tính output – outMatchHistory
• Nút quay lại -> thuộc tính điều khiển chức năng – subBack
- Xác định phần xử lí ngầm
+ Để kiểm tra đăng nhập thành công, cần phải xử lí:
• Tên phương thức: isLogin()
• Input: username, password
• Output: boolean
• Lớp chủ thể: User
+ Để kiểm tra xem đã nhập tên vòng đấu hợp lệ, cần xử lý:

• Tên phương thức: validRound()


• Input: tên vòng đấu
• Output: boolean
• Lớp chủ thể: Vòng đấu
+ Để xem được bảng xếp hạng theo vòng, cần xử lý:

• Tên phương thức: getBoard()


• Input: Tên vòng đấu
• Output: danh sách
• Lớp chủ thể: Bảng xếp hạng theo vòng
+ Để xem được lịch sử đấu của cờ thủ:

• Tên phương thức: getMatchHistory()


• Input: tên kì thủ
• Output: outMatchHistory
• Lớp chủ thể: Player
- Biểu đồ lớp modul

4. Kịch bản V.2 và biểu đồ tuần tự của modul


- Scenario V.2 của modul như sau
1. Nhân viên quản lí giải đấu nhập username, password và click vào nút đăng
nhập.
2. Lớp LoginView gọi lớp User để xử lí.
3. Lớp User thông báo đăng nhập thành công bằng cách thực hiện hàm isLogin().
4. Lớp User trả kết quả về lớp LoginView.
5. Sau khi đăng nhập thành công, lớp LoginView gọi lớp MainView.
6. Lớp MainView hiển thị giao diện màn hình chính cho nhân viên quản lí giải đấu
7. Nhân viên quản lí giải đấu chọn chức năng Bảng xếp hạng.
8. Lớp MainView gọi lớp RankView.
9. Lớp RankView hiển thị cho nhân viên quản lí giải đấu bảng xếp hạng hiện tại và
chức năng tìm kiếm bảng xếp hạng theo vòng đấu.
10. Nhân viên quản lí giải đấu nhập vào tên vòng đấu cần tìm và ấn nút Tìm kiếm.
11. Lớp RankView gọi lớp Vòng đấu kiểm tra tên vòng đấu
12. Lớp Vòng đấu gọi phương thức ValidRound().
13. Lớp Vòng đấu trả kết quả về lớp RankView.
14. Lớp RankView gọi lớp RankOfRoundView.
15. Lớp RankOfRoundView gọi lớp Bảng xếp hạng theo vòng yêu cầu lấy dữ liệu.
16. Lớp Bảng xếp hạng theo vòng gọi phương thức getBoard().
17. Lớp Bảng xếp hạng theo vòng trả kết quả về lớp RankOfRoundView.
18. Lớp RankOfRoundView hiển thị cho nhân viên quản lí Bảng xếp hạng vòng đấu
cần tìm.
19. Nhân viện quản lí giải đấu chọn một cờ thủ bất kì.
20. Lớp RankOfRoundView gọi lớp MatchHistoryView.
21. Lớp MatchHistoryView gọi lớp Lịch sử đấu yêu cầu dữ liệu.
22. Lớp Lịch sử đấu lấy dữ liệu thông qua phương thức GetMatchHitory().
23. Lớp lịch sử đấu trả kể quả cho lớp MatchHistoryView.
24. Lớp MatchHistoryView hiển thị cho nhân Viên quản lí lịch sử đấu của kì thủ đó.
- Biểu đồ tuần tự của Scenario V.2

You might also like