1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài tập lớn Đề tài 9 hệ thống quản lý lên lịch và kết quả giải Đấu cờ vua vô Địch thế giới

23 4 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hệ Thống Quản Lý Lên Lịch Và Kết Quả Giải Đấu Cờ Vua Vô Địch Thế Giới
Tác giả Ngô Đăng Hán, Vũ Quốc Huy, Trần Đức Lộc, Lưu Phương Thảo
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Nhập Môn Công Nghệ Phần Mềm
Thể loại Bài Tập Lớn
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 23
Dung lượng 1,17 MB

Nội dung

Biểu đồ usecase chi tiết + mô tả các usecase của moduleTrọng tài đăng nhập vào hệ thống -> Giao diện chính của trọng tài hiện ra -> Trọng tàichọn chức năng cập nhật kết quả trận đấu - >

Trang 1

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

KHOA CÔNG NGHỆ THÔNG TIN 1

-

-BÀI TẬP LỚN

Đề tài 9: Hệ thống quản lý lên lịch

và kết quả giải đấu cờ vua vô địch thế giới

Môn học : Nhập môn công nghệ phần mềm

Nhóm học phần : N07

Số thứ tự nhóm : 15 Yêu cầu : Báo Cáo Tổng Hợp Module : Cập Nhật kết quả Sinh viên thực hiện:

Ngô Đăng Hán MSV: B21DCCN324

Vũ Quốc Huy MSV: B21DCCN444 Trần Đức Lộc MSV: B21DCCN492

Lưu Phương Thảo MSV: B21DCCN684

Hà Nội – 2024

Trang 2

1 Biểu đồ usecase chi tiết + mô tả các usecase của module

Trọng tài đăng nhập vào hệ thống -> Giao diện chính của trọng tài hiện ra -> Trọng tàichọn chức năng cập nhật kết quả trận đấu - > Giao diện cập nhật kết quả trận đấu hiện ra(danh sách các vòng đấu, mỗi vòng đấu viết trên một dòng) -> Trọng tài chọn vòng đấuđang được diễn ra -> Giao diện hiện ra danh sách các trận đấu của vòng đấu đó (mỗidòng là thông tin một cặp đấu) -> Trọng tài chọn cặp đấu cần cập nhật kết quả từ danhsách sổ ra -> Giao diện thông tin chi tiết của 2 cờ thủ hiện ra -> Trọng tài nhập điểm vàđiểm Elo cho 2 cờ thủ ( Các thông tin khác không có quyền sửa) rồi bấm nút lưu -> Hệthống thông báo cập nhật kết quả thành thành công, quay về giao diện trang chủ củatrọng tài

=> Để cập nhật kết quả, trọng tài phải: đăng nhập, chọn vòng đấu từ danh sách sổ ra ,chọn cặp đấu cần cập nhật kết quả ở vòng đấu đó

Use Case chi tiết của module cập nhật kết quả trận đấu:

Mô tả Use Case :

- Đăng nhập : use case này cho phép trọng tài đăng nhập vào tài khoản bằng

username và password

- Chọn vòng đấu: use case cho phép trọng tài chọn vòng đấu từ danh sách sổ ra

- Chọn cặp đấu giữa 2 cờ thủ: use case cho phép trọng tài chọn cặp đấu cần cập nhậpkết quả

Trang 3

2 Kịch bản chuẩn

Pre-condition Trọng tài có tài khoản

Post-condition Cập nhật kết quả

Main Events Trọng tài Lưu Phương Thảo đăng nhập vào hệ thống với

username = “congchua”, password = “abc@123” để cập nhậtkết quả cho 2 cờ thủ có id là F1 và F5 ở vòng đấu 2

Hệ thống hiện giao diện chính của trọng tài có 2 lựa chọn

- Cập nhật kết quả

- Thống kê thay đổi eloTrọng tài chọn chức năng Cập nhật kết quả

Hệ thống hiện giao diện các vòng đấu, có 11 vòng đấu:

Trọng tài chọn hàng thứ 2 tương đương với vòng đấu 2

Hệ thống hiện giao diện danh sách các cặp đấu của vòng đấu 2

và ô tìm kiếm + nút tìm kiếm (Có thể sử dụng hoặc không):

