You are on page 1of 129

BÌNH DƯƠNG

TRƯỜNG ĐẠI HỌC BÌNH DƯƠNG


KHOA: CÔNG NGHỆ THÔNG TIN, ROBOT VÀ TRÍ TUỆ NHÂN TẠO
BỘ MÔN: PHÁT TRIỂN ỨNG DỤNG HƯỚNG ĐỐI TƯỢNG
---------------o0o---------------

ĐỒ ÁN MÔN HỌC

Phát triển ứng dụng Sổ liên lạc điện tử cho trường


Trung học Phổ thông Trần Văn Ơn
GVHD : HUỲNH ANH TUẤN
SVTH : LÊ PHI LONG
MSSV: 21050066
SVTH : NGUYỄN MINH MẪN
MSSV: 21050040
SVTH : LÊ HUYNH ĐỨC
MSSV: 21050042

BÌNH DƯƠNG, NGÀY 03 THÁNG 11 NĂM 2023


GVCN: Huỳnh Anh Tuấn

LỜI CAM ĐOAN

Nhóm 13S xin cam đoan những điều được trình bày trong đây là một sản
phẩm tự nghiên cứu, không phải là một sản phẩm đã có sẵn trước. Nếu có sự sao
chép kết quả nghiên cứu, nhóm xin hoàn toàn chịu trách nhiệm.

3
GVCN: Huỳnh Anh Tuấn

Contents
A. PHẦN GIỚI THIỆU...................................................................................................5
I. THÔNG TIN VỀ ĐỀ TÀI............................................................................................5
1. Thông tin chung..................................................................................................5
2. Tóm tắt về lý do thực hiện đề tài........................................................................5
3. Mục tiêu, phạm vi đề tài.....................................................................................5
II. CÁCH THỨC THỰC HIỆN......................................................................................5
1. Phương pháp - Mô hình – Tiến trình thực hiện..................................................5
2. Công cụ thực hiện...............................................................................................6
III. KẾ HOẠCH THỰC HIỆN........................................................................................6
B. KHẢO SÁT VÀ PHÂN TÍCH.................................................................................7
I. NGHIÊN CỨU SƠ BỘ [BƯỚC 1]..............................................................................7
1. Giới thiệu tổng quan về tổ chức (cơ quan, doanh nghiệp) sẽ sử dụng ứng dụng7
2. Hiện trạng............................................................................................................9
3. Nhu cầu ứng dụng công nghệ thông tin............................................................15
3.1. Các yêu cầu chức năng cần có của ứng dụng (theo ý kiến của tổ chức)....16
3.2. Các yêu cầu phi chức năng (mà tổ chức mong muốn)...............................17
II. NHẬN ĐỊNH VÀ ĐẶC TẢ CÁC ACTOR, USE CASE [BƯỚC 2].......................17
1. Xác định các tác nhân (Actor) và vẽ biểu đồ khung cảnh................................17
2. Xác định usecase...............................................................................................19
III. MÔ HÌNH HÓA LĨNH VỰC ỨNG DỤNG [Bước 3]............................................52
1. Xác định các Entity Class.................................................................................52
2. Xác định mối liên kết (Association) giữa các class thực thể............................52
3. Vẽ Entity Class Diatram (biểu đồ lớp thực thể) cho ứng dụng.........................52
IV. PHÂN TÍCH THEO TỪNG USE CASE [Bước 4, 7, 5, 6]....................................52
1. Use Case 1 <nêu tên cụ thể>...................................................................52
1.1. Xác định các đối tượng /lớp tham gia use case .........................................52
1.2. Vẽ Sequence Diagram và Activity Diagram của use case ........................53
1.3. Vẽ State Machine Diagram .......................................................................53
2. Use Case 2 <nêu tên cụ thể>.............................................................................53
C. THIẾT KẾ...............................................................................................................53
I. LÀM NGUYÊN MẪU GIAO DIỆN NGƯỜI DÙNG..............................................53
II. THIẾT KẾ HỆ THỐNG...........................................................................................61

4
GVCN: Huỳnh Anh Tuấn

III. THIẾT KẾ CHI TIẾT.............................................................................................61


1. Thiết kế lưu trữ.................................................................................................61
2. Thiết kế chi tiết các class..................................................................................61
D. CÀI ĐẶT, THỬ NGHIỆM VÀ KẾT LUẬN........................................................61
I. KẾT QUẢ CÀI ĐẶT, THỬ NGHIỆM [Bước 10]....................................................61
1. Cài đặt (Coding)................................................................................................62
2. Thử nghiệm (Testing).......................................................................................62
II. KẾT LUẬN – KIẾN NGHỊ......................................................................................62

5
GVCN: Huỳnh Anh Tuấn

A. PHẦN GIỚI THIỆU


I. THÔNG TIN VỀ ĐỀ TÀI
1. Thông tin chung
Tên đề tài: Phát triển ứng dụng Sổ liên lạc điện tử cho trường Trung học Phổ thông
Trần Văn Ơn.
Danh sách thành viên của nhóm:
21050066 Lê Phi Long
21050040 Nguyễn Minh Mẫn
21050042 Lê Huỳnh Đức

Ngày hoàn thành: 03/01/2023


2. Tóm tắt về lý do thực hiện đề tài
- Trong xu thế tin học hóa và từng bước tiến đến chuyển đổi số, việc áp dụng
công nghệ thông tin vào các lĩnh vực trong đời sống là việc không thể thiếu, quá
trình này cũng bao gồm việc từng bước thay đổi cách lưu trữ và quản lý, từ lữu trữ
dữ liệu trên giấy viết sang dữ liệu được lưu trữ trên các hệ quản trị cơ sở dữ liệu
trên máy tính, từ việc quản lý bằng con người sang quản lý tự động bằng máy tính.
- Từ lâu, trong các nhà trường, phương thức lưu trữ thông tin học tập bằng sổ
liên lạc là phương thức chính, tuy vậy, phương thức này bộc lộ một nhược điểm rất
hiện hữu đó chính là các sổ liên lạc thường khó bảo toàn nguyên vẹn (do thời gian
và ngoại cảnh), chưa kể là việc cập nhật dữ liệu cho sổ liện lạc cũng như các công
tác quản lý, thống kê, tra cứu rất khó khăn. Do vậy, nhu cầu đặt ra với các trường là
làm sao để khắc phục được hạn chế của cách làm truyền thống kể trên.
- Hiểu được những vấn đề đó, nhóm chúng em đưa ra đề xuất về việc tin học
hóa quy trình quản lý điểm, cụ thể là tạo ra một hệ thống sổ liên lạc điện tử cho
trường Trung học phổ thông Trần Văn Ơn.
3. Mục tiêu, phạm vi đề tài
- Mục tiêu: Tạo ra một ứng dụng hỗ trợ phụ huynh lẫn phía nhà trường trong
việc quản lý điểm của học sinh.
- Phạm vi đề tài: Các trường học đang có nhu cầu về việc quản lý điểm học
sinh theo hình thức trực tuyến. Cụ thể là trường THPT Trần Văn Ơn nói riêng và
các trường THPT khác nói riêng.
II. CÁCH THỨC THỰC HIỆN
1. Phương pháp - Mô hình – Tiến trình thực hiện
- Phương pháp phát triển ứng dụng: hướng đối tượng.
- Mô hình tiếp cận: Agile Scrum.
- Tiến trình: 10 bước của tiến trình RUP.

6
GVCN: Huỳnh Anh Tuấn

2. Công cụ thực hiện


- Công cụ mô hình hóa: IBM Rational Rose 7/0, MS Visio, mySQL
WorkBench.
- Hệ quản trị cơ sở dữ liệu: MS SQL Server 2019.
- Công cụ lập trình: MS Visual Studio 2019 /2022.
III. KẾ HOẠCH THỰC HIỆN
Kế hoạch thực hiện
- Thực hiện theo 10 bước tiến trình RUP.
- Bổ sung các phần còn thiếu hoặc sửa đổi vào bước 9.
- Thực hiện code, làm video demo, viết file hướng dẫn cài đặt và sử dụng sau
khi hoàn thành bước 9.
Phân công
Tên Công việc
Lê Phi Long Viết code, làm khảo sát, vẽ các sơ đồ ở
bước 3, 4, 5, 6, 8, viết đặc tả usecase
quản lý sổ điểm, cập nhật
Lê Huỳnh Đức Thiết kế cơ sở dữ liệu, viết đặc tả
usecase thống kê điểm 1 lớp dạy, thống
kê điểm toàn khối, quản trị hệ thống,
thiết kế chi tiết
Nguyễn Minh Mẫn Vẽ nguyên mẫu giáo diện, viết đặc tả
usecase đăng nhập, tra cứu học sinh,
xem sổ điểm, vẽ context diagram

7
GVCN: Huỳnh Anh Tuấn

B. KHẢO SÁT VÀ PHÂN TÍCH


I. NGHIÊN CỨU SƠ BỘ
1. Giới thiệu tổng quan về tổ chức (cơ quan, doanh nghiệp) sẽ sử dụng ứng
dụng
- Tên tổ chức: Trường THPT Trần Văn Ơn.
- Địa chỉ: Đ. 22 Tháng 12, Thuận Giao, Thuận An, Bình Dương.
- Loại hình tổ chức: Trường công lập.
- Ngày thành lập: 19/02/2003
- Tính pháp lý (hoạt động của tổ chức bị diều chỉnh bới Luật nào): Luật Giáo
dục. Luật số: 43/2019/QH14
- Sản phẩm /dịch vụ kinh doanh chủ lực: Trường có ngành nghề kinh doanh
chính là "Giáo dục trung học cơ sở và trung học phổ thông".
- Hình thức cung cấp dịch vụ: Dịch vụ giáo dục và đào tạo
- Khách hàng chủ yếu của tổ chức là những đối tượng nào: Học sinh lứa tuổi
từ 15 tới 18 không kể một số trường hợp đặc biệt.
- Khái quát tình hình hoạt động trong thời gian gần đây:
 Năm học 2022 – 2023, nhà trường chào đón 487 em học sinh lớp 10.
Trong số này có nhiều em đạt thành tích học tập xuất sắc ở cấp THCS
và nhiều em đạt điểm số cao trong kỳ thi tuyển sinh vừa qua.
 Trong năm học vừa qua, tỷ lệ học sinh yếu giảm 0,53%, học sinh giỏi
tăng 0,3%, học sinh khá tăng 2,35%, 100% học sinh đỗ kỳ thi tốt
nghiệp THPT. Trong năm học 2022 – 2023, nhà trường tiếp tục tổ
chức hiệu quả các phong trào thi đua, thực hiện chủ đề “Đoàn kết,
sáng tạo, ra sức phấn đấu hoàn thành tốt các nhiệm vụ và mục tiêu đổi
mới, củng cố và nâng cao chất lượng giáo dục, đào tạo”.
 Về cơ sở vật chất của trường: Nhà trường hiện có: 28 phòng học, 01
phòng Thiết bị, 03 phòng bộ môn: Vật lý, Hóa, Sinh, 02 phòng vi tính,
01 thư viện, 01 hội trường, 01 phòng Y tế, 01 Nhà thể thao đa năng.
 Nhân sự trường: Ban giám hiệu Trường THPT Trần Văn Ơn gồm:
Hiệu trưởng: HOÀNG THANH CẦN, Phó Hiệu trưởng: HUỲNH
HOÀNG THUẬN, Phó Hiệu trưởng: NGÔ HIẾU, Phó Hiệu trưởng:
NGUYỄN THỊ DIỄM TRANG, cùng hơn 60 cán bộ, giáo viên, nhân
viên.
 Đánh giá chung về đội ngũ:
o Cán bộ quản lý có năng lực chuyên môn, 100% đạt trình độ
trên chuẩn, ý thức trách nhiệm cao trong công tác.
o Giáo viên: 100% giáo viên đạt chuẩn và trên chuẩn; hầu hết
giáo viên nhiệt tình trách nhiệm, có ý thức phấn đấu hoàn

8
GVCN: Huỳnh Anh Tuấn

thành tốt nhiệm vụ được giao, luôn có tinh thần phối hợp chặt
chẽ, đoàn kết.
o Học sinh: có nề nếp học tập, được sự quan tâm của cha mẹ.
o Về nhân viên văn phòng: gồm các viên chức làm công tác y tế,
kế toán, thủ quỹ, tổng phụ trách, thư viện, thiết bị đều có tinh
thần trách nhiệm trong công việc, giúp Hiệu trưởng thực hiện
nhiệm vụ của bộ phận mà mình phụ trách như: quản lý tài
chính tài sản trong nhà trường; chăm sóc sức khỏe học sinh;
hướng dẫn học sinh tham gia các hoạt động ngoại khóa …
Nhân viên tổ văn phòng được tập huấn bồi dưỡng chuyên môn
nghiệp vụ về lĩnh vực công tác mà mình phụ trách đáp ứng yêu
cầu công việc được phân công

9
GVCN: Huỳnh Anh Tuấn

2. Hiện trạng
a) Tổ chức - nhân sự của tổ chức
Phòng ban/tổ Số nhân sự Chức năng/nhiệm vụ
Ban giám hiệu 3 - Xây dựng, tổ chức bộ máy nhà trường
- Thực hiện các quyết định của hội
đồng trường
- Xây dựng kế hoạch và tổ chức thực
hiện nhiệm vụ năm học
- Quản lý giáo viên, nhân viên, thực
hiện khen thưởng, kỷ luật, quản lý hồ
sơ tuyển dụng của giáo viên, nhân
viên…
- Quản lý học sinh và các hoạt động của
học sinh do nhà trường tổ chức, xét
duyệt kết quả đánh giá, xếp loại học
sinh, ký xác nhận học bạ, khen thưởng
kỷ luật học sinh theo quy định
- Quản lý tài chính, tài sản của nhà
trường
Tổ văn phòng 6 - Đảm trách các công việc hành chính
của trường
- Tham mưu, giúp việc cho Ban Giám
hiệu; phục vụ công tác dạy và học trong
nhà trường
Tổ chuyên môn 45 - Chủ động xây dựng kế hoạch dạy học
và giáo dục theo chương trình môn học,
hoạt động giáo dục thuộc chuyên môn
phụ trách theo tuần, tháng, học kỳ, năm
học
- Phối hợp với các tổ chuyên môn khác
xây dựng kế hoạch giáo dục của nhà
trường

b) Mô tả các quy trình nghiệp vụ, quy tắc, quy định của tổ chức có liên
quan trực tiếp đến ứng dụng
- Quy trình nhập thông tin giáo viên và học sinh:

10
GVCN: Huỳnh Anh Tuấn

+ Sau khi nộp hồ sơ/phỏng vấn thành công, nhân viên phòng thông tin và dữ
liệu sẽ tiến hành nhập liệu thông tin của học sinh/giáo viên, bao gồm các thông tin
trong sơ yếu lý lịch, gồm:
 Giáo viên: mã giáo viên, họ tên, giới tính, ngày sinh, địa chỉ, số điện
thoại, căn cước công dân, môn dạy và các lớp dạy (có thể trống nếu chưa có thông
tin).
 Học sinh: mã học sinh, họ tên, giới tính, ngày sinh, địa chỉ, số điện
thoại, căn cước công dân, lớp học (có thể trống nếu chưa được xếp); và các thông
tin của phụ huynh (mã phụ huynh).
+ Vào mỗi học kì, các giáo viên sẽ được phân công và thông báo về các lớp
dạy dựa trên môn dạy. Các học sinh cũng sẽ được phân vào lớp dựa trên năm học.
- Quy trình nghiệp vụ cập nhật điểm:
+Mẫu sổ liên lạc dạng giấy:

11
GVCN: Huỳnh Anh Tuấn

+ Mỗi học kì, giáo viên được cấp một sổ điểm gồm: lớp, môn học, tên giáo
viên. Ứng với mỗi lớp có nhiều học sinh, mỗi học sinh có: số thứ tự, mã học sinh,
tên học sinh và điểm học sinh gồm tối đa 4 cột điểm đánh giá thường xuyên, 1 cột
điểm giữa kì, 1 cột điểm cuối kì.
+ Mỗi học sinh sau một học kì sẽ được phát sổ liên lạc, mỗi sổ liên lạc gồm
các thông tin: học kì, năm học, mã học sinh, tên học sinh, lớp học và danh sách các
môn học, mỗi môn học gồm số thứ tự, tên môn học, 4 cột điểm đánh giá thường
xuyên, 1 cột điểm giữa kì, 1 cột điểm cuối kì và điểm trung bình môn học. Quá trình
học tập của học sinh trong một học kì cũng được thể hiện trên sổ liên lạc, có các
trường thông tin gồm: điểm trung bình các môn, thứ hạng trong lớp, số ngày vắng,
học lực, hạnh kiểm, danh hiệu.
+ Cuối mỗi học kì, giáo viên nộp sổ điểm lại cho nhân viên phòng thông tin
và dữ liệu, nhân viên sẽ tiến hành nhập điểm lên máy tính và xuất kết quả theo mẫu
sổ liên lạc kể trên.
- Quy định chung về điểm:
+ Điểm số phải được đánh giá trung thực, khách quan theo năng lực của từng
học sinh.
+ Điểm trung bình các môn trong học kì chỉ được tính sau khi đã nhập đủ tất
cả các cột cần thiết, tối đa có 4 cột điểm đánh giá thường xuyên (gồm điểm miệng
và điểm kiểm tra 15 phút), 1 cột điểm giữa kì, 1 cột điểm cuối kì. Trong đó điểm
đánh giá thường xuyên có thể nhập từ 2 đến 4 cột và tính điểm trung bình dựa trên
số cột nhập vào.
+ Điểm tổng kết năm học của một học sinh chỉ được tính sau khi đã nhập
điểm của cả 2 học kì.
+ Các cột điểm có ký hiệu riêng:
 Các cột điểm thường xuyên: TX1, TX2, TX3, TX4.
 Cột điểm giữa kì: GK.
 Cột điểm cuối kì: CK.
