Hàng năm, mỗi sinh viên năm cuối đủ điều kiện bảo vệ đồ án tốt nghiệp đều phải liên hệ với các giáo viên trong khoa để được hướng dẫn đề tài và thực hiện đề tài đó... Sinh viên sẽ mất th
Trang 1BỘ NÔNG NGHIỆP VÀ PTNT TRƯỜNG ĐẠI HỌC THỦY LỢI
NHÓM 1
HỆ THỐNG QUẢN LÝ THỰC TẬP, ĐỒ ÁN KHOA CÔNG NGHỆ THÔNG
TIN TRƯỜNG ĐẠI HỌC THỦY LỢI
BÁO CÁO KẾT THÚC MÔN PHÁT TRIỂN DỰ ÁN PHẦN MỀM
HÀ NỘI, NĂM 2023
Trang 2BỘ NÔNG NGHIỆP VÀ PTNT TRƯỜNG ĐẠI HỌC THỦY LỢI
NHÓM 1
HỆ THỐNG QUẢN LÝ THỰC TẬP, ĐỒ ÁN KHOA CÔNG NGHỆ THÔNG
TIN TRƯỜNG ĐẠI HỌC THỦY LỢI
Ngành: Công nghệ thông tin
Lớp: 61THNB
Người hướng dẫn: Cù Việt Dũng
Trang 4Nhóm 1 xin cam đoan đây là Báo cáo kết thúc môn Phát triển dự án phần mềm của bản thân nhóm 1 tự làm Các kết quả trong Báo cáo kết thúc môn Phát triển dự án phần mềm này là trung thực, và không sao chép từ bất kỳ một nguồn nào và dưới bất kỳ hình thức nào Việc tham khảo các nguồn tài liệu (nếu có) đã được thực hiện trích dẫn và ghi nguồn tài liệu tham khảo đúng quy định
Đại diện Tác giả
Chữ ký
Trần Thảo Vân
Trang 5LỜI CÁM ƠN
Đầu tiên, nhóm 1 chúng em xin gửi lời cảm ơn đến thầy Cù Việt Dũng Nhờ sự chỉ dẫn tận tình, sự truyền đạt kiến thức sâu sắc và kinh nghiệm thực tiễn, nhóm em đã có cơ hội học tập và phát triển năng lực của mình Những bài giảng, tài liệu và bài tập được thầy cung cấp đã giúp nhóm em hiểu rõ hơn về nội dung của môn học và cải thiện kỹ năng của mình
Trang 6MỤC LỤC
DANH MỤC CÁC HÌNH ẢNH vii
DANH MỤC BẢNG BIỂU x
DANH MỤC CÁC TỪ VIẾT TẮT VÀ GIẢI THÍCH CÁC THUẬT NGỮ xi
CHƯƠNG 1 THU THẬP YÊU CẦU 1
I BẢN KẾ HOẠCH QUẢN LÝ YÊU CẦU 1
CHƯƠNG 2 PHÂN TÍCH - THIẾT KẾ 25
2.1 Use Case tổng quát 25
2.1.1 Use Case chi tiết của actor sinh viên 25
2.1.2 Use Case chi tiết của actor giáo viên 26
2.1.3 Use Case chi tiết của actor bộ môn 26
2.1.4 Use Case chi tiết của actor văn phòng khoa 27
2.2 Đặc tả use case 27
2.2.1 Đăng nhập 27
2.2.2 Lấy lại mật khẩu 29
2.2.3 Chọn giảng viên 32
2.2.4 Xem danh sách giảng viên hướnng dẫn 33
2.2.5 Liên hệ giảng viên 34
2.2.6 Đăng kí đề tài 35
2.2.7 Sửa đề tài 37
2.2.8 Xác nhận hoàn thành đăng kí đề tài 39
2.2.9 Xem nhiệm vụ 40
2.2.10 Nộp đề cương 42
2.2.11 Nộp báo cáo 43
2.2.12 Xác nhận hoàn thành đăng kí giảng viên 45
2.2.13 Chọn thời gian trao đổi 46
2.2.14 Chọn deadline báo cáo final 48
Trang 72.2.15 Duyệt báo cáo 50
Duyệt báo cáo 50
2.2.16 Duyệt đề tài 52
2.2.17 Giao đề tài 54
2.2.18 Duyệt đề cương 56
2.2.19 Gửi đề cương 58
2.2.20 Duyệt giảng viên hướng dẫn 59
2.2.21 Phân công giảng viên hướng dẫn 61
2.2.22 Tạo đợt đồ án 63
2.2.23 Cập nhập ngày bảo vệ 65
2.2.24 Tạo tài khoản bộ môn 67
2.2.25 Tạo tài khoản giảng viên 70
2.2.26 Tạo tài khoản sinh viên 72
2.2.27 Xác nhận thông tin 75
Xác nhận thông tin 75
2.2.28 Gửi kết quả 76
2.3 Sequences diagram 78
2.3.1 Đăng nhập 78
2.3.1 Sequences diagram Đăng nhập 78
2.3.2 Lấy lại mật khẩu 78
2.3.3 Chọn giảng viên 80
2.3.4 Xem danh sách giáo viên hương dẫn 80
2.3.5 Liên hệ giảng viên 81
2.3.6 Đăng kí đề tài 81
2.3.7 Sửa đề tài 82
2.3.8 Xác nhận hoàn thành đăng kí đề tài 82
2.3.9 Xem nhiệm vụ 83
2.3.10 Nộp đề cương 83
2.3.11 Nộp báo cáo 84
2.3.12 Xác nhận hoàn thành đăng kí giảng viên 86
2.3.13 Chọn thời gian trao đổi 86
Trang 82.3.14 Chọn deadline báo cáo cuối final 87
2.3.15 Duyệt báo cáo 87
2.3.16 Duyệt đề tài 88
2.3.17 Giao đề tài 88
2.3.18 Duyệt đề cương 89
2.3.19 Gửi đề cương 90
2.3.20 Duyệt giảng viên hướng dẫn 90
2.3.21 Phân công giảng viên hướng dẫn 91
2.3.22 Tạo đợt đồ án 91
2.3.23 Cập nhập ngày bảo vệ 92
2.3.24 Tạo tài khoản bộ môn 93
2.3.25 Tạo tài khoản giảng viên 94
2.3.26 Tạo tài khoản sinh viên 94
2.3.27 Xác nhận thông tin 95
2.3.28 Gửi kết quả 95
2.4 Activity diagram 96
2.4.1 Đăng nhập 96
2.4.2 Lấy lại mật khẩu 97
2.4.3 Chọn giảng viên 98
2.4.4 Xem danh sách giáo viên hương dẫn 99
2.4.5 Liên hệ giảng viên 100
2.4.6 Đăng kí đề tài 100
2.4.7 Sửa đề tài 101
2.4.8 Xác nhận hoàn thành đăng kí đề tài 102
2.4.9 Xem nhiệm vụ 103
2.4.10 Nộp đề cương 104
2.4.11 Nộp báo cáo 104
2.4.12 Xác nhận hoàn thành đăng kí giảng viên 105
2.4.13 Chọn thời gian trao đổi 106
2.4.14 Chọn deadline báo cáo cuối final 107
Trang 92.4.16 Duyệt đề tài 109
2.4.17 Giao đề tài 110
2.4.18 Duyệt đề cương 111
2.4.19 Gửi đề cương 112
2.4.20 Duyệt giảng viên hướng dẫn 113
2.4.21 Phân công giảng viên hướng dẫn 114
2.4.22 Tạo đợt đồ án 115
2.4.23 Cập nhập ngày bảo vệ 116
2.4.24 Tạo tài khoản bộ môn 117
2.4.25 Tạo tài khoản giảng viên 118
2.4.26 Tạo tài khoản sinh viên 119
2.4.27 Xác nhận thông tin 120
2.4.28 Gửi kết quả 121
2.5 Class diagram 122
2.5.1 Class analysis diagram 122
2.5.2 Class diagram 132
CHƯƠNG 3 Lập trình 134
Đường dẫn trang web: https://doantotnghiep.tlu.shinchoku.dev/ 134
3.1 Thiết kế cơ sở dữ liệu 134
3.1.1 Sơ đồ cơ sở dữ liệu 134
3.1.2 Mô tả chi tiết các thực thể 136
3.2 Các công nghệ sử dụng 142
3.2.1 Net 142
3.2.2 Entity Framework Core (EF Core) 143
3.2.3 CQRS (Command Query Responsibility Segregation) 143
3.2.4 Mediator Pattern 144
3.2.5 PostgreSQL 145
3.2.6 React 146
3.2.7 MUI (Material-UI) 146
Trang 104.1 Danh sách kiểm thử 147
CHƯƠNG 5 TRIỂN KHAI VÀ TÀI LIỆU HƯỚNG DẪN SỬ DỤNG 148
5.1 Triển khai (Deploy) 148
5.1.1 Tạo Dockerfile 149
5.1.2 Build image 149
5.1.3 Đẩy image lên Docker Hub 150
5.1.4 Đăng nhập vào fly.io 150
5.1.5 Khởi động ứng dụng 152
5.1.6 Thiết lập các biến bí mật (secret variable) 153
5.1.7 Đẩy image Docker lên fly.io registry 154
5.2 Tài liệu hướng dẫn người dùng 154
5.2.1 Mở đầu 155
5.2.2 Tổng quan 156
5.2.3 Hướng dẫn sử dụng 157
5.2.4 Mô tả hệ thống theo chức năng 161
TÀI LIỆU THAM KHẢO 194
PHỤ LỤC 195
Trang 11DANH MỤC CÁC HÌNH ẢNH
Hình 1 Màn hình đăng nhập 158
Hình 2 Màn hình đăng nhập VPK 159
Hình 3 Màn hình đăng nhập VPK 159
Hình 4 Màn hình đăng nhập BM 160
Hình 5 Màn hình đăng nhập GV 160
Hình 6 Màn hình đăng nhập SV 161
Hình 7 Màn hình đăng nhập SV 161
Hình 8 Màn hình đăng nhập (SV) 162
Hình 9 Màn hình đăng nhập BM 162
Hình 10 Màn hình đăng nhập VPK 163
Hình 11 Màn hình đăng nhập GV 163
Hình 12 Màn hình đăng nhập 164
Hình 13 Quên mật khẩu 165
Hình 14 Quên mật khẩu kiểm tra email 165
Hình 15 Check email phục hồi 166
Hình 16 Đặt lại mật khẩu 166
Hình 17 Password được đặt lại thành công 167
Hình 18 Danh sách GV 167
Hình 19 Màn hình danh sách GV 168
Hình 20 Chọn GV thành công 168
Hình 21 Màn hình danh sách GV 169
Hình 22 Màn hình GV 169
Hình 23 Màn hình hiển thị Liên hệ email GV 170
Hình 24 Màn hình đề tài với SV chưa đăng ký 170
Hình 25 Check email phục hồi 171
Hình 26 Thông tin đề tài 171
Hình 27 Thông tin đề tài (nhập lỗi) 172
Hình 28 Thông tin đề tài 172
Hình 29 Thông tin đề tài _ Sửa 173
Trang 12Hình 30 Sửa đề tài thành công 174
Hình 31 Xác nhận hoàn thành đăng ký GV 174
Hình 32 Xác nhận hoàn thành đăng ký 174
Hình 33 Xác nhận hoàn thành đăng ký GV 175
Hình 34 Quản lý đề cương 176
Hình 35 Duyệt đề cương 176
Hình 36 Quản lý đề cương 177
Hình 37 Giao đề tài 178
Hình 38 Thông tin đề tài 178
Hình 39 Thông báo lưu thành công 179
Hình 40 Màn hình quản lý đề cương 179
Hình 41 Màn hình quản lý đề cương 180
Hình 42 Màn hình đăng ký GVHD 181
Hình 43 Phân công GVHD 181
Hình 44 Cập nhật thành công 182
Hình 45 Quản lý đăng ký GVHD 182
Hình 46 Lựa chọn Đồng ý/ Không 183
Hình 47 Cập nhật thành công 183
Hình 48 Tạo đợt đồ án 184
Hình 49 Nhập thông tin đợt đồ án 184
Hình 50 Tạo đợt đồ án thành công 185
Hình 51 Màn hình đợt đồ án 185
Hình 52 Thông tin đợt đồ án chi tiết 186
Hình 53 Inactive cập nhật 186
Hình 54 Active cập nhật 187
Hình 55 Cập nhật thành công 187
Hình 56 Tạo tài khoản bộ môn 188
Hình 57 Form thêm tài khoản bộ môn 188
Hình 58 Tạo tài khoản BM thành công 189
Hình 59 Tạo tài khoản GV 189
Trang 13Hình 61 Tạo tài khoản GV thành công 190
Hình 62 Tạo tài khoản SV 191
Hình 63 Màn hình tài khoản SV chi tiết 191
Hình 64 Upload file SV csv 192
Hình 65 Tạo tài khoản SV thành công 192
Trang 14DANH MỤC BẢNG BIỂU