Trọng tài chọn dòng dòng đầu tương ứng với 2 cờ thủ có ID làF1 và F5

Hệ thống hiện giao diện thông tin chi tiết của 2 cờ thủ F1 và F5

- Cờ thủ số 1:

- ID: F1 (không sửa được)

- Tên: Nguyễn Văn A (không sửa được)

Trang 4

- Tên: Nguyễn Văn B (không sửa được)

- Điểm: 0

- Elo: 567

- Nút save, reset, cancelTrọng tài sửa điểm của cờ thủ F1 = 0, Elo = 345, sửa điểm của

cờ thủ F2 = 1, Elo = 789 rồi click nút “save”

Hệ thống thông báo thành côngTrọng tài click “OK”

Hệ thống quay về giao diện chính của Trọng TàiException 2 Hệ thống báo đăng nhập sai

2.1 Trọng tài click vào “OK” của thông báo2.2 Hệ thống quay lại giao diện đăng nhập

7.3 Trọng tài chọn dòng đầu tiên ứng với 2 cờ thủ có ID là F1 và F5

7 Không tìm thấy tên cờ thủ trong vòng đấu

Trang 5

3 Biểu đồ thực thể pha phân tích của module

Mô tả module trong một đoạn văn ngắn

Hệ thống cho phép trọng tài cập nhật kết quả của mỗi trận đấu, mỗi trận đấu có 2

cờ thủ Kết quả mỗi trận đấu bao gồm điểm số và Elo Để cập nhật kết quả trận đấuthì phải chọn 1 vòng đấu từ 11 vòng đấu cho trước Sau khi nhập điểm và Eloxong, đó chính là kết quả của trận đấu giữa 2 cờ thủ tại vòng đấu được chọn

Trích xuất và phân loại danh từ

- Hệ thống: danh từ trừu tượng -> Reject

- Trọng tài: cần cần được được quản lý -> lớp Trọng Tài

- Kết quả: danh từ chung chung -> Reject

- Trận đấu: cần cần được quản lý -> lớp Trận đấu

- Cờ thủ: cần được quản lý -> lớp Cờ thủ

- Điểm số : sử dụng làm thuộc tính của của cờ thủ

- Elo: sử dụng làm thuộc tính của cờ thủ

- Vòng đấu: cần được quản lý -> lớp Vòng đấu

=> Có lớp trọng tài, lớp cờ thủ, lớp trận đấu, lớp vòng đấu

Mối quan hệ số lượng và đối tượng giữa các lớp:

- Trong 1 vòng đấu, 1 trọng tài có thể giám sát nhiều trận đấu, mỗi trận đấuchỉ được giám sát bởi một trọng tài => Trọng tài - trận đấu là 1-n

- 1 cờ thủ phải tham gia nhiều vòng đấu, 1 vòng đấu có nhiều cờ thủ => cờthủ - vòng đấu là n-n => 1 lớp ở giữa : Cờ thủ trong trận đấu

- Trong 1 vòng đấu, 1 cờ thủ chỉ tham gia 1 trận đấu, 1 trận đấu có 2 cờ thủ

=> vòng đấu - cờ thủ là 1-n

Trang 6

4 Biểu đồ lớp đầy đủ pha phân tích của module

Phân tích module

- Đăng nhập vào hệ thống -> giao diện đăng nhập hiện ra -> Lớp LoginView

- Đầu vào cho username -> inUsername

- Đầu vào cho password -> inPassword

- Gửi đăng nhập -> subLogin

- Nhập username/password -> hệ thống kiểm tra thông tin đăng nhập có đúngkhông -> Cần 1 phương thức

- Lựa chọn để Cập nhật kết quả -> subUpdateResult

- Lựa chọn để Thống kê thay đổi Elo -> subEloChangeStatistics

- Chọn cập nhật kết quả -> giao diện danh sách vòng đấu hiện ra -> LớpListRoundView

- Danh sách các vòng đấu sổ ra -> outsubListRound

- Chọn 1 vòng đấu-> giao diện danh sách trận đấu hiện ra -> LớpListMatchView

- Ô nhập tìm kiếm (nếu cần) -> inKey