+ Cột điểm dẫn xuất (được suy ra) không cần nhập, nhưng vẫn có ký hiệu
riêng, cụ thể là cột điểm trung bình môn: TBM.
+ Các cột điểm thường xuyên có hệ số là 1, giữa kì có hệ số 2 và cuối kì có
hệ số 3.
+ Các môn học đánh giá theo các cột điểm số được làm tròn đến chữ số thập
phân thứ nhất, riêng môn thể dục tính theo điểm Đ (đạt) hoặc CĐ (chưa đạt).
+ Trường hợp các học sinh có nhiều điểm hơn 4 cột điểm đánh giá thường
xuyên kể trên, giáo viên có thể linh động chỉnh sửa các cột điểm sao cho phù hợp.
- Quy định về cách tính điểm:
+ Điểm trung bình môn được tính theo công thức:

12
GVCN: Huỳnh Anh Tuấn

TĐĐGtx+ 2 x ĐĐGgk+3 x ĐĐGck


ĐTBmhk=
Số ĐĐGtx+ 5
Trong đó:
 TĐĐGtx: Tổng điểm kiểm tra và đánh giá thường xuyên.
 ĐĐGgk: Điểm kiểm tra và đánh giá giữa kỳ.
 ĐĐGck: Điểm kiểm tra và, đánh giá cuối kỳ.
 ĐĐGtx: Điểm kiểm tra và đánh giá thường xuyên.
+ Điểm trung bình môn cả năm học được tính theo công thức:
ĐTBmhkI + 2 x ĐTBmhkII
ĐTBmcn=
3
Trong đó:
 ĐTBmhkI: Điểm trung bình môn của học kỳ I
 ĐTBmhkII Điểm trung bình môn của học kỳ II
+ Điểm thể dục trong một học kì được đánh giá bằng cách:
 Mức đạt (Đ): Có 2/3 số bài kiểm tra trở lên được đánh giá mức Đ,
trong đó có bài kiểm tra học kỳ.
 Chưa đạt yêu cầu (CĐ): Các trường hợp còn lại.
- Quy trình thống kê điểm:
+ Sau khi đã tổng hợp điểm từ các giáo viên bộ môn gửi về, nhân viên thông
tin và dữ liệu sẽ tiến hành sử dụng Excel để phân tích điểm dựa trên các tiêu chí,
các tiêu chí này cho ra các thông tin có thể là:
 Môn học có điểm trung bình cao nhất toàn khối.
 Môn học có điểm trung bình thấp nhất toàn khối.
 Tỉ lệ học sinh đạt các điểm từ 0 đến 10 (với bước nhảy là 0.25) của
từng môn học và trung bình các môn học.
 …
+ Giáo viên cũng sẽ nhận được bảng thống kê về điểm của từng lớp mình
dạy, các thông tin cũng gần như tương tự các thông tin trên.
- Quy định về khối, lớp học, học kì và niên khóa:
+ Các khối, lớp học, học kì và niên khóa được quản lý và tổ chức theo quy
định.
+ Một lớp học có mã lớp bắt đầu bằng khối kết hợp với chữ A và kết thúc
bằng số thứ tự lớp, hay [tên khối]A[số thứ tự lớp]. Ví dụ: 10A1, 10A2, 12A3…
+ Một khối có thể chứa nhiều lớp, mỗi lớp chỉ thuộc về một khối duy nhất,
khối có thể là khối 10, khối 11, khối 12.
+ Một niên khóa có 2 học kì (học kì 1 và học kì 2 không tính học kì hè), một
niên khóa được đặt bằng công thức [năm bắt đầu]-[năm kết thúc], ví dụ: 2022-2023.
+ Một niên khóa mới được bắt đầu vào ngày 05/09 hằng năm.

13
GVCN: Huỳnh Anh Tuấn

+ Học kì I bắt đầu vào ngày 05/09, học kì II bắt đầu vào ngày 15/01 hằng
năm.
c) Hiện trạng tin học
- Hiện tại, nhà trường quản lý điểm thủ công bằng sổ điểm được phát
cho mỗi giáo viên ở đầu học kì.
- Về cơ sở vật chất, nhà trường đã có đầy đủ các thiết bị, máy móc như
các máy tính, máy in… và các kết nối mạng có dây lẫn không dây tốc độ cao
với nhiều điểm truy cập.
- Về trình độ tin học, tất cả giáo viên đều sử dụng thành thạo các thiết
bị công nghệ như điện thoại, máy tính cũng như các công cụ, ứng dụng chạy
trên các nền tảng này, các giáo viên cũng có các chứng chỉ tin học văn phòng
cơ bản, có khả năng tự học cách sử dụng công nghệ mới nhất.
3. Nhu cầu ứng dụng công nghệ thông tin
- Sổ liên lac điện tử được biết đến là phương tiện trao đổi thông tin
không thể thiếu giữa nhà trường và phụ huynh ở các trường. Sổ liên lạc điện
tử đang dần thay thế những cuốn sổ liên lạc thủ công trước kia bởi tính tiện
dụng, hiện đại.
- Về nguyên lý, sản phẩm sổ liên lạc điện tử giúp kết nối, tăng cường
giao tiếp giữa các phòng ban, là cầu nối gắn kết mối liên hệ giữa: nhà trường -
giáo viên - phụ huynh và học sinh.
- Lợi ích của sổ liên lạc điện tử:
+ Quản lý thông tin học sinh: Bao gồm: quản lý hồ sơ, quá trình học tập
giúp giảm tải giấy tờ, thủ tục không cần thiết.
+ Quản lý thông tin giáo viên: Thông tin hồ sơ giáo viên, lịch dạy hàng
ngày.
+ Quản lý lớp học: Điểm danh học sinh lúc đến và lúc về theo từng
ngày.
+ Tính bảo mật cao: Bảo mật tuyệt đối thông tin của học sinh, chỉ phụ
huynh mới xem được.
Đối với nhà trường:
+ Cập nhật nhanh chóng tình trạng học sinh: điểm danh, đón trả, nhận
xét các em…
+ Gửi thông báo tức thì theo nhóm đối tượng tùy chỉnh
+ Quản lý chặt chẽ thông tin lớp học, thống kê báo cáo chính xác
+ Nhanh chóng nắm bắt phản hồi từ phụ huynh và giáo viên.

14
GVCN: Huỳnh Anh Tuấn

Đối với phụ huynh:


+ Nắm bắt, cập nhật liên tục hoạt động học tập của học sinh.
+ Nhận thông báo, lịch học, hoạt động của nhà trường
+ Trò chuyện trực tuyến với giáo viên, xin nghỉ ngay trên ứng dụng
Đối với giáo viên:
+ Quản lý lớp học hiệu quả: Thông báo, điểm danh, nhận xét học sinh
thông qua phần mềm giúp tiết kiệm thời gian công sức cho giáo viên.
+ Trao đổi với phụ huynh, nhà trường thuận tiện
+ Tìm kiếm, tra cứu thông tin học sinh nhanh chóng, thuận lợi
3.1. Các yêu cầu chức năng cần có của ứng dụng (theo ý kiến của tổ chức)
+ Giúp phụ huynh xem sổ điểm của học sinh.
+ Hỗ trợ giáo viên cập nhật điểm của học sinh trong từng học kì.
+ Giúp quản trị viên hệ thống thực hiện thống kê điểm theo các tiêu chí như:
niên khóa, học kì, môn học, lớp.
+ Hỗ trợ giáo viên và quản trị viên hệ thống tra cứu, xem thông tin của từng
học sinh.
+ Hỗ trợ quản trị viên hệ thống cập nhật học sinh (thêm, sửa, xóa), xếp lớp
dạy cho giáo viên và xếp lớp học cho học sinh
+ Giúp quản trị viên hệ thống quản lý thông tin cá nhân của người dùng, bao
gồm cả tài khoản.
3.2. Các yêu cầu phi chức năng (mà tổ chức mong muốn)
+ Phần mềm được viết bằng Windows Form.
+ Khóa sổ điểm khi một học kì kết thúc và chỉ có thể xem chứ không thể cập
nhật.
II. NHẬN ĐỊNH VÀ ĐẶC TẢ CÁC ACTOR, USE CASE [BƯỚC 2]
1. Xác định các tác nhân (Actor) và vẽ biểu đồ khung cảnh

Tên actor Loại actor Mô tả


Phụ huynh Giao diện đồ họa Người đăng nhập xem
thông tin

Giáo viên Giao điện đồ họa Người cập nhật điểm


của học sinh

15
GVCN: Huỳnh Anh Tuấn

Admin Giao diện đồ họa Quản trị viên hệ thống

16
GVCN: Huỳnh Anh Tuấn

2. Xác định usecase


a) Danh sách use case
Actor tương Lựa chọn là use case
Tên use case Mô tả tóm tắt use case
ứng hay không, lý do
Phụ huynh,
Truy cập vào hệ thống sử Có, để phân quyền và
Đăng nhập giáo viên,
dụng tài khoản đã cho xác định người dùng
admin
Tra cứu học Giáo viên, Tìm kiếm học sinh mã số, Có, để tìm kiếm và xác
sinh admin theo tên, theo lớp… nhận thông tin học sinh
Xem chi tiết điểm số,
Xem sổ điểm trung bình các môn,
Phụ huynh Có, để xem điểm
điểm học lực của con hoặc
cháu
Thống kê Thống kê điểm theo lớp Có, đánh giá chất
điểm lớp Giáo viên một niên khóa, lớp, môn lượng của học sinh và
dạy học giáo viên
Thống kê Thống kê điểm theo khối Có, đánh giá chất
điểm toàn Admin một niên khóa, lớp, môn lượng của học sinh và
khối học, học kì giáo viên
Thay đổi hoặc xem sổ
Quản lý sổ điểm môn học của một
Giáo viên Có, để nhập liệu điểm
điểm lớp theo niên khóa, lớp,
môn học, học kì
Cập nhật thông tin học
Có, để quản lý thông
sinh; cập nhật lớp dạy cho
Cập nhật Admin tin học sinh và giáo
giáo viên và lớp học cho
viên
học sinh
Quản lý thông tin cá nhân
Quản trị hệ và tài khoản đăng nhập Có, để quản lý người
Admin
thống của của phụ huynh, giáo dùng
viên

17
GVCN: Huỳnh Anh Tuấn

b) Biểu đồ usecase

c) Đặc tả các use case theo dạng kịch bản [đặc tả bằng lời]
Usecase1
Tên use case Đăng nhập
Tác nhân chính Người dùng (Giáo viên, phụ huynh, admin)
Tác nhân phụ Không có
Mức 1
Người chịu trách Giáo viên, phụ huynh, quản trị viên hệ thống
nhiệm
Điều kiện tiên quyết - Tài khoản người dùng đã được tạo sẵn
- Tài khoản người dùng đã được phân quyền (vai trò)
- Người dùng đã khởi động ứng dụng nhưng chưa đăng
nhập vào hệ thống
Điều kiện tối thiểu Nếu đăng nhập thất bại: hiện thông báo đăng nhập không
(kết quả không thành thành công, xóa trắng các trường thông tin và đưa người
công) dùng trở lại trang đăng nhập

Đảm bảo thành công Nếu đăng nhập thành công: chuyển người dùng đến
trang chủ
Kích hoạt Người dùng khởi động phần mềm
Luồng sự kiện chính
1. Người dùng vào trang đăng nhập
2. Người dùng nhập tài khoản mật khẩu

18
GVCN: Huỳnh Anh Tuấn

3. Nhấn nút đăng nhập


4. Hệ thống kiểm tra thông tin đăng nhập
5. Thông tin đăng nhập đúng, chuyển người dùng đến trang chủ
6. Đọc thông tin về “loại” người dùng, “bật” các nút chức năng thích hợp
Ngoại lệ
4.a Thông tin đăng nhập sai hoặc tài khoản không tồn tại
4.a.1 Thông báo lỗi, xóa trắng form
4.a.2 Quay lại bước 2
Quy tắc nghiệp vụ

19
GVCN: Huỳnh Anh Tuấn

Usecase2
Tên use case Tra cứu học sinh
Tác nhân chính Giáo viên, admin
Tác nhân phụ Không có
Mức 1
Người chịu trách Giáo viên, admin
nhiệm
Điều kiện tiên quyết - Người dùng khởi động chương trình và đã đăng nhập
- Người dùng là admin hoặc giáo viên
Điều kiện tối thiểu Hiển thị thông báo lỗi và xóa trắng trường thông tin
(kết quả không thành
công)
Đảm bảo thành công Hiện lên danh sách các học sinh gần hoặc giống nhất với
kết quả tìm kiếm
Kích hoạt Người dùng nhấn nút “Tra cứu” tại trang chủ
Luồng sự kiện chính
1. Hệ thống hiển thị form tra cứu với 1 combo box về tiêu chí (tên, mã số, lớp…)
và 1 trường thông tin dùng để nhập từ khóa.
2. Người dùng chọn tiêu chí và nhập từ khóa, sau đó nhấn nút tìm kiếm
3. Hệ thống hiển thị danh sách học sinh giống hoặc gần giống với kết quả tra cứu,
người dùng có thể nhấn lên/xuống để xem thông tin
Ngoại lệ
3a. Thiếu thông tin về tiêu chí hoặc từ khóa
3.a.1 Hệ thống hiện thông báo “Yêu cầu bạn nhập đầy đủ thông tin học sinh”
3.a.2 Quay lại bước 2
Quy tắc nghiệp vụ

20
GVCN: Huỳnh Anh Tuấn

Tên use case Xem sổ điểm


Tác nhân chính Phụ huynh
Tác nhân phụ Không có
Mức 2
Người chịu trách Phụ huynh
nhiệm
Điều kiện tiên quyết - Người dùng khởi động chương trình và đã đăng nhập
- Người dùng là phụ huynh
Điều kiện tối thiểu Thông báo lỗi và quay lại bước trước
(kết quả không thành
công)
Kích hoạt Người dùng nhấn ”Xem sổ điểm học sinh”
Đảm bảo thành công Hiển thị điểm của các học sinh từ trước đến nay
Luồng sự kiện chính
1. Hiển thị form xem sổ điểm với đầy đủ bảng điểm các học kì của từng học sinh
theo từng năm học
2. Người dùng có thể thao tác chọn các chức năng của form để thực hiện hành
động tương ứng
Ngoại lệ

Quy tắc nghiệp vụ


1. Niên khóa được load là năm các học sinh học trong khoảng từ năm xa nhất đến
năm gần nhất
2. Các sổ điểm được hiển thị là kết quả học tập của 2 học kì trong năm học đó và
điểm trung bình của 2 năm học
3. Form sổ điểm chi tiết là form được nạp bằng crystal report
Usecase3

21
GVCN: Huỳnh Anh Tuấn

Usecase4
Tên use case Thống kê điểm lớp dạy
Tác nhân chính Giáo viên
Mức 1
Người chịu trách Giáo viên bộ môn
nhiệm
Điều kiện tiên quyết Giáo viên đã đăng nhập vào hệ thống với vai trò là giáo
viên.
Đảm bảo tối thiểu Hệ thống báo lỗi và quay lại bước trước.
Đảm bảo thành công Thống kê điểm số của các học sinh trong lớp
Kích hoạt Giáo viên chọn chức năng thống kê điểm lớp học
Chuỗi sự kiện chính
1. Sau khi chọn chức năng thống kê điểm, sẽ xuất hiện form Lựa chọn tiêu chí
thống kê theo chế độ ‘Select’ dựa theo dữ liệu có sẵn
2. Người dùng sẽ thao tác để chọn tiêu chí thống kê gồm Lớp học, Niên khóa,
Học kì mà mình muốn thống kê
3. Sau khi đã chọn xong các tiêu chí muốn thống kê, ấn vào nút thống kê ở trên
form. Hệ thống sẽ chuyển sang view crystal report
4. Dựa trên tiêu chí hệ thống sẽ xuất ra nội dung thống kê
Ngoại lệ
Quy tắc nghiệp vụ
1. Mặc định, các giá trị của các tiêu chí sẽ được đặt là giá trị đầu tiên