Trang 15DANH MỤC CÁC TỪ VIẾT TẮT VÀ GIẢI THÍCH CÁC THUẬT NGỮ
Trang 16CHƯƠNG 1 THU THẬP YÊU CẦU
I BẢN KẾ HOẠCH QUẢN LÝ YÊU CẦU
DANH MỤC CÁC HÌNH ẢNH vii
DANH MỤC BẢNG BIỂU x
DANH MỤC CÁC TỪ VIẾT TẮT VÀ GIẢI THÍCH CÁC THUẬT NGỮ xi
CHƯƠNG 1 THU THẬP YÊU CẦU 1 I BẢN KẾ HOẠCH QUẢN LÝ YÊU CẦU 1
4.3 Quy ước 18
4.4 Tính toán 19
Step 1: Tính số UFC 19
Step 2: Tính UFP 20
Step 3: Technical Complexity Factor 21
Step 4: Tính DI 22
Step 5: Tính TCF dựa trên DI 22
Step 6: Tính FP 22
Step 7: Tính KLOC 23
4.5 Kết luận 23
4.6 References 24
CHƯƠNG 2 PHÂN TÍCH - THIẾT KẾ 25 2.1 Use Case tổng quát 25
2.1.1 Use Case chi tiết của actor sinh viên 25
Trang 172.1.3 Use Case chi tiết của actor bộ môn 26
2.1.4 Use Case chi tiết của actor văn phòng khoa 27
2.2 Đặc tả use case 27
2.2.1 Đăng nhập 27 2.2.2 Lấy lại mật khẩu 29 2.2.3 Chọn giảng viên 32 2.2.4 Xem danh sách giảng viên hướnng dẫn 33 2.2.5 Liên hệ giảng viên 34 2.2.6 Đăng kí đề tài 35 2.2.7 Sửa đề tài 37 2.2.8 Xác nhận hoàn thành đăng kí đề tài 39 2.2.9 Xem nhiệm vụ 40 2.2.10 Nộp đề cương 42
2.2.11 Nộp báo cáo 43
2.2.12 Xác nhận hoàn thành đăng kí giảng viên 45
2.2.13 Chọn thời gian trao đổi 46
2.2.14 Chọn deadline báo cáo final 48
Chọn deadline để nộp báo cáo cuối cùng 48
2.2.15 Duyệt báo cáo 50
Duyệt báo cáo 50
2.2.16 Duyệt đề tài 52
Trang 182.2.18 Duyệt đề cương 56
2.2.19 Gửi đề cương 58
2.2.20 Duyệt giảng viên hướng dẫn 59
2.2.21 Phân công giảng viên hướng dẫn 61
2.2.22 Tạo đợt đồ án 63
2.2.23 Cập nhập ngày bảo vệ 65
2.2.24 Tạo tài khoản bộ môn 67
2.2.25 Tạo tài khoản giảng viên 70
2.2.26 Tạo tài khoản sinh viên 72
2.2.27 Xác nhận thông tin 75
Xác nhận thông tin 75
2.2.28 Gửi kết quả 76
2.3 Sequences diagram
78
2.3.1 Đăng nhập
78
2.3.2 Lấy lại mật khẩu
78
2.3.3 Chọn giảng viên
80
2.3.4 Xem danh sách giáo viên hương dẫn
80
2.3.5 Liên hệ giảng viên
81
2.3.6 Đăng kí đề tài
81
2.3.7 Sửa đề tài
82
2.3.8 Xác nhận hoàn thành đăng kí đề tài
82
Trang 192.3.9 Xem nhiệm vụ
83
2.3.10 Nộp đề cương 83
2.3.11 Nộp báo cáo 84
2.3.12 Xác nhận hoàn thành đăng kí giảng viên 86
2.3.13 Chọn thời gian trao đổi 86
2.3.14 Chọn deadline báo cáo cuối final 87
2.3.15 Duyệt báo cáo 87
2.3.16 Duyệt đề tài 88
2.3.17 Giao đề tài 88
2.3.18 Duyệt đề cương 89
2.3.19 Gửi đề cương 90
2.3.20 Duyệt giảng viên hướng dẫn 90
2.3.21 Phân công giảng viên hướng dẫn 91
2.3.22 Tạo đợt đồ án 91
2.3.23 Cập nhập ngày bảo vệ 92
2.3.24 Tạo tài khoản bộ môn 93
2.3.25 Tạo tài khoản giảng viên 94
2.3.26 Tạo tài khoản sinh viên 94
2.3.27 Xác nhận thông tin 95
2.3.28 Gửi kết quả 95
2.4 Activity diagram
96
2.4.1 Đăng nhập
96
2.4.2 Lấy lại mật khẩu
97
2.4.3 Chọn giảng viên
98
2.4.4 Xem danh sách giáo viên hương dẫn
99
Trang 202.4.5 Liên hệ giảng viên
100
2.4.6 Đăng kí đề tài
100
2.4.7 Sửa đề tài
101
2.4.8 Xác nhận hoàn thành đăng kí đề tài
102
2.4.9 Xem nhiệm vụ
103
2.4.10 Nộp đề cương 104
2.4.11 Nộp báo cáo 104
2.4.12 Xác nhận hoàn thành đăng kí giảng viên 105
2.4.13 Chọn thời gian trao đổi 106
2.4.14 Chọn deadline báo cáo cuối final 107
2.4.15 Duyệt báo cáo 108
2.4.16 Duyệt đề tài 109
2.4.17 Giao đề tài 110
2.4.18 Duyệt đề cương 111
2.4.19 Gửi đề cương 112
2.4.20 Duyệt giảng viên hướng dẫn 113
2.4.21 Phân công giảng viên hướng dẫn 114
2.4.22 Tạo đợt đồ án 115
2.4.23 Cập nhập ngày bảo vệ 116
2.4.24 Tạo tài khoản bộ môn 117
2.4.25 Tạo tài khoản giảng viên 118
2.4.26 Tạo tài khoản sinh viên 119
2.4.27 Xác nhận thông tin 120
2.4.28 Gửi kết quả 121
2.5 Class diagram
Trang 212.5.1 Class analysis diagram 122
2.5.1.1 Đăng nhập 122
2.5.1.2 Lấy lại mật khẩu 122
2.5.1.3 Chọn giảng viên 123
2.5.1.4 Xem danh sách giảng viên hương dẫn 123
2.5.1.5 Liên hệ giảng viên 123
2.5.1.6 Đăng kí đề tài 124
2.5.1.7 Sửa đề tài 124
2.5.1.8 Xác nhận hoàn thành đăng kí đề tài 124
2.5.1.9 Xem nhiệm vụ 125
2.5.1.10 Nộp đề cương 125
2.5.1.11 Nộp báo cáo 126
2.5.1.12 Xác nhận hoàn thành đăng kí giảng viên 126
2.5.1.13 Chọn thời gian trao đổi 126
2.5.1.14 Chọn deadline báo cáo cuối final 126
2.5.1.15 Duyệt báo cáo 127
2.5.1.16 Duyệt đề tài 127
2.5.1.17 Giao đề tài 128
2.5.1.18 Duyệt đề cương 128
2.5.1.19 Gửi đề cương 129
2.5.1.20 Duyệt giảng viên hướng dẫn 129
2.5.1.21 Phân công giảng viên hướng dẫn 129
2.5.1.22 Tạo đợt đồ án 130
2.5.1.23 Cập nhập ngày bảo vệ 130
2.5.1.24 Tạo tài khoản bộ môn 130
2.5.1.25 Tạo tài khoản giảng viên 131
2.5.1.26 Tạo tài khoản sinh viên 131
2.5.1.27 Xác nhận thông tin 132
2.5.1.28 Gửi kết quả 132
2.5.2 Class diagram 132
Trang 22CHƯƠNG 3 Lập trình
134
Đường dẫn trang web: https://doantotnghiep.tlu.shinchoku.dev/ 134
3.1 Thiết kế cơ sở dữ liệu 134
3.1.1 Sơ đồ cơ sở dữ liệu
136 3.1.2.3 Users
137 3.1.2.4 Faculties
138 3.1.2.5 UserRoles
138 3.1.2.6 DepartmentSubjects
138 3.1.2.7 Lecturers
138 3.1.2.8 GraduationProjects
139 3.1.2.9 GraduationProjectPeriods
140 3.1.2.10 Syllabi
141 3.1.2.11 Instructors
Trang 245.1.4 Đăng nhập vào fly.io
156 5.2.1.3 Thuật ngữ và từ viết tắt
156 5.2.2 Tổng quan
156
5.2.2.1 Chức năng, nhiệm vụ
156 5.2.2.2 Hệ thống
156 5.2.3 Hướng dẫn sử dụng
Trang 255.2.4.1.3 Chọn giảng viên
167 5.2.4.1.4 Xem danh sách giảng viên
169 5.2.4.1.5 Liên hệ GV
169 5.2.4.1.6 Đăng ký đề tài
170 5.2.4.1.7 Sửa đề tài
173 5.2.4.1.8 Xác nhận hoàn thành đăng ký đề tài
174 5.2.4.1.9 Xem nhiệm vụ (chưa triển khai)
175 5.2.4.1.10 Nộp đề cương (chưa triển khai)
175 5.2.4.1.11 Nộp báo cáo (chưa triển khai)
175 5.2.4.1.12 Xác nhận hoàn thành đăng ký GV
175 5.2.4.1.13 Chọn thời gian trao đổi (chưa triển khai)
175 5.2.4.1.14 Chọn deadline báo cáo final (chưa triển khai)
176 5.2.4.1.15 Duyệt báo cáo (duyệt đề cương)
176 5.2.4.1.16 Giao đề tài
177 5.2.4.1.17 Duyệt đề cương
179
Trang 265.2.4.1.18 Gửi đề cương (chưa triển khai)
180 5.2.4.1.19 Phân công giảng viên hướng dẫn
180 5.2.4.1.20 Duyệt GVHD
182 5.2.4.1.21 Tạo đợt đồ án
184 5.2.4.1.22 Cập nhật ngày bảo vệ
185 5.2.4.1.23 Tạo tài khoản bộ môn
188 5.2.4.1.24 Tạo tài khoản giảng viên
189 5.2.4.1.25 Tạo tài khoản SV
191 5.2.4.1.26 Xác nhận thông tin (chưa triển khai)
193 5.2.4.1.27 Gửi kết quả (chưa triển khai)
193
PHỤ LỤC 195
1.1 Giới thiệu
- Giới thiệu đề tài:
Mỗi năm, các trường đại học đều có một khóa sinh viên tốt nghiệp ra trường Việc tổ
chức cho sinh viên bảo vệ đồ án tốt nghiệp là rất phổ biến.Vấn đề được đặt ra là việc
quản lý các đề tài của sinh viên như thế nào để có hiệu quả tốt nhất
Hàng năm, mỗi sinh viên năm cuối đủ điều kiện bảo vệ đồ án tốt nghiệp đều phải liên
hệ với các giáo viên trong khoa để được hướng dẫn đề tài và thực hiện đề tài đó Việc
Trang 27cả sinh viên và giáo viên Sinh viên sẽ mất thời gian tìm thông tin cá nhân của giảng
viên để có thể liên hệ được với giảng viên đó, chưa kể việc giảng viên đó đã đủ số
người hướng dẫn, khiến sinh viên phải tìm giảng viên khác Về bên phía giảng viên,
có thể sẽ gặp nhiều phiền toái khi số sinh viên liên hệ là quá đông (mất thời gian nghe
điện thoại, trả lời thư điện tử )
- Mục đích đề tài :
Bài toán quản lý đề tài khóa luận tốt nghiệp của sinh viên được xây dựng trên nền
web nhằm đáp ứng được việc giao tiếp thông tin giữa sinh viên và giảng viên được
nhanh chóng và thuận tiện nhất Mỗi sinh viên và giảng viên đều được cấp một tài
khoản đăng nhập để thuận tiện cho việc quản lý đề tài của mình Mỗi sinh viên có
một giảng viên đồng hướng dẫn thực hiện đề tài của mình Sinh viên có thể đề nghị
được hướng dẫn bởi một giảng viên nếu giảng viên đó vẫn còn số người hướng dẫn
Đối với giảng viên, có thể đưa ra đề tài để sinh viên tham khảo và nhận hướng dẫn
Nếu giảng viên đã nhận đủ người để hướng dẫn thì không thể nhận thêm được nữa
Tùy vào học vị của giảng viên mà số lượng sinh viên có thể hướng dẫn sẽ khác nhau
Do không phải sinh viên nào cũng đủ điều kiện làm khóa luận và không phải giảng
viên nào cũng hướng dẫn khóa luận, do đó, hệ thống cần có một người quản trị, cấp
phát cho sinh viên và giảng viên tài khoản đăng nhập vào hệ thống - tài của mình
- - Phạm vi:
Bao trùm tất cả các giai đoạn của quá trình phát triển dự án cho tới trước khi bắt tay
vào quá trình lập trình
1 2 Công cụ
- Các kiểu yêu cầu : STRQ, FEAT, UC
- Công cụ sử dụng :ms word, excel, trello
1.3 Các nhân tố tham gia
- Khách hàng : Văn phòng khoa
- Người dùng cuối : Sinh viên, giáo viên, văn phòng khoa, bộ môn
- Người quản lý: văn phòng khoa, bộ môn
- Nhà phát triển: Lập trình viên, người phân tích hệ thống, nhà thiết kế,
- Kiểm thử viên: team 4
- Người quản lý phần mềm : Nhóm trưởng nhóm 1
Trang 28- Người quản trị cơ sở dữ liệu: Team 3
- Người quản lý cấu hình: Team 2, Team 3
1.4 Bảng danh sách các công việc
STT Công việc chính Mã hoá CV Công việc chi tiết Thành viên thực
D Đặc tả yêu cầu
Thảo, Hùng,Tuyết Anh(team2)
E Phân tích thiết kế
Thảo, Hùng,Tuyết Anh(team2)
Tiến, Huy Nam ,Phú, Trung Quân(team3)
Khải(team4)
Trang 29Deploy + User
Vân,Vũ(team5)
II.XÁC ĐỊNH YÊU CẦU TỪ CÁC STAKEHOLDERS (Xác định STRQ, FEAT)
2.1 Xác định các yêu cầu từ các stakeholders (STRQs)
- STRQ1: Sinh viên muốn hệ thống có chức năng liên hệ trực tiếp đến giáo viên
hướng dẫn
- STRQ2: Hệ thống có chức năng đăng nhập
- STRQ3: Sinh viên muốn hệ thống có chức năng đăng ký đề tài
- STRQ4: Sinh viên muốn có chức năng gửi đề tài tới giáo viên hướng dẫn
- STRQ5: Sinh viên chọn giáo viên hướng dẫn từ danh sách của hệ thống
- STRQ6: Sinh viên muốn gửi đề cương đến bộ môn phụ trách
- STRQ7: Giáo viên chấp nhận hoặc từ chối sinh viên chọn
- STRQ8: Giáo viên xem đề tài của sinh viên đưa ra nhận xét chọn hợp lý hoặc không
hợp lý
- STRQ9: Giáo viên muốn tạo thời gian để trao đổi với cho sinh viên về đề tài
- STRQ10: Giáo viên muốn xét duyệt đồ án của sinh viên
- STRQ11: VPK (admin) có chức năng thêm danh sách giáo viên hướng dẫn
- STRQ12: VPK (admin) xét duyệt đề cương của sinh viên
- STRQ13: Bộ môn xét duyệt đề cương của sinh viên s
- STRQ14: VPK thông báo ngày bảo vệ cho sinh viên
- STRQ15: VPK muốn thông báo kết quả bảo vệ cho sinh viên
- STRQ16: VPK (admin) muốn quản lý tài khoản người dùng
- STRQ17: Sinh viên sửa đề tài
- STRQ18: Sinh viên xác nhận hoàn thành bước đăng ký giáo viên
- STRQ19: VPK gửi mail xác nhận thông tin giáo viên
2.2 Xác định các FEATs từ các STRQs
- FEAT1: Sinh viên liên hệ trực tiếp với giáo viên hướng dẫn qua email
- FEAT2: Hệ thống có chức năng đăng nhập
Trang 30- FEAT3.2: Bộ môn đăng ký đề tài nếu quá hạn
- FEAT4: Sinh viên có thể gửi đề tài tới cho giáo viên hướng dẫn
- FEAT5: Sinh viên chọn giáo viên hướng dẫn từ danh sách
- FEAT6: Sinh viên có thể gửi file đề cương đến bộ môn phụ trách
- FEAT 7.1: Giáo viên chấp nhận sinh viên
- FEAT 7.2: Giáo viên từ chối sinh viên
- FEAT 8.1: Giáo viên xem đề tài của sinh viên nhận xét chọn hợp lý
- FEAT 8.2: Giáo viên xem đề tài của sinh viên nhận xét không hợp lý
- FEAT 9: Giáo viên có thể tạo thời gian để trao đổi với sinh viên
- FEAT10.1: Giáo viên có thể xem đề cương của sinh viên
- FEAT10.2: Giáo viên đồng ý đề cương của sinh viên
- FEAT10.3: Giáo viên không đồng ý đề cương của sinh viên
- FEAT11: Văn phòng khoa (admin) có chức năng thêm danh sách giáo viên hướng
dẫn
- FEAT12.1: Văn phòng khoa (admin) có thể xem đề cương của sinh viên
- FEAT12.2: Văn phòng khoa (admin) đồng ý đề cương của sinh viên
- FEAT12.3: Văn phòng khoa (admin) không đồng ý đề cương của sinh viên
- FEAT12.4: Văn phòng khoa (admin) gửi lịch thực hiện học phần tốt nghiệp
- FEAT13.1: Bộ môn có thể xem đề cương của sinh viên
- FEAT13.2: Bộ môn đồng ý đề cương của sinh viên
- FEAT13.3: Bộ môn không đồng ý đề cương của sinh viên
- FEAT13.4: Bộ môn gửi đề cương về văn phòng khoa
- FEAT14: Văn phòng khoa gửi thông báo ngày bảo vệ cho sinh viên
- FEAT15: Văn phòng khoa gửi thông báo kết quả bảo vệ cho sinh viên
- FEAT16.1: Văn phòng khoa (admin) có thể thêm tài khoản người dùng
- FEAT16.2: Văn phòng khoa (admin) có thể xóa tài khoản người dùng
- FEAT16.3: Văn phòng khoa (admin) có thể sửa tài khoản người dùng
- FEAT17: Sinh viên sửa đề tài
- FEAT18: Sinh viên xác nhận hoàn thành bước đăng ký giáo viên
- FEAT19: Văn phòng khoa gửi mail xác nhận thông tin giáo viên
Trang 31- Tạo tài khoản cho sinh viên
- Xem danh sách giáo viên
- Chọn giáo viên liên hệ hướng dẫn
- Duyệt giáo viên hướng dẫn
- Phân công giáo viên hướng dẫn cho sinh viên
- Xác nhận hoàn thành bước đăng ký giáo viên
2.3.3 Xét giao
- Đăng ký đề tài
- Sửa đề tài
- Duyệt đề tài sinh viên đăng ký
- Đăng ký đề tài cho sinh viên
- Xác nhận hoàn thành bước đăng ký đề tài
2.3.4 Bộ môn phụ trách ngành phân công giáo viên hướng dẫn, thông báo tới giáo
viên, sinh viên
Sinh viên gặp giáo viên hướng dẫn để nhận nhiệm vụ thực hiện HPTN
Sinh viên nộp đề cương về bộ môn phụ trách ngành để xét duyệt
- Xác nhận thông tin giáo viên
- Liên hệ giáo viên
- Lựa chọn thời gian trao đổi đồ án
2.3.6 Sinh viên thực hiện học phần tốt nghiệp
- Chọn thời gian liên lạc với giáo viên
Trang 32- Chọn deadline để nộp báo cáo cuối (để chấp thuận xem có được báo cáo bảo vệ
không)
- Nộp báo cáo cuối
- Duyệt báo cáo của sinh viên
2.3.7 Chấm và bảo vệ
- Cập nhật ngày bảo vệ
- Gửi kết quả
III Yêu cầu phi chức năng
- Giao diện thân thiện với người dùng
- Hệ thống có tính bảo mật cao
- Hệ thống có khả năng xử lý số lượng người dùng cần thiết mà không có sự suy giảm
về hiệu suất
- Hệ thống sẵn sàng khi cần thiết
- Hệ thống phải bảo trì: dễ dàng sửa lỗi để cải thiện hiệu suất
- Hệ thống có thể chạy trên các nền tảng khác nhau
- Hệ thống đáng tin cậy và đáp ứng các yêu cầu của người sử dụng
- Hệ thống phải dễ sử dụng và dễ hiểu
- Hệ thống phải tương thích với các hệ thống khác
IV Estimate time (COCOMO)
4.1 Mở đầu
COCOMO có 3 loại: organic mode (quen thuộc); semi-detached mode (ở giữa),
embedded mode (ràng buộc cứng nhắc)
=> Trong bài này, nhóm dự án sử dụng mô hình Basic Model / Basic COCOMO, với
mô hình semi-detached mode
4.2 Công thức tính
Trang 334.3 Quy ước
Theo những mục đã cung cấp ở trên, hiện tại, ta sẽ tính thời gian ước lượng theo mô
hình Basic COCOMO, với công thức cần tính lần lượt là Effort Applied (E),
Development Time (D) và People Required (P)
Để tính được 3 thông số trên, ta cần biết được KLOC (1k line of code)
Sau đây là những quy ước của các thuật ngữ trong bài này:
• Unadjusted Function Points: UFP
• Technical Complexity Factor: TCF
• Degree of Influence: DI
• Unadjusted Function Point Count: UFC
Công thức tính:
Trang 34External input trong phát triển phần mềm là dữ liệu đầu vào được cung cấp từ
bên ngoài hệ thống, cụ thể ở đây khách hàng sẽ cung cấp gì cho team để xây
dựng làm input đầu vào cho hệ thống
Trong bài toán này, External input gồm danh sách các yêu cầu cơ bản, chức
năng mà khách hàng muốn có trong hệ thống mong muốn
=> Tổng số: 1
• External output
External output kết quả được trả về cho khách hàng External output có thể là
bất kỳ loại thông tin nào được gửi từ ứng dụng phần mềm đến người dùng
hoặc các hệ thống khác, chẳng hạn như báo cáo, biểu đồ…
Trong bài toán này, External output gồm: danh sách các link quan trọng,
agenda, gantt chart, yêu cầu chức năng, yêu cầu phi chức năng, product
backlog, report team 1, design document, report team 2, UI UX, tài liệu thiết
Trang 35hướng dẫn vận hành (operational manual), test case document, report test, tài
liệu hướng dẫn người dùng (user manual)
=> Tổng số: 17
• External inquiry
External inquiry: là các dữ liệu đầu ra cần được kiểm chứng, cụ thể, chúng ta
có thể kiểm chứng thông qua các đặc tả được cung cấp
Trong bài toán này có tất cả 27 use cases
Internal files: là các file logic chính trong hệ thống xử lý
Trong bài toán này, chúng ta sử dụng 30 file sử dụng logic chính
=> Tổng số 30
Step 2: Tính UFP
Trang 36Giải thích về bảng thông tin trên Bảng thông tin đưa trên là tổng hợp các danh mục ở
step 1, được sắp xếp theo 3 mức độ hiện hành (simple, average, complex) Hiện tại
trong bài toán này ta sử dụng mức độ simple để tránh phức tạp và hệ thống của chúng
ta cũng không quá lớn về quy mô xử lý
Ta có: External input (user input) có 1 file; External output (user output) có 17 files;
External inquiry (user request) có 27 files; External files có 1 file; Internal files có 30
Step 3: Technical Complexity Factor
Technical Complexity Factor (TCF) là một chỉ số trong phương pháp định lượng
phần mềm COCOMO II để đo lường độ phức tạp kỹ thuật của phần mềm TCF đánh
giá các yếu tố kỹ thuật như khả năng tái sử dụng code, tầm quan trọng của hệ thống,
khả năng mở rộng và bảo trì, giao diện người dùng, tích hợp với các ứng dụng khác,
độ tin cậy và sự an toàn
TCF gồm 9 chỉ số và tương ứng từng chỉ số, ta sẽ nhận định và đánh giá từng danh
mục trên thang điểm 5
1 Scalability: The ability of a system to handle an increasing workload or
number of users without sacrificing performance (2)
2 Interoperability: The ease with which a system can integrate with other
Trang 377 Reliability: The ability of a system to perform consistently and predictably
without error or failure (2)
8 Complexity of algorithms: The complexity of the algorithms used by the
system to perform its tasks (3)
9 Data storage requirements: The amount and complexity of data that must be
stored and managed by the system (2)
10 Technical skills required: The level of technical expertise required to develop
and maintain the system (5)
Step 4: Tính DI
Degree of Influence là chỉ số đo lường mức độ ảnh hưởng mà một yếu tố có thể gây
ra đến một rủi ro cụ thể Degree of influence đánh giá mức độ ảnh hưởng của một
nhân tố nào đó đối với việc xảy ra một rủi ro
Để tính được chỉ số Degree of Influence (DI), ta cộng tất cả các danh mục ở step 3
Ta có DI = 30
Step 5: Tính TCF dựa trên DI
Technical Complexity Factor (TCF) là một chỉ số trong phương pháp định lượng
phần mềm COCOMO II để đo lường độ phức tạp kỹ thuật của phần mềm TCF đánh
giá các yếu tố kỹ thuật như khả năng tái sử dụng code, tầm quan trọng của hệ thống,
khả năng mở rộng và bảo trì, giao diện người dùng, tích hợp với các ứng dụng khác,
độ tin cậy và sự an toàn
TCF = 0.65 * 0.01 * DI = 0.65 * 0.01 * 30 = 0.195
Step 6: Tính FP
Function Point đánh giá kích thước của một hệ thống phần mềm bằng cách đếm và
gán điểm cho các yêu cầu chức năng của hệ thống
Trang 38Step 7: Tính KLOC
Cuối cùng, KLOC là viết tắt của Kilolines of Code, tức là đo lường kích thước
của một chương trình máy tính bằng số lượng các dòng code KLOC là một trong
những phương pháp đo lường kích thước phần mềm phổ biến được sử dụng trong
quản lý dự án phần mềm KLOC được tính bằng cách đếm số lượng dòng code trong
mã nguồn của chương trình máy tính Để tính toán KLOC, mỗi dòng code chỉ được
tính một lần, bao gồm cả các dòng chú thích và khoảng trống không cần thiết
Dự án này được dự định viết bằng ngôn ngữ NodeJS, vì thế LOC/FP (theo
google) là 53
Vì thế, ta có kết quả KLOC như sau:
4.5 Kết luận
Ta có 3 phương pháp tính ra E tuỳ thuộc vào 3 loại mô hình
Trong bài toán này, ta dùng mô hình semi-detached mode
Trang 394.6 References
Phat Trien DAPM - Google Drive
Trang 40CHƯƠNG 2 PHÂN TÍCH - THIẾT KẾ
2.1 Use Case tổng quát
Hình 2.1: Use Case tổng quát
2.1.1 Use Case chi tiết của actor sinh viên