=> Cần phương thức SearchByID(), input: từ khóa, output : none,gán cho lớp thực thể Match

- nút tìm kiếm -> subSearch

- Danh sách các vòng đấu sổ ra -> outsubListMatch

- Chọn một trận đấu cần cập nhật kết quả -> Giao diện cập nhật kết quả của 2

cờ thủ hiện ra -> Lớp UpdateResultView

- ID của cờ thủ số 1 : chỉ đọc -> outID1

- Tên của cờ thủ số 1 : chỉ đọc -> outName1

- Điểm của cờ thủ số 1 : đọc và chỉnh sửa -> inoutScore1

- Elo của cờ thủ số 1: đọc và chỉnh sửa -> inoutElo1

- ID của cờ thủ số 2 : chỉ đọc -> outID2

- Tên của cờ thủ số 2 : chỉ đọc -> outName2

- Điểm của cờ thủ số 2 : đọc và chỉnh sửa -> inoutScore2

- Elo của cờ thủ số 2: đọc và chỉnh sửa -> inoutElo2

- Nút để lưu: submit -> subSave

Trang 7

- Thay đổi điểm và Elo rồi click save -> hệ thống cập nhật vào Database ->cần 1 phương thức.

Trang 8

5 Biểu đồ tuần tự phân tích của module

Kịch bản V.2 của module Cập nhật kết quả

1 Trọng tài nhập username/password và click on vào nút “Đăng Nhập”

2 Lớp LoginView gọi lớp Trọng Tài để xử lý

3 Lớp Trọng Tài gọi hàm checkLogin() Đăng nhập thành công

4 Lớp Trọng Tài trả về kết kết quả cho lớp LoginView

5 Lớp LoginView gọi lớp RefereeHomeView

6 Lớp RefereeHomeView hiển thị chính nó cho Trọng Tài

7 Trọng Tài chọn lựa chọn Cập nhật kết quả

8 Lớp RefereeHomeView gọi lớp ListRoundView

9 Lớp ListRoundView hiển thị chính nó cho Trọng Tài là danh sách vòng đấu

10 Trọng Tài chọn một vòng đấu

11.Lớp ListRoundView gọi lớp ListMatchView

12.Lớp ListMatchView hiển thị danh sách trận đấu

13 Trọng tài chọn một trận đấu

14.Lớp ListMatchView gọi lớp DetailInfoView

15.Lớp DetailInfoView hiển thị chính nó

16.Trọng tài sửa một số thuộc tính và click on vào nút “Lưu”

17 Lớp DetailInfoView gọi lớp Cờ thủ trong trận đấu để xử lý

18 Lớp Cờ thủ trong trận đấu gọi phương thức updateResult()

19 Lớp Cờ thủ trong trận đấu trở về lớp DetailInfoView

20 Lớp DetailInfoView thông báo thành công cho Trọng Tài

21 Trọng Tài click nút “OK” của hộp thoại

22 Lớp DetailInfoView gọi lớp RefereeHomeView

23 Lớp RefereeHomeView hiển thị chính nó cho trọng tài

Trang 9

6 Biểu đồ thiết kế lớp thực thể của module

Chuẩn hóa lớp và thuộc tính.

- Đổi tên các lớp và thuộc tính sang tiếng anh cho đồng bộ

- Cờ Thủ -> Player

- Trọng Tài -> Referee

- Trận đấu -> Match

- Vòng đấu -> Round

- Cờ Thủ trong trận đấu -> Player In Match

- Thêm ID cho các lớp không kế thừa từ các lớp khác + bổ sung kiểu dữ liệu

Trang 10

Chuyển đổi tất cả các quan hệ association thành aggregation/composition

Player + Match -> PlayerInMactch được chuyển thành:

Player là 1 component của PlayerInMatch, PlayerInMatch là 1 component củaMatch

Thêm các thuộc tính đối tượng tương ứng với các quan hệ aggregation/composition

- Match là 1 component của Round, thuộc loại n-1 => Round có 1 danh sáchMatch

- Referee là 1 component của Match, thuộc loại 1-n => Match có 1 Referee

- Player là 1 component của PlayerInMatch, thuộc loại 1-n => PlayerInMatch

có 1 Player