22
GVCN: Huỳnh Anh Tuấn

Usecase5
Tên use case Thống kê điểm toàn khối
Tác nhân chính Admin
Mức 1
Người chịu trách Quản trị viên hệ thống
nhiệm
Điều kiện tiên quyết Admin đã đăng nhập với vai trò Admin
Đảm bảo tối thiểu Hệ thống báo lỗi và quay lại bước trước
Đảm bảo thành công Thống kê điểm số toàn khối của trường học
Kích hoạt Admin chọn chức năng thống kê điểm toàn khối
Chuỗi sự kiện chính
1. Sau khi chọn chức năng thống kê điểm, sẽ xuất hiện form Lựa chọn tiêu chí
thống kê theo chế độ ‘Select’ dựa theo dữ liệu có sẵn
2. Người dùng sẽ thao tác để chọn tiêu chí thống kê gồm Môn học, Khối, Niên
khóa, Học kì mà mình muốn thống kê
3. Sau khi đã chọn xong các tiêu chí muốn thống kê, ấn vào nút thống kê ở trên
form. Hệ thống sẽ chuyển sang view crystal report
4. Dựa trên tiêu chí hệ thống sẽ xuất ra nội dung thống kê
Ngoại lệ
Quy tắc nghiệp vụ
1. Mặc định, các giá trị của các tiêu chí sẽ được đặt là giá trị đầu tiên

23
GVCN: Huỳnh Anh Tuấn

Usecase 6
Tên use case Tìm kiếm tất cả sổ điểm học sinh một lớp
Tác nhân chính Giáo viên
Tác nhân phụ Không có
Mức 2
Người chịu trách Giáo viên bộ môn
nhiệm
Điều kiện tiên quyết - Người dùng đã đăng nhập
- Người dùng là giáo viên
Đảm bảo tối thiểu Hệ thống thông báo lỗi và quay lui lại bước trước
(kết quả không
thành công)
Đảm bảo thành công Hiển thị danh sách học sinh theo các tiêu chí được chọn
Kích hoạt Giáo viên chọn chức năng nhập điểm từ trang chủ
Chuỗi sự kiện chính
1. Hệ thống hiển thị form quản lý sổ điểm với một khung tìm kiếm với các tiêu
chí có 2 ô gồm: lớp và nút tìm kiếm.
2. Giáo viên chọn các tiêu chí và nhấn nút tìm kiếm
3. Hệ thống tìm kiếm và hiển thị danh sách học sinh của 1 lớp lên form theo các
tiêu chí tương ứng, ở bên phải có nút “Cập nhật” dẫn đến form sổ điểm chi tiết
Ngoại lệ
Quy tắc nghiệp vụ
1. Các lớp được hiển thị là các lớp ở trong niên khóa và học kì này, đồng nghĩa
với việc giáo viên không thể thay đổi hay xem điểm các học sinh ở niên khóa, học
kì trước hay thay đổi bất cứ thứ gì
2. Mặc định, các giá trị của tiêu chí sẽ được đặt là giá trị đầu tiên

24
GVCN: Huỳnh Anh Tuấn

Tên use case Tìm kiếm sổ điểm học sinh cụ thể


Tác nhân chính Giáo viên
Tác nhân phụ Không có
Mức 2
Người chịu trách Giáo viên bộ môn
nhiệm
Điều kiện tiên quyết - Người dùng đã đăng nhập
- Người dùng là giáo viên
Đảm bảo tối thiểu Hệ thống thông báo lỗi và quay lui lại bước trước
(kết quả không
thành công)
Đảm bảo thành công Hiển thị danh sách học sinh theo các tiêu chí được chọn
Kích hoạt Giáo viên chọn “Cập nhật” từ form quản lý sổ điểm
Chuỗi sự kiện chính
1. Hệ thống hiển thị form sổ điểm chi tiết với thông tin bảng điểm (các dòng
điểm) của học sinh được chọn. Form sổ điểm chi tiết mặc định ở trạng thái
“Xem”. Giáo viên có thể thao tác tới/lui giữa các dòng điểm
2. Giáo viên thực hiện các chức năng khác như “Thêm”, “Xóa”, “Sửa” cho điểm
Ngoại lệ

Quy tắc nghiệp vụ


1. Các lớp được hiển thị là các lớp ở trong niên khóa và học kì này, đồng nghĩa
với việc giáo viên không thể thay đổi hay xem điểm các học sinh ở niên khóa, học
kì trước hay thay đổi bất cứ thứ gì

25
GVCN: Huỳnh Anh Tuấn

Tên use case Thêm điểm


Tác nhân chính Giáo viên
Tác nhân phụ Không có
Mức 2
Người chịu trách Giáo viên bộ môn
nhiệm
Điều kiện tiên quyết - Người dùng đã đăng nhập
- Người dùng là giáo viên
- Người dùng dạy học sinh này
Đảm bảo tối thiểu Hệ thống ngưng thêm điểm mà giáo viên vừa nhập và quay
(kết quả không lại bước trước
thành công)
Đảm bảo thành công Điểm của học sinh được cập nhật và ghi vào cơ sở dữ liệu
Kích hoạt Giáo viên bộ môn chọn học sinh và nhấn nút “cập nhật” từ
form quản lý sổ điểm
Chuỗi sự kiện chính
1. Hệ thống hiển thị form sổ điểm chi tiết với thông tin bảng điểm (các dòng
điểm) của học sinh được chọn. Form sổ điểm chi tiết mặc định ở trạng thái
“Xem”. Giáo viên có thể thao tác tới/lui giữa các dòng điểm
2. Giáo viên nhấn nút “Thêm”, xóa trắng các trường thông tin, lúc này form sẽ
chuyển trạng thái thành “Thêm”
3. Giáo viên bộ môn tiến hành nhập mã điểm. Sau đó tiến hành ghi giá trị của
điểm và nhấn nút “Lưu”
4. Hệ thống nhận thông tin từ 2 trường mã điểm và giá trị điểm của form sổ điểm
chi tiết, kiểm tra và tiến hành lưu vào cơ sở dữ liệu
5. Hiển thị lưu thành công, chuyển trạng thái của form thành “Xem”
6. Giáo viên tiếp tục thực hiện các chức năng khác của form
Ngoại lệ
3.a Một trong hai trường thông tin (mã điểm, giá trị điểm) chưa được nhập
3.a.1 Thông báo yêu cầu nhập đầy đủ các trường thông tin
3.a.2 Quay lại bước 3
3.b Miền giá trị điểm không hợp lệ
3.b.1 Thông báo nhập lại giá trị điểm
3.b.2 Quay lại bước 3
4.a Hệ thống ghi nhận đã có đủ loại điểm người dùng vừa nhập

26
GVCN: Huỳnh Anh Tuấn

4.a.1 Thông báo loại điểm vừa nhập đã có đủ


4.a.2 Quay lại bước 3
Quy tắc nghiệp vụ
1. Sổ điểm mặc định sẽ ở trạng thái “Xem”
2. Mã điểm nhận 1 trong các giá trị sau: TX1, TX2, TX3, TX4, GK, CK
3. Giá trị điểm nhận các giá trị số thực, làm tròn đến chữ số thập phân thứ 2 và
nằm trong miền giá trị từ >= 0 đến <= 10 hoặc nhận 0 hoặc 1 tương ứng với
không đạt và đạt (với môn thể dục)
4. Điểm có ký hiệu TX không nhận quá 4 giá trị, GK và CK mỗi loại không nhận
quá 1 giá trị, số lượng điểm tối đa mà một học sinh có thể có là 6

27
GVCN: Huỳnh Anh Tuấn

Tên use case Sửa điểm


Tác nhân chính Giáo viên
Tác nhân phụ Không có
Mức 2
Người chịu trách Giáo viên bộ môn
nhiệm
Điều kiện tiên quyết - Người dùng đã đăng nhập
- Người dùng là giáo viên
- Người dùng dạy học sinh này
Đảm bảo tối thiểu Hệ thống ngưng sửa điểm mà giáo viên vừa nhập và quay
(kết quả không lại bước trước
thành công)
Đảm bảo thành công Điểm của học sinh được cập nhật và ghi vào cơ sở dữ liệu
Kích hoạt Giáo viên bộ môn chọn học sinh và nhấn nút “cập nhật” từ
form quản lý sổ điểm
Chuỗi sự kiện chính
1. Hệ thống hiển thị form sổ điểm chi tiết với thông tin bảng điểm (các dòng
điểm) của học sinh được chọn. Form sổ điểm chi tiết mặc định ở trạng thái
“Xem”. Giáo viên có thể thao tác tới/lui giữa các dòng điểm
2. Giáo viên chọn dòng điểm, nhấn nút “Sửa”, lúc này form sẽ chuyển thành trạng
thái “Sửa”, đồng thời hiển thị thông tin điểm lên các trường thông tin
3. Giáo viên bộ môn tiến hành nhập mã điểm. Sau đó tiến hành ghi giá trị của
điểm và nhấn nút “Lưu”.
4. Hệ thống nhận thông tin từ 2 trường mã điểm và giá trị điểm của form sổ điểm
chi tiết, tiến hành lưu vào cơ sở dữ liệu.
5. Hiển thị lưu thành công, chuyển trạng thái của form thành “Xem”
6. Giáo viên tiếp tục thực hiện các chức năng khác của form
Ngoại lệ
2.a Giáo viên chưa chọn dòng điểm nào
2.a.1 Hiển thị yêu cầu chọn dòng điểm mong muốn
2.a.2 Quay lại bước 2
3.a Một trong hai trường thông tin (mã điểm, giá trị điểm) chưa được nhập
3.a.1 Thông báo yêu cầu nhập đầy đủ các trường thông tin
3.a.2 Quay lại bước 3
3.b Miền giá trị điểm không hợp lệ

28
GVCN: Huỳnh Anh Tuấn

3.b.1 Thông báo nhập lại giá trị điểm


3.b.2 Quay lại bước 3
4.a Hệ thống ghi nhận đã có đủ loại điểm người dùng vừa nhập
4.a.1 Thông báo loại điểm vừa nhập đã có đủ
4.a.2 Quay lại bước 3
Quy tắc nghiệp vụ
1. Sổ điểm mặc định sẽ ở trạng thái “Xem”
2. Mã điểm nhận 1 trong các giá trị sau: TX1, TX2, TX3, TX4, GK, CK
3. Giá trị điểm nhận các giá trị số thực, làm tròn đến chữ số thập phân thứ 2 và
nằm trong miền giá trị từ >= 0 đến <= 10 nhận Đ hoặc KĐ (với môn thể dục)
4. Điểm có ký hiệu TX không nhận quá 4 giá trị, GK và CK mỗi loại không nhận
quá 1 giá trị, số lượng điểm tối đa mà một học sinh có thể có là 6

29
GVCN: Huỳnh Anh Tuấn

Tên use case Xóa điểm


Tác nhân chính Giáo viên
Tác nhân phụ Không có
Mức 2
Người chịu trách Giáo viên bộ môn
nhiệm
Điều kiện tiên quyết - Người dùng đã đăng nhập
- Người dùng là giáo viên
- Người dùng dạy học sinh này
Đảm bảo tối thiểu Hệ thống ngưng xóa điểm mà giáo viên vừa nhập và quay
(kết quả không lại bước trước
thành công)
Đảm bảo thành công Điểm của học sinh được cập nhật và ghi vào cơ sở dữ liệu
Kích hoạt Giáo viên bộ môn chọn học sinh và nhấn nút “cập nhật” ở
form quản lý sổ điểm
Chuỗi sự kiện chính
1. Hệ thống hiển thị form sổ điểm chi tiết với thông tin bảng điểm (các dòng
điểm) của học sinh được chọn. Form sổ điểm chi tiết mặc định ở trạng thái
“Xem”. Giáo viên có thể thao tác tới/lui giữa các dòng điểm
2. Giáo viên chọn dòng điểm, nhấn nút “Xóa”, form sổ điểm chi tiết sẽ chuyển
trạng thái thành “Xóa”.
3. Hiển thị bảng xác nhận xóa điểm, khi đã xác nhận thành công, hệ thống xóa
dòng điểm tương ứng ra khỏi cơ sở dữ liệu
4. Hiển thị xóa thành công, chuyển trạng thái của form thành “Xem”
5. Giáo viên tiếp tục thực hiện các chức năng khác của form
Luồng sự kiện phụ

Quy tắc nghiệp vụ


1. Sổ điểm mặc định sẽ ở trạng thái “Xem”

30
GVCN: Huỳnh Anh Tuấn

Usecase7
Tên use case Tìm kiếm học sinh và phụ huynh
Tác nhân chính Admin
Tác nhân phụ Không có
Mức 3
Người chịu trách Người quản trị hệ thống
nhiệm
Điều kiện tiên quyết - Người dùng đã đăng nhập
- Người dùng là quản trị viên hệ thống
Đảm bảo tối thiểu Hệ thống ngưng tìm kiếm học sinh và quay lại bước trước
(kết quả không
thành công)
Đảm bảo thành công Thông tin của tất cả học sinh xuất hiện dưới dạng dòng dữ
liệu trên form
Kích hoạt Admin chọn “Cập nhật học sinh” từ trang chủ
Chuỗi sự kiện chính
1. Hệ thống hiển thị form cập nhật học sinh, form lúc này được chuyển thành
trạng thái “Xem”, các trường dữ liệu có thể nhập được xóa trắng, các dòng dữ liệu
về học sinh được nạp lên từ cơ sở dữ liệu, người dùng có thể tương tác tới/lùi với
các dòng dữ liệu này. Ngoài ra, form cũng hiển thị danh sách phụ huynh, nhưng
không thể thêm sửa xóa mà chỉ có thể tới lui để xem thông tin
2. Admin tiếp tục thực hiện các chức năng khác của form cập nhật học sinh
Ngoại lệ

Quy tắc nghiệp vụ


1. Sổ điểm mặc định sẽ ở trạng thái “Xem”

31
GVCN: Huỳnh Anh Tuấn

Tên use case Thêm học sinh


Tác nhân chính Admin
Tác nhân phụ Không có
Mức 3
Người chịu trách Người quản trị hệ thống
nhiệm
Điều kiện tiên quyết - Người dùng đã đăng nhập
- Người dùng là quản trị viên hệ thống
Đảm bảo tối thiểu Hệ thống ngưng thêm học sinh và quay lại bước trước
(kết quả không
thành công)
Đảm bảo thành công Thông tin của học sinh được thêm vào cơ sở dữ liệu
Kích hoạt Admin chọn “Cập nhật học sinh” từ trang chủ
Chuỗi sự kiện chính
1. Hệ thống hiển thị form cập nhật học sinh, form lúc này được chuyển thành
trạng thái “Xem”, các trường dữ liệu có thể nhập được xóa trắng, các dòng dữ liệu
về học sinh được nạp lên từ cơ sở dữ liệu, người dùng có thể tương tác tới/lùi với
các dòng dữ liệu này
2. Admin nhấn vào nút “Thêm”, form cập nhật học sinh xóa các trường thông tin,
form lúc này chuyển thành trạng thái “Thêm”
3. Tiến hành điền các trường thông tin cần thiết và nhấn nút thêm
4. Hệ thống cập nhật thông tin học sinh mới vào cơ sở dữ liệu
5. Thông báo thêm thành công, chuyển trạng thái của form thành “Xem” để
Admin tiếp tục thực hiện các chức năng khác
Ngoại lệ
4.a Các trường thông tin cần thiết không nhập đủ
4.a.1 Thông báo nhập lại đầy đủ các trường thông tin
4.a.2 Quay lại bước 3
4.b Học sinh đã tồn tại
4.b.1 Thông báo học sinh đã tồn tại
4.b.2 Quay lại bước 3
4.c Không tìm thấy phụ huynh
4.c.1 Thông báo không tìm thấy phụ huynh
4.c.2 Quay lại bước 3
Quy tắc nghiệp vụ

32
GVCN: Huỳnh Anh Tuấn

1. Sổ điểm mặc định sẽ ở trạng thái “Xem”


2. Các trường thông tin cần nhập gồm: họ tên, giới tính, ngày sinh, địa chỉ, số
điện thoại, căn cước công dân, mã phụ huynh, mã lớp. Riêng mã học sinh thì
được hệ thống tạo
3. Một học sinh được gọi là trùng khi căn cước công dân của học sinh vừa nhập
vào đã trùng với một học sinh khác trong cơ sở dữ liệu

33
GVCN: Huỳnh Anh Tuấn

Tên use case Sửa học sinh