- PlayerInMatch là 1 component của Match, thuộc loại n-1 => Match có 1danh sách PlayerInMatch

Trang 11

7 Biểu đồ thiết kế CSDL của module

Mỗi lớp thực thể đề xuất bảng tương ứng

- tblPlayer có các thuộc tính: id, name, elo, dob, phoneNumber

- tblRound: id, name, time

- tblMatch: id, name, timeStart, timeEnd

- tblReferee: id, name, phoneNumber, userName, password

- tblPlayerInMatch: id, score, eloInRound

Trang 12

Chuyển quan hệ số lượng giữa các lớp thực thể thành quan hệ số lượng giữa các bảng

- 1 tblRound - n tblMatch

- 1 tblReferee - n tblMatch

- 1 tblPlayer - n tblPlayerInMatch

- 1 tblMatch - n tblPlayerInMatch

Bổ sung các thuộc tính khóa

- Khóa chính được thiết lập bằng thuộc tính id của các bảng tương ứng

- Khóa ngoại được thiết lập cho các bảng:

+ 1 tblRound - n tblMatch -> bảng tblMatch có khóa ngoại tblRoundid+ 1 tblReferee - n tblMatch -> bảng tblMatch có khóa ngoại tblRefereeid+ 1 tblPlayer - n tblPlayerInMatch -> bảng tblPlayerInMatch có khóa ngoạitblPlayerid

+ 1 tblMatch - n tblPlayerInMatch -> bảng tblPlayerInMatch có khóa ngoạitblMatchid

Loại bỏ các thuộc tính dư thừa

- Thuộc tính bị trùng lặp: Không có

- Thuộc tính dẫn xuất: Không có

8 Thiết kế giao diện và biểu đồ lớp thiết kế chi tiết đầy đủ của module

a Thiết kế giao diện

- Giao diện đăng nhập (LoginView)

Trang 13

- Giao diện trang chủ của Trọng Tài (Referee Home view)

Trang 14

- Giao diện cập nhật kết quả cho cờ thủ

b Biểu đồ lớp thiết kế chi tiết đầy đủ của module

Trang 15

- Thuộc tính tường minh:

- UpdateResultFrm là giao diện hiện ra để cập nhật kết quả Cần những

textfield là id, name, score, elo Cần 1 nút save và 1 nút cancel

- thuộc tính tường minh

Trang 16

- RefereeDAO là lớp thao tác với DB liên quan đến đối tượng Referee Cần mộtphương thức để xác minh xem thông tin đăng nhập có chính xác hay không:

- PlayerInMatchDAO là lớp thao tác với DB liên quan đến đối tượng

PlayerInMatch Cần phương thức updateResult() để cập nhật kết quả

- PlayerDAO là lớp thao tác với DB liên quan đến đối tượng Player Cần phươngthức updateELo()

Lớp thực thể: Referee, Match, Round, Player, PlayerInMatch

Trang 17

9 Biểu đồ tuần tự pha thiết kế của module

Kịch Bản chuẩn V.3

1 Trọng tài nhập username, password và click nút login trên loginFrm

2 Phương thức actionPerformed() của LoginFrm được gọi

3 Phương thức actionPerformed() gọi Referee để tạo đối tượng Referee

4 Lớp Referee đóng gói thông tin vào một đối tượng Referee

5 Lớp Referee trả về đối tượng Referee cho phương thức actionPerformed()

6 Phương thức actionPerformed() gọi phương thức checkLogin() của lớp RefereeDAO

7 Phương thức checkLogin() kiểm tra thông tin đăng nhập

8 Phương thức checkLogin() gọi lớp Referee đặt thêm các thuộc tính name, phoneNumber

9 Lớp Referee gọi phương thức setName(), setPhoneNumber()

10 Lớp Referee trả lại đối tượng Referee cho phương thức checkLogin()

11 Phương thức checkLogin() trả về kết quả cho actionPerformed()

12 Phương thức actionPerformed() gọi lớp RefereeHomeFrm

13 Constructor RefereeHomeFrm() được gọi

14 Giao diện RefereeHomeFrm được hiển thị cho Trọng tài

15 Trọng tài clicks in vào nút UpdateResult

16 Phương thức actionPerformed() được gọi