Tác nhân chính Admin
Tác nhân phụ Không có
Mức 3
Người chịu trách Người quản trị hệ thống
nhiệm
Điều kiện tiên quyết - Người dùng đã đăng nhập
- Người dùng là quản trị viên hệ thống
Đảm bảo tối thiểu Hệ thống ngưng sửa học sinh và quay lại bước trước
(kết quả không
thành công)
Đảm bảo thành công Thông tin của học sinh được chỉnh sửa và lưu vào chỗ
tương ứng trong cơ sở dữ liệu
Kích hoạt Admin chọn “Cập nhật học sinh” từ trang chủ
Chuỗi sự kiện chính
1. Hệ thống hiển thị form cập nhật học sinh, form lúc này được chuyển thành
trạng thái “Xem”, các trường dữ liệu có thể nhập được xóa trắng, các dòng dữ liệu
về học sinh được nạp lên từ cơ sở dữ liệu, người dùng có thể tương tác tới/lùi với
các dòng dữ liệu này
2. Admin chọn học sinh trên danh sách học sinh sau đó nhấn vào nút “Sửa”, form
cập nhật học sinh nạp dữ liệu của học sinh được chọn lên các trường, form lúc
này chuyển thành trạng thái “Sửa”
3. Tiến hành điền các trường thông tin cần thiết và nhấn nút sửa
4. Hệ thống cập nhật thông tin học sinh vào cơ sở dữ liệu
5. Thông báo sửa thành công, chuyển trạng thái của form thành “Xem” để Admin
tiếp tục thực hiện các chức năng khác
Ngoại lệ
4.a Các trường thông tin cần thiết không nhập đủ
4.a.1 Thông báo nhập lại đầy đủ các trường thông tin
4.a.2 Quay lại bước 3
4.b Trùng căn cước công dân
4.b.1 Thông báo trùng căn cước công dân
4.b.2 Quay lại bước 3
4.c Không tìm thấy phụ huynh
4.c.1 Thông báo không tìm thấy phụ huynh

34
GVCN: Huỳnh Anh Tuấn

4.c.2 Quay lại bước 3


Quy tắc nghiệp vụ
1. Sổ điểm mặc định sẽ ở trạng thái “Xem”
2. Các trường thông tin cần nhập gồm: họ tên, giới tính, ngày sinh, địa chỉ, số
điện thoại, căn cước công dân, mã phụ huynh, mã lớp. Riêng mã học sinh thì
không thể bị thay đổi
3. Một học sinh được gọi là trùng khi căn cước công dân của học sinh vừa nhập
vào đã trùng với một học sinh khác trong cơ sở dữ liệu và khác với căn cước công
dân hiện tại của học sinh

35
GVCN: Huỳnh Anh Tuấn

Tên use case Xóa học sinh


Tác nhân chính Admin
Tác nhân phụ Không có
Mức 3
Người chịu trách Người quản trị hệ thống
nhiệm
Điều kiện tiên quyết - Người dùng đã đăng nhập
- Người dùng là quản trị viên hệ thống
Đảm bảo tối thiểu Hệ thống ngưng sửa học sinh và quay lại bước trước
(kết quả không
thành công)
Đảm bảo thành công Thông tin của học sinh được chỉnh sửa và lưu vào chỗ
tương ứng trong cơ sở dữ liệu
Kích hoạt Admin chọn “Cập nhật học sinh” từ trang chủ
Chuỗi sự kiện chính
1. Hệ thống hiển thị form cập nhật học sinh, form lúc này được chuyển thành
trạng thái “Xem”, các trường dữ liệu có thể nhập được xóa trắng, các dòng dữ liệu
về học sinh được nạp lên từ cơ sở dữ liệu, người dùng có thể tương tác tới/lùi
2. Admin chọn học sinh trên danh sách học sinh sau đó nhấn vào nút “Xóa”,
Form lúc này chuyển thành trạng thái “Xóa”
3. Thông báo xác nhận xóa học sinh, khi người dùng nhấn xóa, tiến hành xóa học
sinh tương ứng dựa trên mã học sinh ra khỏi cơ sở dữ liệu
4. Thông báo xóa thành công, chuyển trạng thái của form thành “Xem” để Admin
tiếp tục thực hiện các chức năng khác
Luồng sự kiện phụ
3.a Người dùng chọn “Cancel” ở bảng xác nhận
3.a.1 Ngưng xóa, chuyển trạng thái form thành “Xem”
Quy tắc nghiệp vụ
1. Sổ điểm mặc định sẽ ở trạng thái “Xem”

36
GVCN: Huỳnh Anh Tuấn

Tên use case Tìm kiếm lớp


Tác nhân chính Admin
Tác nhân phụ Không có
Mức 3
Người chịu trách Quản trị viên hệ thống
nhiệm
Điều kiện tiên quyết - Người dùng đã đăng nhập
- Người dùng là quản trị viên
Đảm bảo tối thiểu Hệ thống ngưng tìm kiếm và thông báo thất bại
(kết quả không
thành công)
Đảm bảo thành công Hiển thị danh sách lớp
Kích hoạt Admin chọn “Cập nhật lớp” từ trang chủ
Chuỗi sự kiện chính
1. Hệ thống hiển thị danh sách các lớp, có nút là xếp lớp giáo viên, Admin có thể
thao tác với một trong các dòng lớp học
2. Admin chọn dòng lớp học mong muốn
3. Admin thao tác với nút xếp lớp giáo viên, sẽ dẫn đến use case tương ứng
Ngoại lệ

Quy tắc nghiệp vụ


1. Các lớp được hiển thị là các lớp trong niên khóa và học kì này, không thể xem
lại danh sách lớp ở các học kì, niên khóa trước hay thay đổi bất kì thứ gì

37
GVCN: Huỳnh Anh Tuấn

Tên use case Tìm kiếm giáo viên chưa có trong lớp và đã có trong lớp
Tác nhân chính Admin
Tác nhân phụ Không có
Mức 3
Người chịu trách Quản trị viên hệ thống
nhiệm
Điều kiện tiên quyết - Người dùng đã đăng nhập
- Người dùng là quản trị viên
Đảm bảo tối thiểu Hệ thống ngưng tìm kiếm và thông báo thất bại
(kết quả không
thành công)
Đảm bảo thành công Hiển thị danh sách lớp
Kích hoạt Admin chọn “Xếp lớp giáo viên” từ Form cập nhật lớp
Chuỗi sự kiện chính
1. Hệ thống hiển thị 2 danh sách gồm danh sách các giáo viên có trong lớp và
giáo viên chưa có trong lớp
2. Người dùng có thể thao tác với một trong 2 form này để thực hiện use case
tương ứng
Ngoại lệ

Quy tắc nghiệp vụ

38
GVCN: Huỳnh Anh Tuấn

Tên use case Thêm giáo viên vào lớp


Tác nhân chính Admin
Tác nhân phụ Không có
Mức 3
Người chịu trách Quản trị viên hệ thống
nhiệm
Điều kiện tiên quyết - Người dùng đã đăng nhập
- Người dùng là quản trị viên
Đảm bảo tối thiểu Hệ thống ngưng tìm kiếm và thông báo thất bại
(kết quả không
thành công)
Đảm bảo thành công Hiển thị danh sách lớp
Kích hoạt Admin chọn “Thêm” từ Form xếp lớp
Chuỗi sự kiện chính
1. Người dùng thao tác với dòng dữ liệu của danh sách giáo viên chưa có trong
lớp
2. Người dùng nhấn “Thêm”, giáo viên được thêm vào lớp.
3. Người dùng tiếp tục thao tác để thực hiện các chức năng khác
Ngoại lệ

Quy tắc nghiệp vụ


1. Nếu không có bất kì giáo viên nào ở danh sách giáo viên chưa có trong lớp,
ngưng thực hiện use case

39
GVCN: Huỳnh Anh Tuấn

Tên use case Xóa giáo viên khỏi lớp


Tác nhân chính Admin
Tác nhân phụ Không có
Mức 3
Người chịu trách Quản trị viên hệ thống
nhiệm
Điều kiện tiên quyết - Người dùng đã đăng nhập
- Người dùng là quản trị viên
Đảm bảo tối thiểu Hệ thống ngưng tìm kiếm và thông báo thất bại
(kết quả không
thành công)
Đảm bảo thành công Hiển thị danh sách lớp
Kích hoạt Admin chọn “Xóa” từ Form xếp lớp
Chuỗi sự kiện chính
1. Người dùng thao tác với dòng dữ liệu của danh sách giáo viên chưa có trong
lớp
2. Người dùng nhấn “Xóa”, giáo viên được xóa khỏi lớp
3. Người dùng tiếp tục thao tác để thực hiện các chức năng khác
Ngoại lệ

Quy tắc nghiệp vụ


1. Nếu không có bất kì giáo viên nào ở danh sách giáo viên đã có trong lớp,
ngưng thực hiện use case

40
GVCN: Huỳnh Anh Tuấn

Usecase8
Tên use case Thêm tài khoản
Tác nhân chính Admin
Mức 2
Người chịu trách Người quản trị hệ thống
nhiệm
Điều kiện tiên Admin đã đăng nhập với vai trò Admin
quyết
Đảm bảo tối thiểu Hệ thống loại bỏ các thông tin đã thêm và quay lại bước trước
Đảm bảo thành Thông tin tài khoản mới được bổ sung vào cơ sở dữ liệu
công
Kích hoạt Admin chọn chức năng ‘Quản trị hệ thống’ từ menu chính
Chuỗi sự kiện chính
1. Hệ thống hiển thị form Cập nhật thông tin phụ huynh và giáo viên theo chế
độ ‘Xem’. Admin có thể thao tác tới/lui giữa các dòng thông tin tài khoản.
2. Admin nhấn nút “Thêm”, xóa trắng các trường thông tin, lúc này form sẽ
chuyển trạng thái thành “Thêm”.
3. Admin tiến thành nhập thông tin cá nhân và nhấn nút “Lưu”.
4. Hệ thống nhận thông tin vừa nhập sau đó tiến thành lưu vào cơ sở dữ liệu.
5. Hiển thị lưu thành công, chuyển trạng thái của form thành “Xem”.
Ngoại lệ
3.a Một trong những trường thông tin chưa được nhập
3.a.1 Thông báo yêu cầu nhập đầy đủ các trường thông tin
3.a.2 Quay lại bước 3
4.a Hệ thống ghi nhận đã có tên tài khoản người dùng vừa nhập
4.a.1 Thông báo tài khoản vừa nhập không hợp lệ
4.a.2 Quay lại bước 3
4.b Hệ thống ghi nhận trùng căn cước công dân
4.a.1 Thông báo trùng căn cước công dân
4.a.2 Quay lại bước 3
Quy tắc nghiệp vụ
1. Thông tin tài khoản bao gồm: tài khoản, mật khẩu, họ tên, giới tính, ngày sinh,
địa chỉ, số điện thoại, căn cước (nếu là giáo viên thì sẽ thêm mã môn học)
2. Trạng thái “Xem” và “sửa” phụ thuộc vào người dùng đang thao tác với loại tài
khoản nào, nếu đang thao tác với loại giáo viên thì trạng thái sẽ là “Xem giáo
viên” và “Thêm giáo viên”, nếu đang thao tác với phụ huynh thì sẽ là “Xem phụ

41
GVCN: Huỳnh Anh Tuấn

huynh” và “Thêm phụ huynh”

42
GVCN: Huỳnh Anh Tuấn

Tên use case Sửa tài khoản


Tác nhân chính Admin
Tác nhân phụ Không có
Mức 3
Người chịu trách Người quản trị hệ thống
nhiệm
Điều kiện tiên quyết - Người dùng đã đăng nhập
- Người dùng là quản trị viên hệ thống
Đảm bảo tối thiểu Hệ thống ngưng sửa tài khoản và quay lại bước trước
(kết quả không
thành công)
Đảm bảo thành công Thông tin cá nhân của phụ huynh, giáo viên được chỉnh
sửa và lưu vào chỗ tương ứng trong cơ sở dữ liệu
Kích hoạt Admin chọn “Quản trị hệ thống” từ trang chủ
Chuỗi sự kiện chính
1. Hệ thống hiển thị form cập nhật tài khoản, form lúc này được chuyển thành
trạng thái “Xem”, các trường dữ liệu có thể nhập được xóa trắng, các dòng dữ liệu
về tài khoản được nạp lên từ cơ sở dữ liệu, người dùng có thể tương tác tới/lùi với
các dòng dữ liệu này
2. Admin chọn tài khoản trên danh sách tài khoản sau đó nhấn vào nút “Sửa”,
form cập nhật tài khoản nạp dữ liệu của phụ huynh hoặc giáo viên được chọn lên
các trường, form lúc này chuyển thành trạng thái “Sửa”
3. Tiến hành điền các trường thông tin cần thiết và nhấn nút sửa
4. Hệ thống cập nhật thông tin phụ huynh, giáo viên vào cơ sở dữ liệu
5. Thông báo sửa thành công, chuyển trạng thái của form thành “Xem” để Admin
tiếp tục thực hiện các chức năng khác
Ngoại lệ
3.a Một trong những trường thông tin chưa được nhập
3.a.1 Thông báo yêu cầu nhập đầy đủ các trường thông tin
3.a.2 Quay lại bước 3
4.a Các trường thông tin cần thiết không nhập đủ
4.a.1 Thông báo nhập lại đầy đủ các trường thông tin
4.a.2 Quay lại bước 3
4.b Hệ thống ghi nhận trùng căn cước công dân
4.a.1 Thông báo trùng căn cước công dân

43
GVCN: Huỳnh Anh Tuấn

4.a.2 Quay lại bước 3


Quy tắc nghiệp vụ
1. Quản lý tài khoản mặc định sẽ ở trạng thái “Xem”
2. Thông tin tài khoản bao gồm: tài khoản, mật khẩu, họ tên, giới tính, ngày sinh,
địa chỉ, số điện thoại, căn cước (nếu là giáo viên thì sẽ thêm mã môn học) Riêng
tài khoản và mã người thì không thể bị thay đổi
3. Trạng thái “Xem” và “sửa” phụ thuộc vào người dùng đang thao tác với loại tài
khoản nào, nếu đang thao tác với loại giáo viên thì trạng thái sẽ là “Xem giáo
viên” và “Sửa giáo viên”, nếu đang thao tác với phụ huynh thì sẽ là “Xem phụ
huynh” và “Sửa phụ huynh”

44
GVCN: Huỳnh Anh Tuấn

Tên use case Xóa tài khoản


Tác nhân chính Admin
Tác nhân phụ Không có
Mức 2
Người chịu trách Người quản trị hệ thống
nhiệm
Điều kiện tiên quyết - Người dùng đã đăng nhập
- Người dùng là quản trị viên hệ thống
Đảm bảo tối thiểu Hệ thống ngưng sửa tài khoản và quay lại bước trước
(kết quả không
thành công)
Đảm bảo thành công Thông tin của phụ huynh, giáo viên được chỉnh sửa và lưu
vào chỗ tương ứng trong cơ sở dữ liệu
Kích hoạt Admin chọn “Quản trị hệ thống” từ trang chủ
Chuỗi sự kiện chính
1. Hệ thống hiển thị form cập nhật tài khoản, form lúc này được chuyển thành
trạng thái “Xem”, các trường dữ liệu có thể nhập được xóa trắng, các dòng dữ liệu
về phụ huynh, giáo viên được nạp lên từ cơ sở dữ liệu, người dùng có thể tương
tác tới/lùi với các dòng dữ liệu này
2. Admin chọn tài khoản trên danh sách phụ huynh, giáo viên sau đó nhấn vào nút
“Xóa”, Form lúc này chuyển thành trạng thái “Xóa”
3. Thông báo xác nhận xóa tài khoản, khi người dùng nhấn xóa, tiến hành xóa tài
khoản tương ứng dựa trên mã người ra khỏi cơ sở dữ liệu
4. Thông báo xóa thành công, chuyển trạng thái của form thành “Xem” để Admin
tiếp tục thực hiện các chức năng khác
Luồng sự kiện phụ
3.a Người dùng chọn “Cancel” ở bảng xác nhận
3.a.1 Ngưng xóa, chuyển trạng thái form thành “Xem”
Quy tắc nghiệp vụ
1. Khác với thêm, sửa và xem, trạng thái “Xóa” không phụ thuộc vào người dùng
đang thao tác với loại tài khoản nào, khi xóa, chỉ cần đọc trạng thái “Xem” và
“Xem” có thể là “Xem giáo viên” hoặc “Xem phụ huynh”

45
GVCN: Huỳnh Anh Tuấn

Tên use case Tìm kiếm tài khoản


Tác nhân chính Admin
Tác nhân phụ Không có
Mức 2
Người chịu trách Quản trị viên hệ thống
nhiệm
Điều kiện tiên quyết - Người dùng đã đăng nhập
- Người dùng là quản trị viên
Đảm bảo tối thiểu Hệ thống ngưng tìm kiếm
(kết quả không
thành công)
Đảm bảo thành công Hiển thị danh sách tài khoản
Kích hoạt Admin chọn “Quản trị hệ thống” từ trang chủ
Chuỗi sự kiện chính
1. Hệ thống hiển thị các danh sách tài khoản, mặc định, form sẽ hiển thị danh sách
các tài khoản của giáo viên, form lúc này chuyển thành trạng thái “Xem giáo
viên”
2. Người dùng có thể thao tác tới/lui giữa các dòng tài khoản hoặc chọn các chức
năng khác để tiếp tục
Ngoại lệ

Quy tắc nghiệp vụ


1. Để thao tác liên quan đến giáo viên, người dùng nhấn nút “Giáo viên”, ngược
lại thì nhấn nút “Phụ huynh” ở dòng “Loại”, trạng thái “Xem” có thể là “Xem
giáo viên” hoặc “Xem phụ huynh”

46
GVCN: Huỳnh Anh Tuấn

III. MÔ HÌNH HÓA LĨNH VỰC ỨNG DỤNG


1. Xác định các Entity Class

2. Xác định mối liên kết (Association) giữa các class thực thể.

3. Vẽ Entity Class Diatram (biểu đồ lớp thực thể) cho ứng dụng

IV. PHÂN TÍCH THEO TỪNG USE CASE [Bước 4, 7, 5, 6]


1. Use Case Đăng nhập
1.1. Xác định các đối tượng /lớp tham gia use case
a) Xét trong use case này:
- Có những class thực thể:
Class T_TaiKhoan là tập hợp các thực thể tài khoản của lớp TaiKhoan
Class T_Nguoi là tập các thực thể người của lớp Nguoi
- Các class giao diện, class điều khiển để thực hiện use case
Class FormDangNhap
Class FormMain
Class ControllerMain
Class ControllerDangNhap
b) Có thể thực hiện thiết kế giao diện của use case ngay từ đây

47
GVCN: Huỳnh Anh Tuấn

c) Bổ sung thuộc tính và method cho các class giao diện, điều khiển.
Class FormDangNhap
Thuộc tính Phương thức
ctDangNhap: ControllerDangNhap ShowDangNhap()
txt_tenDangNhap : string. ResetForm()
txt_matKhau : string btnDangnhap_Click()
btnThoat_Click()
ThongBao()

48
GVCN: Huỳnh Anh Tuấn

CLASS FormMain
Thuộc tính Phương thức
ctMain : ControllerMain ShowMain()
HienThiNut()
ChonTraCuuHS()
ChonXemSoDiem()
ChonTKdiemLD()
ChonTKdiemTK()
ChonQLSoDiem()
ChonCapNhatHS()
ChonCapNhatLop()
ChonQuanTriHT()

Class ControllerMain
Thuộc tính Phương thức
ctDangNhap: ControllerDangNhap RunDangNhap()
formMain: FormMain SetNguoiDung()
nguoiDung : Nguoi RunTraCuuHS()
RunXemSoDiem()
RunQLSoDiem()
RunCapNhatHS()
RunCapNhatLop()
RunTKdiemLD()
RunTKdiemTK()

Class ControllerDangNhap
Thuộc tính Phương thức
ctMain : ControllerMain Khoitao()
forDangNhap : FormDangNhap XuLyDangNhap()
t_NguoiDung : T_NguoiDung KetThucDangNhap()

49
GVCN: Huỳnh Anh Tuấn

d) Vẽ Class Diagram cho use case

1.2. Vẽ Sequence Diagram và Activity Diagram của use


a) Căn cứ nội dung đặc tả của use case để vẽ Sequence Diagram.

: Nguoi dung Actor : FormMain : ControllerMain : FormDangNhap : ControllerDangNhap : T_TaiKhoan : T_Nguoi


1: RunDangNhap( )

2: KhoiTao( )

3: NapDuLieu( )

4: NapDuLieu( )

5: ShowDangNhap( )

6: Nhap ten dang nhap va mat khau


7: XuLyDangNhap
(string, string)

8: XacThucTK(string, string)

9: ma nguoi [mn]

10: TimNguoi(string)

11: nguoiDung [nd]

12: ThongBao(string)

13: KetThucDangNhap( )

14: SetNguoiDung(Nguoi)

15: HienThiNut(str...

16: ShowMain( )

b) Vẽ Activity Diagram:

50
GVCN: Huỳnh Anh Tuấn

Khoi dong
phan mem

Xoa trang cac Nhap tai khoan


truong thong tin & mat khau

Kiem tra thong


tin

[Sai tai khoan hoac mat khau] [Dung thong tin]

Tim va tra ve doi


tuong nguoi dung

Dong form hien tai va set


nguoi dung cho trang chu

Hien thi cac nut


bam tuong ung

51
GVCN: Huỳnh Anh Tuấn

2. Use Case tra cứu học sinh


2.1. Xác định các đối tượng /lớp tham gia use case
a) Xét trong use case này:
- Có những class thực thể:
Class T_HocSinh là tập hợp các thực thể tài khoản của lớp HocSinh
- Các class giao diện, class điều khiển để thực hiện use case
Class FormTraCuuHS
Class ControllerTraCuuHS
Class FormMain
Class ControllerMain
b) Nguyên mẫu giao diện

c) Bổ sung thuộc tính và method cho các class giao diện, điều khiển.
Class FormTraCuuHS
Thuộc tính Phương thức
ctTraCuuHS : ControllerTraCuuHS ShowTraCuuHS()
cbTieuChi : ComboBox SetData()
dgvDanhSachHS : DataGridView btnTraCuuHS_Click()
btnThoat_Click()
Thongbao()

52
GVCN: Huỳnh Anh Tuấn

SetDataTC()

Class ControllerTraCuuHS
Thuộc tính Phương thức
formTraCuuHS : FormTraCuuHS Khoitao()
t_Học Sinh : T_Hoc Sinh XuLyDangNhap()
KetThucDangNhap()

Class FormMain
Thuộc tính Phương thức
ctMain: ControllerMain ShowMain()
HienThiNut()
ChonTraCuuHS()
ChonXemSoDiem()
ChonTKdiemLD()
ChonTKdiemTK()
ChonQLSoDiem()
ChonCapNhatHS()
ChonCapNhatLop()
ChonQuanTriHT()

Class ControllerMain
Thuộc tính Phương thức
ctDangNhap: ControllerDangNhap RunDangNhap()
formMain: FormMain SetNguoiDung()
nguoiDung: Nguoi RunTraCuuHS()
RunXemSoDiem()
RunQLSoDiem()
RunCapNhatHS()
RunCapNhatLop()

53
GVCN: Huỳnh Anh Tuấn

RunTKdiemLD()
RunTKdiemTK()
RunQuan TriHT()

d) Vẽ Class Diagram cho use case

HocSinh
(from Entities)
maHS : string
maPH : string
FormTraCuuHS ControllerTraCuuHS T_HocSinh maLop : string
(from Boundaries) (from Control lers) (from Entities)

ctTraCuuHS : ControllerTraCuuHS formTraCuuCS : FormTraCuuHS


cbTieuChi : ComboBox t_HocSinh : T_HocSinh NapDuLieu()
dgvDanhSachHS : DataGridView ThemHS()
KhoiTao() SuaHS()
ShowTraCuuHS() XuLyTraCuu() XoaHS()
SetData() KetThucTraCuu() TimHS()
btnTraCuuHS_Click() GetAllHStheoPH()
btnThoat_Click() GetAllHStheoLop()
Thongbao() GetAllHStheoTC()
SetDataTC() KiemTraThongTinHS()

FormMain ControllerMain
(from QuanLy) (from QuanLy)
ctMain : ControllerMain ctDangNhap : ControllerDangNhap
formMain : FormMain
ShowMain() nguoiDung : Nguoi
HienThiNut()
ChonTraCuuHS() RunDangNhap()
ChonXemSoDiem() SetNguoiDung()
ChonTKdiemLD() RunTraCuuHS()
ChonTKdiemTK() RunXemSoDiem()
ChonQLSoDiem() RunQLSoDiem()
ChonCapNhatHS() RunCapNhatHS()
ChonCapNhatLop() RunCapNhatLop()
ChonQuanTriHT() RunTKdiemLD()
RunTKdiemTK()
RunQuanTriHT()

2.2. Vẽ Sequence Diagram và Activity Diagram của use case


a) Căn cứ nội dung đặc tả của use case để vẽ Sequence Diagram.
Tra cứu học sinh

54
GVCN: Huỳnh Anh Tuấn

: Nguoi dung Actor : FormMain : ControllerMain : FormTraCuuHS : ControllerTraCuuHS : T_HocSinh


1: HienThiNut(string)

2: ShowMain( )

3: ChonTraCuuHS( )

4: RunTraCuuHS( )

5: KhoiTao( )

6: NapDuLieu( )

7: ShowTraCuuHS( )

8: Chon tieu chi va nhap tu khoa

9: XuLyTraCuu(string, string)

10: GetAllHStheoTC(string, string)

11: bang du lieu [dt]

12: SetData(DataTable)

b) Vẽ Activity Diagram:

55
GVCN: Huỳnh Anh Tuấn

Chon tra cuu


hoc sinh

Hien thi man


hinh tra cuu

Chon tieu chi va


nhap tu khoa

Thong bao Kiem tra thong


thieu thong tin tin nhap

[ Thieu thong tin ]


[Nhap day du cac thong tin]

Tim kiem cac hoc sinh


thoa man tieu chi

Hien thi cac hoc


sinh len form

56
GVCN: Huỳnh Anh Tuấn

3. Use Case xem sổ điểm


3.1. Xác định các đối tượng /lớp tham gia use case
a) Xét trong use case này:
- Có những class thực thể:
Class T_SoDiem là tập hợp các thực thể tài khoản của lớp KetQuaHocTap
- Các class giao diện, class điều khiển để thực hiện use case
Class FormXemSoDiem
Class ControllerXemSoDiem
Class FormMain
Class ControllerMain
b) Nguyên mẫu giao diện

57
GVCN: Huỳnh Anh Tuấn

c) Bổ sung thuộc tính và method cho các class giao diện, điều khiển.
Class FormXemSoDiem
Thuộc tính Phương thức
ShowSoDiem()

58
GVCN: Huỳnh Anh Tuấn

Class ControllerXemSoDiem
Thuộc tính Phương thức
formXemSoDiem: FormXemSoDiem KhoiTao()
formSoDiemHS: FormSoDiemHS XuLyXemSoDiem()
SoDiem: T_SoDiem KetThucXemSoDiem()
phuHuynh : Nguoi
Class FormMain
Thuộc tính Phương thức
ctMain: ControllerMain ShowMain()
Hien ThiNut()
ChonTraCuuHS()
ChonXemSoDiem()
ChonTKdiemLD()
ChonTKdiemTK()
ChonQLSoDiem()
ChonCapNhatHS()
ChonCapNhatLop()
ChonQuanTriHT()

Class ControllerMain
Thuộc tính Phương thức
ctDangNhap: ControllerDangNhap RunDangNhap()
formMain: FormMain SetNguoiDung()
nguoiDung: Nguoi RunTraCuuHS()
RunXemSoDiem()
RunQLSoDiem()
RunCapNhatHS()
RunCapNhatLop()
RunTKdiemLD()
RunTKdiemTK()

59
GVCN: Huỳnh Anh Tuấn

RunQuan TriHT()

d) Vẽ Class Diagram cho use case

3.2. Vẽ Sequence Diagram và Activity Diagram của use case


a) Căn cứ nội dung đặc tả của use case để vẽ Sequence Diagram.

: Phu huynh Actor : FormMain : ControllerMain : FormXemSoDiem : ControllerXemSoDiem : T_SoDiem


1: HienThiNut(string)

2: ShowMain( )

3: ChonXemSoDiem( )

4: RunXemSoDiem( )

5: KhoiTao(Nguoi)

6: GetSoDiemTheoPH(string)

7: Danh sach bang diem [dt]

8: XuLyXemSoDiem( )

9: ShowSoDiem(DataTable)

60
GVCN: Huỳnh Anh Tuấn

4. Use Case thống kê điểm lớp dạy


4.1. Xác định các đối tượng /lớp tham gia use case
a) Xét trong use case này:
- Có những class thực thể:
Class T_NienKhoa là tập hợp các thực thể tài khoản của lớp NienKhoa
Class T_HocKi là tập hợp các thực thể tài khoản của lớp HocKi
Class T_LopHoc là tập hợp các thực thể tài khoản của lớp LopHoc
- Các class giao diện, class điều khiển để thực hiện use case
Class FormTKdiemLD
Class FormTCTKdiemLD
Class ControllerTKdiemLD
Class FormMain
Class ControllerMain
b) Nguyên mẫu giao diện

c) Bổ sung thuộc tính và method cho các class giao diện, điều khiển.
Class FormTKdiemLD
Thuộc tính Phương thức

61
GVCN: Huỳnh Anh Tuấn

ShowThongKe()

Class FormTCTKdiemLD
Thuộc tính Phương thức
ctTKdiemLD: ControllerTKdiemLD SetData()
btnThongKe_Click()
btnThoat_Click()
ThongBao()
ShowTCTK()

Class ControllerTKdiemLD
Thuộc tính Phương thức
formTKDiemLD: FormTKdiemLD Khoi Tao()
formTCTKdiemLD: XuLyThongKe()
FormTCTKdiemLD KetThucThongKe()
t_NienKhoa: T_NienKhoa
t_Hocki: T_Hocki
t_LopHoc: T_LopHoc

Class FormMain
Thuộc tính Phương thức
ctMain: ControllerMain ShowMain()
HienThiNut()
ChonTraCuuHS()
ChonXemSoDiem()
ChonTKdiemLD()
ChonTKdiemTK()
ChonQLSoDiem()
ChonCapNhatHS()

62
GVCN: Huỳnh Anh Tuấn

ChonCapNhatLop()
ChonQuanTriHT()

Class ControllerMain
Thuộc tính Phương thức
ctDangNhap: ControllerDangNhap RunDangNhap()
formMain: FormMain SetNguoiDung()
nguoiDung: Nguoi RunTraCuuHS()
RunXemSoDiem()
RunQLSoDiem()
RunCapNhatHS()
RunCapNhatLop()
RunTKdiemLD()
RunTKdiemTK()
RunQuan TriHT()

d) Vẽ Class Diagram cho use case

4.2. Vẽ Sequence Diagram và Activity Diagram của use case


a) Căn cứ nội dung đặc tả của use case để vẽ Sequence Diagram.

63
GVCN: Huỳnh Anh Tuấn

: FormMain : ControllerMain : FormTKdiemLD : FormTCTKdiemLD : ControllerTKdiemLD : T_SoDiem : T_NienKhoa : T_LopHoc : T_HocKi


: Giao vien Actor
1: HienThiNut(str...

2: ShowMain( )

3: ChonTKdiemLD( )

4: RunTKdiemLD( )

5: KhoiTao( )

6: NapDuLieu( )

7: NapDuLieu( )

8: NapDuLieu( )
9: SetData(DataTable, DataTable, DataTable)

10: ShowTCTK( )

11: Nhap cac tieu chi thong ke


12: XuLyThongKe
(string, int, string)
13: GetSoDiemTheoGV(string, int, string)

14: Danh sach so


diem [dt]

15: ShowThongKe(DataTable)

b) Vẽ Activity Diagram:
- Vẽ Activity Diagram của use case nếu Sequence Diagram chưa mô tả đầy
đủ các luồng xử lý rẽ nhánh.
- Vẽ Activity Diagram cho các method phức tạp của các class trong use
case
4.3. Vẽ State Machine Diagram
Vẽ State Machine Diagram cho các object /class có trạng thái thay đổi
Nếu use case không có Object /Class nào có trạng thái cần mô tả thì bỏ qua

64
GVCN: Huỳnh Anh Tuấn

5. Use Case thống kê điểm toàn khối


5.1. Xác định các đối tượng /lớp tham gia use case
a) Xét trong use case này:
- Có những class thực thể:
Class T_NienKhoa là tập hợp các thực thể tài khoản của lớp NienKhoa
Class T_HocKi là tập hợp các thực thể tài khoản của lớp HocKi
Class T_LopHoc là tập hợp các thực thể tài khoản của lớp LopHoc
Class T_MonHoc là tập hợp các thực thể tài khoản của lớp MonHoc
- Các class giao diện, class điều khiển để thực hiện use case
Class FormTKdiemLD
Class FormTCTKdiemLD
Class ControllerTKdiemLD
Class FormMain
Class ControllerMain
b) Nguyên mẫu giao diện

c) Bổ sung thuộc tính và method cho các class giao diện, điều khiển.
Class FormTKdiemLD
Thuộc tính Phương thức

65
GVCN: Huỳnh Anh Tuấn

ShowThongKe()

Class FormTCTKdiemLD
Thuộc tính Phương thức
ctTKdiemLD: ControllerTKdiemLD SetData()
btnThongKe_Click()
btnThoat_Click()
ThongBao()
ShowTCTK()