17 Phương thức actionPerformed() gọi lớp ListRoundFrm

18 Constructor ListRoundFrm() được gọi

19 Lớp ListRoundFrm() gọi phương thức displayAllRound() của class RounDAO()

20 Phương thức displayAllRound() được thực hiện

21 Phương thức displayAllRound gọi Round để đóng gói kết quả

22 Lớp Round đóng gói từng kết quả vào 1 đối tượng Round

23 Lớp Round trả về kết quả cho phương thức displayAllround

24 Trả về kết quả cho lớp ListRoundFrm

25 Giao diện ListRoundFrm được hiện ra cho trong Trọng Tài

26 Trọng tài click vào 1 vòng đấu

27 Phương thức actionPerformed() được gọi

28 Phương thức actionPerformed() gọi lớp ListMatchFrm

29 Constructor ListMatchFrm() được gọi

30 Lớp ListMatchFrm() gọi phương thức displayAllMatch() của class MatchDAO()

31 Phương thức displayAllMatch() được thực hiện

32.Phương thức displayAllMatch() gọi Match để đóng gói kết quả

33.Lớp Match đóng gói từng kết quả vào 1 đối tượng Match

34 Lớp Match trả về kết cho phương thức displayAllMatch()

35 Trả về kết quả cho ListMatchFrm()

36 Giao diện ListMatchFrm được hiển thị cho trọng tài

37 Trọng tài click vào 1 trận đấu

38 Phương thức actionPerformed() của lớp ListMatchFrm được gọi

39 Phương thức actionPerformed() gọi lớp UpdateResultFrm

40 Constructor UpdateResultFrm() được gọi

Trang 18

41 Giao hiện UpdateResultFrm được hiển thị cho Trọng Tài

42 Nhân viên nhập điểm và elo cho 2 cờ thủ và nhấn vào nút lưu

43 Phương thức actionPerformed() của lớp UpdateResultFrm được gọi

44 Phương thức actionPerformed() gọi phương thức UpdateResult() củaPlayerInMatchDAO()

45 Phương thức UpdateResult() được thực hiện

46 Phương thức UpdateResult() gọi PlayerInMatch để đóng gói kết quả47.Lớp PlayerInMatch đóng gói kết quả

48.Trả về kết quả cho phương thức UpdateResult()

49 Phương thức UpdateResult() trả về kết quả cho actionPerformed()

50 Giao diện RefereeHomeFrm được hiển thị cho Trọng tài

Trang 20

10 Test plan và test case chuẩn cho test hộp đen của module

a Test plan

STT Module Các lớp test case

1 Cập nhật kết quả Cập nhật kết quả cho cho trận đấu đã tồn tại

2 Cập nhật kết quả cho trận đấu chưa tồn tồn tại

3 Cập nhật 2 lần liên tục cho trận đấu đã tồn tại

b Viết test case chuẩn cho test hộp đen

- CSDL trước khi test

- tblreferee

- tblround

- tblmatch

Trang 21

- tblplayer

- tblplayerinmatch

- Kịch Bản

Các bước thực hiện Kết quả mong đợi

1 Mở phần mềm Giao diện đăng nhâp hiện ra

- username

- password

- login

2 Nhậpusername = username1password = password1click đăng nhập

Giao diện chính chính của trọng tài hiện racác lựa chọn

- Cập nhật kết quả

- Thống kê thay đổi elo

3 Chọn “Cập nhật kếtquả”

Giao diện các vòng đấu hiện ra

4 Chọn vòng đấu 1 Giao diện danh sách các cặp đấu của vòng 1

STT ID cờ

thủ 1

Tên cờ thủ 1

ID cờ thủ 2

Tên cờ thủ 2

1 player1 Nguyễn player2 Trần Thị

Trang 22

Văn A B

2 player3 Lưu

Phương Thảo

+ Elo: 1500

- Cờ thủ 2

+ ID: player2(Không sửa được)+ Trần Thị B (không sửa được)+ Điểm:0

+ Elo: 1600

6 Trọng tài sửa

- điểm player2 là1

- CSDL sau khi test

- Bảng playerinmatch thay đổi

Trang 23

- Bảng player thay thay đổi

Ngày đăng: 24/11/2024, 06:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w