Class ControllerTKdiemLD
Thuộc tính Phương thức
formTKDiemLD: FormTKdiemLD Khoi Tao()
formTCTKdiemLD: XuLyThongKe()
FormTCTKdiemLD KetThucThongKe()
t_NienKhoa: T_NienKhoa
t_Hocki: T_Hocki
t_LopHoc: T_LopHoc

Class FormMain
Thuộc tính Phương thức
ctMain: ControllerMain ShowMain()
HienThiNut()
ChonTraCuuHS()
ChonXemSoDiem()
ChonTKdiemLD()
ChonTKdiemTK()
ChonQLSoDiem()
ChonCapNhatHS()

66
GVCN: Huỳnh Anh Tuấn

ChonCapNhatLop()
ChonQuanTriHT()

Class ControllerMain
Thuộc tính Phương thức
ctDangNhap: ControllerDangNhap RunDangNhap()
formMain: FormMain SetNguoiDung()
nguoiDung: Nguoi RunTraCuuHS()
RunXemSoDiem()
RunQLSoDiem()
RunCapNhatHS()
RunCapNhatLop()
RunTKdiemLD()
RunTKdiemTK()
RunQuan TriHT()

d) Vẽ Class Diagram cho use case

5.2. Vẽ Sequence Diagram và Activity Diagram của use case


a) Căn cứ nội dung đặc tả của use case để vẽ Sequence Diagram.

67
GVCN: Huỳnh Anh Tuấn

: Admin Actor : FormMain : ControllerMain : FormTKdiemTK : FormTCTKdiemTK : ControllerTKdiemTK : T_SoDiem : T_LopHoc : T_MonHoc : T_HocKi : T_NienKhoa
1: HienThiNut(str...

2: ShowMain( )

3: ChonTKdiemTK( )

4: RunTKdiemTK( )

5: KhoiTao( )

6: GetAllKhoi( )

7: NapDuLieu( )

8: NapDuLieu( )

9: NapDuLieu( )
10: SetData(DataTable, DataTable, DataTable, DataTable)

11: ShowTCTK( )

12: Nhap cac tieu chi thong ke


13: XuLyThongKe(string, int,
int, string)
14: GetSoDiemTheoTC(string, int, int, String)

15: danh sach


diem [dt]
16: ShowThongKe(DataTable)

68
GVCN: Huỳnh Anh Tuấn

6. Use Case quản lý sổ điểm


6.1. Xác định các đối tượng /lớp tham gia use case
a) Xét trong use case này:
- Có những class thực thể:
Class T_SoDiem là tập hợp các thực thể tài khoản của lớp KetQuaHocTap
Class T_HocSinh là tập hợp các thực thể tài khoản của lớp HocSinh
Class T_HocKi là tập hợp các thực thể tài khoản của lớp HocKi
Class T_NienKhoa là tập hợp các thực thể tài khoản của lớp NienKhoa
Class T_LopHoc là tập hợp các thực thể tài khoản của lớp LopHoc
- Các class giao diện, class điều khiển để thực hiện use case
Class FormSoDiemCT
Class ControllerQLSoDiem
Class FormQLSoDiem
Class FormMain
Class ControllerMain
b) Nguyên mẫu giao diện

69
GVCN: Huỳnh Anh Tuấn

c) Bổ sung thuộc tính và method cho các class giao diện, điều khiển.
Class FormSoDiemCT
Thuộc tính Phương thức
ctQLSoDiem: ControllerQLSoDiem btnThem_Click()
dgvDanhSachDiem : DataGridView btnSua_Click()
cbMaDiem: ComboBox btnXoa_Click()
txt_giaTriDiem: double btnLuu_Click()
btnThoat_Click()
SetData()
ThongBao()
ResetForm()
DoiTrangThai()
ShowSoDiemCT()
GetTrangThai()
SetDataFromGrid()

Class ControllerQLSoDiem
Thuộc tính Phương thức
t_SoDiem: T_SoDiem Khoi Tao()

70
GVCN: Huỳnh Anh Tuấn

formQLSoDiem: FormQLSoDiem XuLyTimKiemSoDiem()


nienKhoa: NienKhoa KetThucQLSoDiem()
giaoVien: Nguoi XuLyThemDiem()
hocKi: Hocki CapNhatDiem()
t_HocSinh: T_HocSinh XuLySuaDiem()
t_MonHoc: T_MonHoc XuLyXoaDiem()
monHoc: MonHoc XuLyLuuDiem()
maHS: string

Class FormQLSoDiem
Thuộc tính Phương thức
CtQLSoDiem: ControllerQLSoDiem btnTimKiem_Click()
cbkhoi: ComboBox btnCapNhat_Click()
dgvDanhSachHS: DataGridView SetData()
ShowQLSoDiem()
ThongBao()
SetDataHS()

Class FormMain
Thuộc tính Phương thức
ctMain: ControllerMain ShowMain()
HienThiNut()
ChonTraCuuHS()
ChonXemSoDiem()
ChonTKdiemLD()
ChonTKdiemTK()
ChonQLSoDiem()
ChonCapNhatHS()
ChonCapNhatLop()
ChonQuanTriHT()

71
GVCN: Huỳnh Anh Tuấn

Class ControllerMain
Thuộc tính Phương thức
ctDangNhap: ControllerDangNhap RunDangNhap()
formMain: FormMain SetNguoiDung()
nguoiDung: Nguoi RunTraCuuHS()
RunXemSoDiem()
RunQLSoDiem()
RunCapNhatHS()
RunCapNhatLop()
RunTKdiemLD()
RunTKdiemTK()
RunQuanTriHT()

d) Vẽ Class Diagram cho use case


Thêm điểm

Sửa điểm

72
GVCN: Huỳnh Anh Tuấn

Xóa điểm

Tìm kiếm học sinh trong 1 lớp

73
GVCN: Huỳnh Anh Tuấn

HocSinh
(from Enti ti es)
maHS : string
maPH : string
ControllerQLSoDiem T_HocSinh maLop : string
FormQLSoDiem
(from Control lers) (from Enti ti es)
(from Boundari es)
t_SoDiem : T_SoDiem
ctQLSoDiem : ControllerQLSoDiem formQLSoDiem : FormQLSoDiem NapDuLieu()
cbKhoi : ComboBox nienKhoa : NienKhoa ThemHS()
dgvDanhSachHS : DataGridView giaoVien : Nguoi SuaHS()
hocKi : HocKi T_HocKi XoaHS()
btnTimKiem_Click() t_HocSinh : T_HocSinh TimHS()
btnCapNhat_Click() (from Enti ti es)
t_MonHoc : T_MonHoc GetAllHStheoPH()
SetDataLop() monHoc : MonHoc GetAllHStheoLop()
ShowQLSoDiem() maHS : string NapDuLieu() GetAllHStheoTC()
ThongBao() GetHKhienTai() KiemTraThongTinHS()
SetDataHS() KhoiTao()
XuLyTimKiemSoDiem()
KetThucQLSoDiem()
XuLyThemDiem()
CapNhatDiem() HocKi
(from Enti ti es)
XuLySuaDiem()
XuLyXoaDiem() maHK : int
FormMain XuLyLuuDiem()
T_NienKhoa
(from QuanLy)
ControllerMain T_LopHoc (from Enti ti es)
ctMain : ControllerMain
(from QuanLy) (from Enti ti es)
ShowMain() NapDuLieu()
ctDangNhap : ControllerDangNhap
HienThiNut() GetNKchoSoDiem()
formMain : FormMain NapDuLieu()
ChonTraCuuHS() GetNKhienTai()
nguoiDung : Nguoi GetAllLHtheoGV()
ChonXemSoDiem() GetAllKhoi()
ChonTKdiemLD() RunDangNhap()
ChonTKdiemTK() SetNguoiDung() NienKhoa
ChonQLSoDiem() RunTraCuuHS()
(from Enti ti es)
ChonCapNhatHS() LopHoc maNK : string
RunXemSoDiem() (from Enti ti es)
ChonCapNhatLop() RunQLSoDiem()
ChonQuanTriHT() maLop : string
RunCapNhatHS()
khoi : int
RunCapNhatLop()
RunTKdiemLD()
RunTKdiemTK()
RunQuanTriHT()

Tìm kiếm sổ điểm của 1 học sinh

KetQuaHocTap
(from Enti ties)

FormSoDiemCT maNK : string


T_SoDiem maHK : int
(from Boundaries)
ControllerQLSoDiem maMH : string
ctQLSoDiem : ControllerQLSoDiem (from Enti ties)
maHS : string
dgvDanhSachDiem : DataGridView (from Control lers)
maDiem : string
cbMaDiem : ComboBox t_SoDiem : T_SoDiem NapDuLieu() ngayGio : DateTime
txt_giaTriDiem : double formQLSoDiem : FormQLSoDiem ThemDiem() giaTriDiem : double
nienKhoa : NienKhoa SuaDiem()
btnThem_Click() giaoVien : Nguoi XoaDiem()
btnSua_Click() hocKi : HocKi GetSoDiemHS()
btnXoa_Click() t_HocSinh : T_HocSinh GetDiemMH()
btnLuu_Click() t_MonHoc : T_MonHoc KiemTraRangBuocDiem()
btnThoat_Click() monHoc : MonHoc GetSoDiemTheoPH()
SetData() maHS : string GetSoDiemTheoGV()
ThongBao() GetSoDiemTheoTC()
ResetForm() KhoiTao()
DoiTrangThai() XuLyTimKiemSoDiem()
ShowSoDiemCT() KetThucQLSoDiem()
GetTrangThai() XuLyThemDiem() MonHoc
SetDataFromGrid() CapNhatDiem() (from Enti ties)
XuLySuaDiem()
T_MonHoc maMH : string
XuLyXoaDiem()
tenMH : string
FormQLSoDiem XuLyLuuDiem() (from Enti ties)

(from Boundaries)
NapDuLieu()
ctQLSoDiem : ControllerQLSoDiem
GetMHtheoGV()
cbKhoi : ComboBox
dgvDanhSachHS : DataGridView

btnTimKiem_Click()
btnCapNhat_Click()
SetDataLop()
ShowQLSoDiem()
ThongBao()
SetDataHS()

6.2. Vẽ Sequence Diagram và Activity Diagram của use case


a) Căn cứ nội dung đặc tả của use case để vẽ Sequence Diagram.
Tìm kiếm số điểm học sinh cụ thể

74
GVCN: Huỳnh Anh Tuấn

: Giao vien Actor : FormQLSoDiem : FormSoDiemCT : ControllerQLSoDiem : T_SoDiem : T_MonHoc

1: Chon hoc sinh va


nhan cap nhat

2: CapNhatDiem(string)

3: GetMHtheoGV(string)

4: mon hoc [mh]

5: GetSoDiemHS(string, string, string)

6: SetData(DataTable)

7: DoiTrangThai(String)

8: ShowSoDiemCT( )

Tìm kiếm số điểm tất cả học sinh một lớp

: Nguoi dung Actor : FormMain : : FormTraCuuHS : ControllerTraCuuHS : T_HocSinh


ControllerMain
1: HienThiNut(string)

2: ShowMain( )

3: ChonTraCuuHS( )

4: RunTraCuuHS( )

5: KhoiTao( )

6: NapDuLieu( )

7: ShowTraCuuHS( )

8: Chon tieu chi va nhap tu khoa

9: XuLyTraCuu(string, string)

10: GetAllHStheoTC(string, string)

11: bang du lieu [dt]

12: SetData(DataTable)

Thêm điểm

75
GVCN: Huỳnh Anh Tuấn

: Giao vien Actor : FormSoDiemCT : ControllerQLSoDiem : T_SoDiem


1: Nhan them

2: XuLyThemDiem( )

3: DoiTrangThai(String)

4: ResetForm( )

5: Nhap diem va nhan luu

6: XuLyLuuDiem(string, string)

7: KiemTraRangBuocDiem(string)

8: ket qua [kq]

9: ThemDiem(KetQuaHocTap)

10: ket qua [kq]

11: GetSoDiemHS(string)

12: SetData(DataTable)

13: ThongBao(String)

14: DoiTrangThai(String)

Sửa điểm

76
GVCN: Huỳnh Anh Tuấn

: Giao vien Actor : FormSoDiemCT : ControllerQLSoDiem : T_SoDiem


1: Chon dong diem va nhan sua

2: XuLySuaDiem( )

3: DoiTrangThai(String)

4: SetDataDiem( )

5: Nhap diem va nhan luu

6: XuLyLuuDiem(string, string)

7: KiemTraRangBuocDiem(string)

8: ket qua [kq]

9: SuaDiem(KetQuaHocTap)

10: ket qua [kq]

11: GetSoDiemHS(string)

12: SetData(DataTable)

13: ThongBao(String)

14: DoiTrangThai(String)

Xóa điểm

: Giao vien Actor : FormSoDiemCT : ControllerQLSoDiem : T_SoDiem


1: Chon dong diem va nhan xoa

2: XuLyXoaDiem(string)

3: ThongBao(String)

4: ket qua [kq]

5: XoaDiem(string)

6: ket qua [kq]

7: GetSoDiemHS(string)

8: SetData(DataTable)

9: ThongBao(String)

b) Vẽ Activity Diagram:
Thêm điểm

77
GVCN: Huỳnh Anh Tuấn

Nhan nut them

Xoa trang form

[Nhan nut huy]

Yeu cau nhap lai Nhap thong tin


diem diem
[Nhan nut luu]

Kiem tra thong


tin diem

[ Sai dinh dang hoac sai rang buoc diem ]


[Dung thong tin]

Them diem vao


co so du lieu

Nap lai du lieu


diem

Thong bao
thanh cong

Sửa điểm

78
GVCN: Huỳnh Anh Tuấn

Chon diem va
nhan nut sua

Hien thi thong


tin ve diem
[Nhan nut huy]

Yeu cau nhap Nhap thong tin


lai diem diem
[Nhan nut luu]

Kiem tra thong


tin diem

[Sai dinh dang hoac rang buoc diem]


[Dung thong tin]
Sua diem tuong
ung trong so du lieu

Nap lai du lieu


diem

Thong bao
thanh cong

Xóa điểm

79
GVCN: Huỳnh Anh Tuấn

Chon diem va nhan


nut xoa

Nhan thong tin


ve diem can xoa

Xac nhan xoa


diem

[Cancel]

[OK]
Xoa diem khoi
co so du lieu

Nap lai du lieu


diem

Thong bao thanh


cong

6.3. Vẽ State Machine Diagram


Nhan nut them Them

Them thanh cong hoac nhan huy

Xem

Sua thanh cong hoac nhan huy

Sua

Nhan nut sua

80
GVCN: Huỳnh Anh Tuấn

7. Use Case cập nhật


7.1. Xác định các đối tượng /lớp tham gia use case
a) Xét trong use case này:
- Có những class thực thể:
Class T_HocSinh là tập hợp các thực thể tài khoản của lớp HocSinh
Class T_PhuHuynh là tập hợp các thực thể tài khoản của lớp PhuHuynh
Class T_GiaoVien_LopHoc là tập hợp các thực thể tài khoản của lớp
GiaoVien_LopHoc
Class T_GiaoVien là tập hợp các thực thể tài khoản của lớp GiaoVien
Class T_LopHoc là tập hợp các thực thể tài khoản của lớp LopHoc
- Các class giao diện, class điều khiển để thực hiện use case
Class FormCapNhatHS
Class ControllerCapNhatHS
Class FormXepLopGiaoVien
Class FormCapNhatLop
Class ControllerCapNhatLop
Class FormMain
Class ControllerMain
b) Nguyên mẫu giao diện

81
GVCN: Huỳnh Anh Tuấn

c) Bổ sung thuộc tính và method cho các class giao diện, điều khiển.
Class FormCapNhatHS
Thuộc tính Phương thức
ctCapNhatHS: ControllerCapNhatHS ShowCapNhatHS()
maNguoi: string ResetForm()
hoTen: string btnThem_Click()
gioTinh: int btnSua_Click()

82
GVCN: Huỳnh Anh Tuấn

ngaySinh: Date btnXoa_Click()


diaChi: string DoiTrangThai()
soDienThoai: string SetData()
soCanCuoc string ThongBao()
loai: string btnThoat_Click()
dgvDSHoc Sinh: DataGridView SetDataHS()
dgvDSPhuHuynh: DataGridView GetDataHS()
GetTrangThai()
GetGridData()
SetDataFromGrid()

Class ControllerCapNhatHS
Thuộc tính Phương thức
formCapNhatHS: FormCapNhatHS KhoiTao()
t_Hoc Sinh: T_HocSinh XuLyThemHS()
hocSinh : HocSinh XuLySuaHS()
XuLyXoaHS()
KetThucCapNhatHS()
XuLyLuuHS()
GetData()
KiemTraThongTin()

Class FormXepLopGiaoVien
Thuộc tính Phương thức
ctCapNhatLop: btnxepLopHS_Click()
ControllerCapNhatLop btnxepLopGV_Click()
dgvDSLop: DataGridView btnThoat_Click()
SetDataLop()
SetData()
ShowCapNhatLop()

83
GVCN: Huỳnh Anh Tuấn

Class FormCapNhatLop
Thuộc tính Phương thức
ctCapNhatLop: btnXepLopHS_Click()
ControllerCapNhatLop btnxepLopGV_Click()
dgvDSLop: DataGridView btnThoat_Click()
SetDataLop()
SetData()
ShowCapNhatLop()

Class ControllerCapNhatLop
Thuộc tính Phương thức
formCapNhatLop: FormCapNhatLop Khoi Tao()
t_LopHoc : T_LopHoc KetThucCapNhatLop()
t_GiaoVien_Lophoc: CapNhatLop()
T_GiaoVien_LopHoc XuLyThemGV()
dtGiaoVienChuaCoTrongLop: XuLyXoaGV()
T_GiaoVien
dtGiaoVienDaCoTrongLop:
T_GiaoVien
lopHoc: LopHoc

Class FormMain
Thuộc tính Phương thức
ctMain: ControllerMain ShowMain()
HienThiNut()
ChonTraCuuHS()
ChonXemSoDiem()
ChonTKdiemLD()
ChonTKdiemTK()
ChonQLSoDiem()
ChonCapNhatHS()

84
GVCN: Huỳnh Anh Tuấn

ChonCapNhatLop()
ChonQuanTriHT()

Class ControllerMain
Thuộc tính Phương thức
ctDangNhap: ControllerDangNhap RunDangNhap()
formMain: FormMain SetNguoiDung()
nguoiDung: Nguoi RunTraCuuHS()
RunXemSoDiem()
RunQLSoDiem()
RunCapNhatHS()
RunCapNhatLop()
RunTKdiemLD()
RunTKdiemTK()
RunQuan TriHT()

d) Vẽ Class Diagram cho use case


Tìm kiếm học sinh phụ huynh

Thêm, sửa, xóa học sinh

85
GVCN: Huỳnh Anh Tuấn

Tìm kiếm lớp

Giáo viên chưa có và đã có trong lớp

86
GVCN: Huỳnh Anh Tuấn

7.2. Vẽ Sequence Diagram và Activity Diagram của use case


a) Căn cứ nội dung đặc tả của use case để vẽ Sequence Diagram.
a.1)Tìm kiếm phụ huynh và học sinh

: Admin Actor : FormMain : ControllerMain : FormCapNhatHS : ControllerCapNhatHS : T_HocSinh : T_PhuHuynh : T_LopHoc


1: HienThiNut(string)

2: ShowMain( )

3: ChonCapNhatHS( )

4: RunCapNhatHS( )

5: KhoiTao( )

6: NapDuLieu( )

7: NapDuLieu( )

8: NapDuLieu( )

9: SetData(DataTable, DataTable)

10: SetDataHS(DataTable)

11: DoiTrangThai(String)

12: ShowCapNhatHS( )

a.2)Thêm học sinh

87
GVCN: Huỳnh Anh Tuấn

: Admin Actor : FormCapNhatHS : ControllerCapNhatHS : T_HocSinh : T_PhuHuynh


1: Chon them

2: XuLyThemHS( )

3: DoiTrangThai(String)

4: ResetForm( )

5: Nhap thong tin va nhan luu

6: XuLyLuuHS( )

7: GetDataHS( )

8: du lieu hoc sinh

9: GetTrangThai( )

10: Trang thai cua form

11: KiemTraThongTinHS(HocSinh)

12: ket qua [kq]

13: TimPH(String)

14: ket qua [kq]

15: ThemHS(HocSinh)

16: NapDuLieu( )

17: SetDataHS(DataTable)

18: ThongBao(string)

19: DoiTrangThai(String)

a.3)Sửa học sinh

88
GVCN: Huỳnh Anh Tuấn

: Admin Actor : FormCapNhatHS : ControllerCapNhatHS : T_HocSinh : T_PhuHuynh


1: Chon dong hoc sinh va nhan sua

2: XuLySuaHS( )

3: GetGridData( )

4: Thong tin hoc sinh

5: SetDataFromGrid(DataGridViewRow)

6: DoiTrangThai(String)

7: Nhap thong tin va nhan luu

8: XuLyLuuHS( )

9: GetDataHS( )

10: du lieu hoc sinh

11: GetTrangThai( )

12: Trang thai cua form

13: KiemTraThongTinHS(HocSinh)

14: ket qua [kq]

15: TimPH(String)

16: ket qua [kq]

17: SuaHS(HocSinh)

18: NapDuLieu( )

19: SetDataHS(DataTable)

20: ThongBao(string)

21: DoiTrangThai(String)

a.4)Xóa học sinh

89
GVCN: Huỳnh Anh Tuấn

: Admin Actor : FormCapNhatHS : ControllerCapNhatHS : T_HocSinh

1: Chon dong hoc sinh va nhan xoa

2: XuLyXoaHS( )

3: GetGridData( )

4: thong tin hoc sinh

5: ThongBao(string)

6: ket qua [kq]

7: XoaHS(string)

8: NapDuLieu( )

9: SetDataHS(DataTable)

10: ThongBao(string)

11: DoiTrangThai(String)

b.1)Tìm kiếm lớp

: Admin Actor : FormMain : ControllerMain : FormCapNhatLop : ControllerCapNhatLop : T_LopHoc


1: HienThiNut(string)

2: ShowMain( )

3: ChonCapNhatLop( )

4: RunCapNhatLop( )

5: KhoiTao( )

6: NapDuLieu( )

7: SetData(DataTable)

8: ShowCapNhatLop( )

b.2)Thêm giáo viên viên vào lớp

90
GVCN: Huỳnh Anh Tuấn

: Admin Actor : FormXepLopGV : ControllerCapNhatLop : T_GiaoVien : T_GiaoVien_LopHoc


1: Chon dong giao vien va nhan
nut them
2: XuLyThemGV(string)

3: ThemGVvaoLop(string, string)

4: GetAllGVchuaCoTrongLop(string)

5: GetAllGVdaCoTrongLop(string)

6: SetData(DataTable, DataTable)

b.3)Tìm giáo viên không có trong lớp

: Admin Actor : FormCapNhatLop : FormXepLopGV : ControllerCapNhatLop : T_GiaoVien


1: Chon lop va nhan xep lop

2: CapNhatLop(string)

3: GetAllGVchuaCoTrongLop(string)

4: GetAllGVdaCoTrongLop(string)

5: SetData(DataTable, DataTable)

6: DoiTrangThai(string)

7: ShowXepLopGV( )

b.4)Xóa giáo viên khỏi lớp

: Admin Actor : FormXepLopGV : ControllerCapNhatLop : T_GiaoVien : T_GiaoVien_LopHoc


1: Chon dong giao vien va nhan
nut xoa
2: XuLyXoaGV(string)

3: XoaGVkhoiLop(string, string)

4: GetAllGVchuaCoTrongLop(string)

5: GetAllGVdaCoTrongLop(string)

6: SetData(DataTable, DataTable)

b) Vẽ Activity Diagram:
Thêm học sinh

91
GVCN: Huỳnh Anh Tuấn

Nhan nut them

Xoa trang form

Thong bao loi Nhap cac thong tin [Nhan nut huy]
hoc sinh va nhan nut
[Nhan nut luu]

Kiem tra thong


tin hoc sinh

[Thieu thong tin hoac trung lap hoc sinh] [Khong bi loi]

Kiem tra phu huynh co


ton tai hay khong

[ Phu huynh
[Phu huynh khong ton tai]
co ton tai ]
Them hoc sinh
vao co so du lieu

Nap lai du lieu


hoc sinh

Thong bao
thanh cong

Sửa học sinh

92
GVCN: Huỳnh Anh Tuấn

Chon hoc sinh


va nhan nut sua

Hien thi thong tin


hoc sinh

[Nhan nut huy]


Thong bao loi Nhap cac thong tin
hoc sinh va nhan nut
[Nhan nut luu]
Kiem tra thong
tin hoc sinh

[Thieu thong tin hoac trung lap hoc sinh] [Khong bi loi]
Kiem tra phu huynh co
ton tai hay khong

[Phu huynh khong ton tai] [Phu huynh co ton tai]


Sua hoc sinh trong
co so du lieu

Nap lai du lieu


hoc sinh

Thong bao
thanh cong

Xóa học sinh

93
GVCN: Huỳnh Anh Tuấn

Chon hoc sinh


va nhan nut xoa

Xac nhan xoa


hoc sinh

[Cancel]

[OK]

Xoa hoc sinh tuong


ung khoi co so du lieu

Nap lai du lieu


hoc sinh

Thong bao
thanh cong

7.3. Vẽ State Machine Diagram


Cập nhât học sinh

Nhan nut them Them

Hoan thanh viec them


hoac nhan nut huy

Xem

Hoan thanh viec sua


hoac nhan nut huy

Sua

Chon dong hoc sinh va nhan nut sua

94
GVCN: Huỳnh Anh Tuấn

8. Use Case quản trị hệ thống


8.1. Xác định các đối tượng /lớp tham gia use case
a) Xét trong use case này:
- Có những class thực thể:
Class T_GiaoVien là tập hợp các thực thể tài khoản của lớp GiaoVien
Class T_PhuHuynh là tập hợp các thực thể tài khoản của lớp PhuHuynh
Class T_TaiKhoan là tập hợp các thực thể tài khoản của lớp TaiKhoan
Class T_MonHoc là tập hợp các thực thể tài khoản của lớp MonHoc
- Các class giao diện, class điều khiển để thực hiện use case
Class FormQuanTriHT
Class ControllerQuanTriHT
Class FormMain
Class ControllerMain
b) Nguyên mẫu giao diện

95
GVCN: Huỳnh Anh Tuấn

c) Bổ sung thuộc tính và method cho các class giao diện, điều khiển.
Class FormQuanTriHT
Thuộc tính Phương thức
ctQuanTriHT: ControllerQuanTriHT SetDataGV()
maNguoi: string SetDataPH()
hoTen: string ResetForm()
gioiTinh : string ThongBao()
ngaySinh : Date btnThem_Click()
diaChi: string btnSua_Click()
soDienThoai: string btnXoa_Click()
soCanCuoc: string btnThoat_Click()
loại : string DoiTrangThai()
namTuyenDung: int SetDataMH()
chuyenNganh : string ShowQuanTriHT()
dgVThongTin DataGridView GetData()
tenTaiKhoan: string SetDataND()
matkhau: string GetTrangThai()
GetDataGrid()

Class ControllerQuanTriHT

96
GVCN: Huỳnh Anh Tuấn

Thuộc tính Phương thức


formQuanTriHT: FormQuanTriHT KhoiTao()
t_GiaoVien: T_GiaoVien XuLyLuu()
t_Nguoi: T_Nguoi XuLyThem()
t_PhuHuynh :T_PhuHuynh XuLySua()
t_MonHoc: T_MonHoc XuLyXoa()
t_TaiKhoan: T_TaiKhoan KetThucQuanTriHT()
KiemTraHopLe()
GetData()

Class FormMain
Thuộc tính Phương thức
ctMain: ControllerMain ShowMain()
HienThiNut()
ChonTraCuuHS()
ChonXemSoDiem()
ChonTKdiemLD()
ChonTKdiemTK()
ChonQLSoDiem()
ChonCapNhatHS()
ChonCapNhatLop()
ChonQuanTriHT()

Class ControllerMain
Thuộc tính Phương thức
ctDangNhap: ControllerDangNhap RunDangNhap()
formMain: FormMain SetNguoiDung()
nguoiDung: Nguoi RunTraCuuHS()
RunXemSoDiem()
RunQLSoDiem()

97
GVCN: Huỳnh Anh Tuấn

RunCapNhatHS()
RunCapNhatLop()
RunTKdiemLD()
RunTKdiemTK()
RunQuan TriHT()

d) Vẽ Class Diagram cho use case

8.2. Vẽ Sequence Diagram và Activity Diagram của use case


a) Căn cứ nội dung đặc tả của use case để vẽ Sequence Diagram.
Thêm tài khoản

98
GVCN: Huỳnh Anh Tuấn

: Admin Actor : FormQuanTriHT : ControllerQuanTriHT : T_GiaoVien : T_Nguoi : T_TaiKhoan


1: Chon them

2: XuLyThem( )

3: GetTrangThai( )

4: Trang thai cua form

5: DoiTrangThai(string)

6: ResetForm( )
7: Nhap thong tin va
nhan luu
8: XuLyLuu( )

9: GetData( )
10: thong tin tai khoan va
nguoi dung

11: KiemTraHopLe( )

12: TimTK(string, string)

13: ket qua [kq]

14: TimNguoiTheoCCCD(string, string)

15: ket qua [kq]

16: ThemGV(GiaoVien)

17: ma nguoi

18: NapDuLieu( )

19: ThemTK(TaiKhoan)

20: NapDuLieu( )

21: ThongBao(string)

22: DoiTrangThai(string)

23: SetDataGV(DataTable)

Sửa tài khoản

99
GVCN: Huỳnh Anh Tuấn

: Admin Actor : FormQuanTriHT : ControllerQuanTriHT : T_GiaoVien : T_Nguoi : T_TaiKhoan


1: Chon nguoi dung va nhan sua

2: XuLySua( )

3: GetTrangThai( )

4: Trang thai cua form

5: DoiTrangThai(string)

6: GetDataGrid( )

7: du lieu hang dang duoc chon

8: TimTKtheoMaNguoi(string)

9: tai khoan [tk]

10: SetDataND( )
11: Nhap thong tin va
nhan luu
12: XuLyLuu( )

13: GetData( )
14: thong tin tai khoan va
nguoi dung
15: GetTrangThai( )

16: Trang thai cua form

17: KiemTraHopLe( )

18: TimTK(string, string)

19: ket qua [kq]

20: TimNguoiTheoCCCD(string, string)

21: ket qua [kq]

22: SuaGV(GiaoVien)

23: NapDuLieu( )

24: SuaTK(TaiKhoan)

25: NapDuLieu( )

26: SetDataGV(DataTable)

27: DoiTrangThai(string)

28: ThongBao(string)

Xóa tài khoản

100
GVCN: Huỳnh Anh Tuấn

: Admin Actor : FormQuanTriHT : ControllerQuanTriHT : T_Nguoi : T_TaiKhoan : T_GiaoVien


1: Chon tai khoan va nhan xoa

2: XuLyXoa( )

3: GetDataGrid( )

4: Du lieu cua nguoi dung

5: ThongBao(string)

6: Ket qua [kq]

7: XoaNguoi(string)

8: NapDuLieu( )

9: SetDataGV(DataTable)

10: NapDuLieu( )

11: ThongBao(string)

Tìm kiếm tài khoản

: Admin Actor : FormMain : ControllerMain : FormQuanTriHT : ControllerQuanTriHT : T_GiaoVien : T_PhuHuynh : T_MonHoc : T_TaiKhoan
1: HienThiNut(string)

2: ShowMain( )

3: ChonQuanTriHT( )

4: RunQuanTriHT( )

5: KhoiTao( )

6: NapDuLieu( )

7: NapDuLieu( )

8: NapDuLieu( )

9: NapDuLieu( )
10: SetDataGV(DataTable)

11: SetDataPH(DataTable)

12: SetDataMH(DataTable)

13: DoiTrangThai(string)

14: ShowQuanTriHT( )

b) Vẽ Activity Diagram:
Thêm tài khoản

101
GVCN: Huỳnh Anh Tuấn

Chon them

Xoa trang form

[Nhan nut huy]


Thong bao loi Dien cac truong
thong tin va nhan nut
[Nhan nut luu]

[ Thieu cac Kiem tra thong


truong thong tin ] tin
[ Day du thong tin ]
Kiem tra ten
[Ten tai khoan da ton tai] tai khoan
[Ten tai khoan khong ton tai]
[Trung can cuoc cong dan]
Kiem tra can
cuoc cong dan
[Khong trung lap can cuoc]

Tien hanh luu


[La giao vien] [La phu huynh]
Them thong tin ve giao Them thong tin ve giao
vien vao co so du lieu vien vao co so du lieu

Tai lai bang du lieu Tai lai bang du lieu


cua giao vien cua phu huynh
Them tai khoan
tren co so du lieu

Tai lai bang tai


khoan

Thong bao
thanh cong

Sửa tài khoản

102
GVCN: Huỳnh Anh Tuấn

Chon dong tai


khoan va nhan sua

Nhan thong tin


ve tai khoan
[ Nhan nut huy ]
Thong bao loi Dien cac truong
thong tin va nhan nut
[Nhan nut luu]
Kiem tra thong
[ Thieu mot trong tin
cac thong tin ] [Day du thong tin]
Kiem tra ten
[Ten dang nhap bi trung] dang nhap
[Ten dang nhap khong bi trung]
Kiem tra can
cuoc cong dan
[Trung can cuoc cong dan]
[Can cuoc khong bi trung]

[La giao vien] Tien hanh luu [La phu huynh]


Sua thong tin giao vien Sua thong tin phu huynh
trong co so du lieu trong co so du lieu

Tai lai bang du lieu Tai lai bang du lieu


cua giao vien cua phu huynh

Sua thong tin tai khoan


tren co so du lieu

Tai lai bang tai


khoan

Thong bao
thanh cong

Xóa tài khoản

103
GVCN: Huỳnh Anh Tuấn

Chon dong tai


khoan va nhan xoa

Nhan thong tin ve


tai khoan can xoa

[Cancel]
Xac nhan xoa
tai khoan
[OK]
Xoa nguoi ra khoi
bang nguoi

Kiem tra loai


[La giao vien]
[La phu huynh]
Tai lai bang Tai lai bang
giao vien phu huynh

Tai lai bang tai


khoan

Thong bao
thanh cong

104
GVCN: Huỳnh Anh Tuấn

8.3. Vẽ State Machine Diagram

Them giao
vien

Nhan nut huy hoac Nhan nut them Nhan nut huy hoac sua thanh cong
them thanh cong

Sua giao
Xem giao
vien
vien
Nhan nut sua

Nhan nut giao vien


o phan loai

Nhan nut phu


huynh o phan loai

Xem phu Nhan nut sua


huynh Sua phu
huynh

Nhan nut them Nhan nut huy hoac


them thanh cong
Nhan nut huy hoac sua thanh cong

Them phu
huynh

105
GVCN: Huỳnh Anh Tuấn

C. THIẾT KẾ
I. LÀM NGUYÊN MẪU GIAO DIỆN NGƯỜI DÙNG
- Usecase đăng nhập

106
GVCN: Huỳnh Anh Tuấn

- Usecase tra cứu học sinh

- Usecase xem điểm

107
GVCN: Huỳnh Anh Tuấn

108
GVCN: Huỳnh Anh Tuấn

- Usecase thống kê điểm lớp dạy

- Usecase thống kê điểm toàn khối

- Usecase quản lí sổ điểm

109
GVCN: Huỳnh Anh Tuấn

110
GVCN: Huỳnh Anh Tuấn

- Usecase cập nhật

111
GVCN: Huỳnh Anh Tuấn

112
GVCN: Huỳnh Anh Tuấn

- Usecase quản trị hệ thống

113
GVCN: Huỳnh Anh Tuấn

II. THIẾT KẾ HỆ THỐNG


- Hệ thống được phân thành 3 tầng:
+ Tầng boundaries: nắm giữ các giao diện, hỗ trợ hiển thị thông tin
hoặc gửi yêu cầu của người dùng đến các tầng phía dưới.
+ Tầng controllers: điều phối hoạt động giữa các tầng, là cầu nối của
tầng boundaries và entities.
+ Tầng entities: nắm giữ các lớp, gồm các lớp kết tập và lớp thực thể,
các lớp này có thể gọi đến cơ sở dữ liệu nhờ một lớp ở tầng database.
- Các gói ở các tầng:
+ Tầng boundaries: các class giao diện, được bắt đầu bằng chữ
“Form”.
+ Tầng controllers: các class điều khiển, được bắt đầu bằng chữ
“Controller”.
+ Tầng entities: các class thực thể, được bắt đầu bằng chữ “T_” hoặc
các lớp còn lại.
- Hệ thống có 2 namespace tương ứng với 2 hệ thống con.
- Để điều khiển hệ thống con trên, chương trình còn có một
namespace QuanLy.
Subsystem hệ thống

<<subsystem>>
HeThong

Boundaries
(from HeThong)

Controllers
QuanLy
(from HeThong)

Entities
(from HeThong)

114
GVCN: Huỳnh Anh Tuấn

Subsystem thống kê báo cáo

<<subsystem>>
ThongKe_BaoCao

Boundaries
(from ThongKe_BaoCao)

Controllers
(from ThongKe_BaoCao)
QuanLy

Entities
(from ThongKe_BaoCao)

- Vẽ Component Diagram
- Vẽ Deployment Diagram
III. THIẾT KẾ CHI TIẾT
1. Thiết kế lưu trữ
Kế thừa biểu đồ lớp thực thể đã có được ở Bước 3 để thiết kế cơ sở dữ liệu:
- Tạo mô hình ER từ biểu đồ class thực thể (gồm các class và liên kết giữa các
class)
- Ánh xạ sơ đồ ER sang mô hình quan hệ; Chuẩn hóa mô hình quan hệ
- Từng quan hệ được mô tả chi tiết theo dạng table
- Tạo script tạo niên khóa hằng năm
USE [msdb]
GO

/****** Object: Job [TaoNienKhoaHangNam] Script Date: 1/2/2023 5:48:48 PM


******/
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** Object: JobCategory [[Uncategorized (Local)]] Script Date: 1/2/2023
5:48:48 PM ******/

115
GVCN: Huỳnh Anh Tuấn

IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE


name=N'[Uncategorized (Local)]' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB',
@type=N'LOCAL', @name=N'[Uncategorized (Local)]'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END

DECLARE @jobId BINARY(16)


EXEC @ReturnCode = msdb.dbo.sp_add_job
@job_name=N'TaoNienKhoaHangNam',
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N'No description available.',
@category_name=N'[Uncategorized (Local)]',
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [AddNienKhoa] Script Date: 1/2/2023 5:48:48 PM ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId,
@step_name=N'AddNienKhoa',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'DECLARE @nk AS VARCHAR(MAX)
SELECT @nk = (SELECT CAST(YEAR(GETDATE()) as nvarchar(max)) + ''-'' +
CAST(YEAR(GETDATE())+1 AS nvarchar(max)))
INSERT INTO NIENKHOA VALUES (@nk)',
@database_name=N'QLDIEM',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId,
@start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

116
GVCN: Huỳnh Anh Tuấn

EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId,


@server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:
GO.
2. Thiết kế chi tiết các class
- Namespace N13S_SLLDT.HeThong.Boundaries:
+ FormDangNhap (partial class):
Phạm vi Kiểu dữ liệu/ Tên thuộc tính/ Giá trị mặc Mô tả tóm tắt
truy cập kiểu trả về phương thức định/tham số
private Label lblDangNhap Đăng nhập Label đăng
nhập
private Label lblTenDangNhap Tên đăng Label tên đăng
nhập nhập
private Label lblMatKhau Mật khẩu Label mật khẩu
private TextBox tbTenDangNhap TextBox tên
đăng nhập
private TextBox tbMatKhau TextBox mật
khẩu
private Button btnDangNhap Đăng nhập Button đăng
nhập
private Button btnThoat Thoát Button thoát
private ControllerDang _ctDangNhap Thuộc tính
Nhap ControllerDang
Nhap
public FormDangNhap ControllerDan Hàm khởi tạo
gNhap ct
public void ShowDangNhap Hiển thị form
public void ResetForm Xóa trắng form
private void btnDangNhap_C Nhấn nút đăng
lick nhập
private void btnThoat_Click Thoát khỏi
form đăng nhập

+ FormCapNhatHS(partial class)
Phạm vi Kiểu dữ liệu/ kiểu Tên thuộc tính/ Giá trị Mô tả tóm tắt
truy cập trả về phương thức mặc
định/tham

117
GVCN: Huỳnh Anh Tuấn

số
private Label lblTenHocSinh Tên học Label Tên học sinh
sinh
private Label lblGioiTinh Giới tính Label Giới tính
private Label lblDiachi Địa chỉ Label Địa chỉ
private Label lblSoDienThoai Số điện Label Số điện thoại
thoại
private Label lblSoCanCuoc Số căn Label số căn cước
cước
private Label lblNgaySinh Ngày sinh Label Ngày sinh
private Label lblLop Lớp Label lớp
private TextBox tbTenHocSinh Textbox Tên học
sinh
private TextBox tbDiaChi
private TextBox tbSoDienThoai
private TextBox tbSoCanCuoc
private TextBox tbMaPhuHuynh
public FormCapNhatHS Controller Hàm khởi tạo
Cập nhật
học sinh
private CheckBox chbGioiTinh Nam Checkbox Giới tính
private DateTimePicker dtbNgaySinh Datetime ngày sinh
private ComboBox cbLop ComboBox Lớp
private Button btnThem Thêm Button thêm
private Button btnSua Sửa Button Sửa
private Button btnXoa Xóa Button Xóa
private Button btnLuu Lưu Button Lưu
private Button btnThoat Thoát Button Thoát
private DataGridView dgvDanhSachHS Danh sách học sinh
private DataGridView dgvDanhSachPH Danh sách phụ
huynh
public ControllerCapNhat _ctCapNhatHS Thuộc tính
HS ControllerCapNhat
HS
Private TrangThai _tt Hàm khởi tạo
public FormCapNhatHS Controller Hàm khởi tạo
CapNhat
HS
public ShowCapNhatHS Hàn khởi tạo không
chứa tham số
public void SetData DataTabl Hàm khởi tạo chứa
e dslh, tham số
DataTabl
e dsph

118
GVCN: Huỳnh Anh Tuấn

public void SetDataaHS DataTabl Ham khởi tạo chứa


e dshs tham số
public void DoiTrangThai String tt Hàm khởi tạo chứa
tham số
private void btnThem_Click Nhấn nút thêm
private void btnSua_Click Nhấn nút sửa
private void btnLuu_Click Nhấn nút lưu
private void btnThoat_Click Thoát khỏi form
đăng nhập
Public Void ResetForm Reset form
Public TrangThai GetTrangThai Hàm khởi tạo ko
chứa tham số
Public string, stringm, int, GetDataHS Hàm khởi tạo ko
DateTime, string, chứa tham số
string, string ,
string, string,
string, string
Public DialogResult ThongBao String Thông báo
message
Private DataGridViewRow GetDataGrid Hàm khởi tạo
Public Void SetDataFromGrid DataGrid Hàm khởi tạo chữa
ViewRow tham số
dgvr

+ FormCapNhatLop
Phạm viKiểu dữ liệu/ kiểu trả Tên thuộc tính/ phương Giá trị mặc định/tham Mô tả
truy cậpvề thức số tóm tắt
private Label lblDanhSachLop Danh sách lớp Label
danh
sách
lớp
private DataGridView dgvDanhSach Danh
sách
lớp
private Button btnThoat Thoát Button
thoát
private Button btnXepLopGiaoVien Xếp lớp giáo viên Button
xếp lớp
giáo
viên
Public FormCapNhatLop:Form Kế
thừa từ
Form
Private ControllerCapNhatLop_capnhatlop Hàm

119
GVCN: Huỳnh Anh Tuấn

khởi
tạo
public FormCapNhatLop ControllerCapNhatLop Hàm
ct khởi
tạo
public void SetData DataTable dt Hàm
khởi
tạo có
tham số
public void ShowCapNhatLop Hàm
khởi
tạo
private void btnThoat_Click Nhấn
nút
thoát
khỏi
form
private void btnXepLopGiaoVien_Click Nhấn
nút xếp
lớp

+ FormQuanTriHT
Phạm vi Kiểu dữ liệu/ kiểu trả Tên thuộc tính/ phươngGiá trị mặc Mô tả tóm tắt
truy cập về thức định/tham
số
private Label lblTaiKhoan Tài khoản Label Tài khoản
private Label lblGioiTinh Giới tính Label Giới tính
private Label lblHoTen Họ tên Label Họ tên
private Label lblMatKhau Mật khẩu Label Mật khẩu
private Label lblDiachi Địa chỉ Label Địa chỉ
private Label lblSoDienThoai Số điện Label Số điện thoại
thoại
private Label lblSoCanCuoc Số căn cướcLabel số căn cước
private Label lblNgaySinh Ngày sinh Label Ngày sinh
private Label lbMonHoc Môn học Label Môn học
private TextBox tbHocTen Textbox Tên học sinh
private TextBox tbTaiKhoan Textbox Tài khoản
private TextBox tbMatKhau Textbox Mật khẩu
private TextBox tbDiaChi Textbox Địa chỉ
private TextBox tbSoDienThoai Textbox Số điện thoại
private TextBox tbSoCanCuoc Textbox Số căn cước
public FormCapNhatHS Controller Hàm khởi tạo

120
GVCN: Huỳnh Anh Tuấn

Cập nhật
học sinh
private CheckBox chbGioiTinh Nam Checkbox Giới tính
private DateTimePicker dtbNgaySinh Datetime ngày sinh
private ComboBox cbMonHoc ComboBox Môn học
private Button btnThem Thêm Button thêm
private Button btnSua Sửa Button Sửa
private Button btnXoa Xóa Button Xóa
private Button btnLuu Lưu Button Lưu
private Button btnThoat Thoát Button Thoát
private Button btnGiaoVien Giáo viên Button giáo viên
private Button btnPhuHuynh Phụ huynh Button phụ huynh
private DataGridView dgvDanhSach Danh sách phụ huynh
hoặc giáo viên
Public Void ResetForm Reset form
Public TrangThai GetTrangThai Hàm khởi tạo ko chứa
tham số
Public DialogResult ThongBao String Thông báo
message
Public Enum TrangThai
Private DataGridViewRow GetDataGrid Hàm khởi tạo
Private ControllerQuanTriHT_ctQuanTriHT
Public Void DoiTrangThai String tt Hàm khởi tạo chứa
tham số
Public Void SetDataMH Datatable dtHảm hởi tạo chứa
tham số
public void ResetForm Xóa trắng form
private void btnThem_Click Nhấn nút thêm
private void btnXoa_Click Nhấn nút xóa
private void btnSua_Click Nhấn nút sửa
private void btnLuu_Click Nhấn nút lưu
private void btnThoat_Click Thoát khỏi form đăng
nhập
private void btnGiaoVien_Click Nhấn nút chọn giáo
viên
private void btnPhuHuynh_Click Nhấn nút chọn phụ
huynh

- Namespace N13S_SLLDT.ThongKe_BaoCao.Boundaries:
+ TrangThai (public enum):
Tên danh mục Mô tả tóm tắt
Them Trạng thái thêm
Sua Trạng thái sửa

121
GVCN: Huỳnh Anh Tuấn

Xoa Trạng thái xóa

+ MaDiem (public enum):


Tên danh mục Mô tả tóm tắt
TX1 Thường xuyên 1
TX2 Thường xuyên 2
TX3 Thường xuyên 3
TX4 Thường xuyên 4
GK Giữa kì
CK Cuối kì

122
GVCN: Huỳnh Anh Tuấn

D. CÀI ĐẶT, THỬ NGHIỆM VÀ KẾT LUẬN


I. KẾT QUẢ CÀI ĐẶT, THỬ NGHIỆM
1. Cài đặt (Coding)
- Môi trường phát triển
+ Hệ quản trị cơ sở dữ liệu: MS SQL Server 2019 (bản Developper) - Tải và
cài đặt phiên bản Developer
+ Mở SQL Server Installation Center, nhấn Installation bên trái, nhấn vào dòng bên
dưới:

+ Sau đó thao tác chọn các phần muốn cài đặt, đặt mật khẩu cho tài khoản sa, thêm
tài khoản mặc định.
+ Bổ sung: cài đặt SSMS.

+ Màn hình sau khi cài đặt:

- Cài đặt Visual Studio 2019 (Community)


+ Tùy chọn các phiên bản tại link:
https://visualstudio.microsoft.com/vs/older-downloads/

123
GVCN: Huỳnh Anh Tuấn

- Cài đặt Rational Rose 2007


+ Tải Rational Rose và runasdate trên google drive.
+ Sau khi tải rational rose, chạy setup, mở phần mềm, import license key ở
rational rose.
+ Chạy phần mềm (rose.exe) bằng runasdate.

2. Thử nghiệm (Testing)


- Màn hình đăng nhập tài khoản admin

124
GVCN: Huỳnh Anh Tuấn

- Chức năng cập nhật lớp

125
GVCN: Huỳnh Anh Tuấn

- Chức năng xếp lớp giáo viên

- Chức năng cập nhật học sinh

126
GVCN: Huỳnh Anh Tuấn

- Chức năng thống kê điểm toàn khối

- Chức năng quản trị hệ thống

- Chức năng thống kê điểm lớp dạy

- Chức năng quản lý sổ điểm

127
GVCN: Huỳnh Anh Tuấn

- Chức năng cập nhật sổ điểm

- Chức năng xem sổ điểm

II. KẾT LUẬN – KIẾN NGHỊ


1. Đánh giá kết quả đạt được của đề tài so với mục tiêu ban đầu

2. Đề xuất hướng phát triển của đề tài

128
GVCN: Huỳnh Anh Tuấn

DANH MỤC TÀI LIỆU THAM KHẢO

1. Phát triển hệ thống hướng đối tượng Tập 1 – Nguyễn Văn Ba


2. Phát triển hệ thống hướng đối tượng Tập 2 – Nguyễn Văn Ba
3. Phân tích & thiết kế hệ thống thông tin – Trần Đình Quế, Nguyễn
Mạnh Sơn

129

You might also like