Cuối cùng em vô cùng biết ơn gia đình và bạn bè, những người đã luôn luôn ở bên cạnh em, động viên, chia sẻ với em trong suốt thời gian thực hiện báo cáo kết thúc môn học với đề tài “HỆ
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC CÔNG NGHỆ TIẾN
BÀI TẬP KẾT THÚC MÔN
CÔNG NGHỆ PHẦN MỀM
HỆ THỐNG QUẢN LÍ SỰ KIỆN TRƯỜNG HỌC
SVTH : Mai Quốc Toàn
Lớp : 20PFIEV3
Mã SV : 123200128
GVHD : Nguyễn Văn Liêm
Đà Nẵng, ngày 8 tháng 12 năm 2023
Trang 2Mục Lục
Lời mở đầu 3
1 Project Description : 4
1.1 Mô tả dự án : 4
1.2 Chức năng cụ thể : 4
1.3 Yêu Cầu Hệ Thống: 5
1.4 Thời Gian và Kinh Phí: 5
2 SRS: Software Specification : 5
Chức năng 1: Đăng ký sự kiện 5
Chức năng 2: Quản lý danh sách tham gia 5
Chức năng 3: Đánh giá sự kiện 5
Chức năng 4: Thông Báo và Giao Tiếp 6
Chức năng 5: Chức Năng Đăng Nhập và Bảo Mật 6
3 Design : 6
3.1 Class Diagram: 6
3.2 Sequence Diagram: 7
4 Common Defect Checklist: 7
4.1 Lỗi cú pháp (Syntax Errors): 7
4.2 Lỗi logic: 8
4.3 Lỗi biên dịch: 8
4.4 Lỗi thực thi (Runtime Errors): 8
4.5 Lỗi số học (Arithmetic Errors): 9
4.6 Lỗi tài nguyên: 9
4.7 Lỗi giao diện: 9
4.8 Lỗi bảo mật: 9
4.9 Lỗi hiệu suất: 9
4.10 Lỗi khả năng mở rộng: 10
5 Bảng thu hoạch kết thúc môn học : 10
Trang 3Lời mở đầu
Để hoàn thành được báo cáo kết thúc môn học này, trước hết em xin gửi lời
cảm ơn chân thành nhất đến các Cán bộ Giảng viên Khoa Khoa Học Công Nghệ Tiên Tiến, các cán bộ giảng viên trong Trường Đại học Bách Khoa Đà Nẵng đã tận tình giảng dạy và truyền đạt kiến thức cho em Đồng thời em xin gửi lời cảm ơn đặc biệt về sự chỉ dạy, hướng dẫn tận tình của Thầy Nguyễn Văn Liêm đã luôn tận tình hướng dẫn, giúp đỡ em trong suốt thời gian thực hiện báo cáo kết thúc môn
Em cũng xin gửi lời cảm ơn tới Khoa Khoa Học Công Nghệ Tiên Tiến – Trường Đại Học Bách Khoa Đà Nẵng đã luôn quan tâm và tạo điều kiện giúp em hoàn thành báo cáo kết thúc môn này Ngoài ra, em xin cảm ơn những người bạn đã giúp đỡ và trao đổi thêm nhiều thông tin
về đề tài trong quá trình thực hiện đề tài này
Cuối cùng em vô cùng biết ơn gia đình và bạn bè, những người đã luôn luôn ở bên cạnh
em, động viên, chia sẻ với em trong suốt thời gian thực hiện báo cáo kết thúc môn học với đề tài
“HỆ THỐNG QUẢN LÍ SỰ KIỆN TRƯỜNG HỌC”
Do kiến thức còn hạn chế, bài báo cáo của em không tránh khỏi những sai sót Rất mong nhận được những lời góp ý từ quý Thầy cô để báo cáo kết thúc môn học của em được hoàn thiện
và giúp em có thêm những kinh nghiệm quý báu
Cuối cùng, em xin kính chúc các thầy cô giảng viên trường Đại học Bách Khoa Đà Nẵng nói chung, các thầy cô khoa khoa học tiên tiến nói riêng dồi dào sức khỏe và thành công trong
sự nghiệp cao quý
Sinh viên thực hiện
Mai Quốc Toàn
Trang 41 Project Description :
1.1 Mô tả dự án :
Tên dự án: Hệ thống Quản lý Sự kiện Trường học
Mô tả:
Dự án tập trung vào việc tạo ra một hệ thống quản lý sự kiện cho trường học Hệ thống sẽ giúp giáo viên và sinh viên đăng ký, quản lý và tham gia các sự kiện như hội thảo, buổi hướng dẫn, hoặc các hoạt động ngoại khóa
Lập kế hoạch sự kiện: Cho phép người dùng tạo và quản lý các sự kiện như lễ hội, buổi họp phụ huynh, các cuộc thi, hoạt động ngoại khóa, v.v Người dùng có thể đặt ngày giờ, địa điểm, và mô tả chi tiết cho mỗi sự kiện
Quản lý nguồn lực: Giúp phân bổ và theo dõi nguồn lực cần thiết cho các sự kiện, như phòng học, thiết bị, vật tư, và nhân sự
Giao tiếp và thông báo: Tích hợp với các hệ thống thông báo để gửi thông tin về sự kiện đến học sinh, giáo viên, và phụ huynh qua email, tin nhắn, hoặc thông qua ứng dụng di động Đăng ký tham gia: Cung cấp chức năng cho phép học sinh và giáo viên đăng ký tham gia các sự kiện, giúp dễ dàng quản lý số lượng người tham gia
Báo cáo và phân tích: Tạo các báo cáo về sự kiện, bao gồm số lượng người tham dự, đánh giá sự kiện, và phân tích dữ liệu để cải thiện quá trình tổ chức sự kiện trong tương lai
Tích hợp với các hệ thống khác: Có khả năng tích hợp với các hệ thống quản lý học đường khác như hệ thống quản lý học tập, hệ thống tài chính, để đảm bảo quản lý sự kiện một cách toàn diện
1.2 Chức năng cụ thể :
a Quản Lý Sự Kiện:
Tạo, cập nhật và xóa thông tin về sự kiện
Lập lịch cho sự kiện với các thông tin như ngày, giờ, địa điểm và mô tả chi tiết
b Đăng Ký và Tham Gia:
Học sinh, giáo viên và nhân viên có thể đăng ký tham gia sự kiện dễ dàng
Xác nhận tự động và gửi thông báo cho người dùng
c Quản Lý Phòng Học và Thiết Bị:
Đặt phòng học và thiết bị cho sự kiện một cách thuận tiện
Kiểm soát lịch trình để tránh trùng lặp và xung đột
d Thông Báo và Giao Tiếp:
Hệ thống thông báo tự động qua email, tin nhắn và ứng dụng di động
Diễn đàn hoặc phòng trò chuyện để tương tác và thảo luận về sự kiện
e Quản Lý Đăng Ký và Thống Kê:
Theo dõi số lượng đăng ký và tham gia sự kiện
Tạo báo cáo và thống kê về hoạt động sự kiện
Trang 5f Tích Hợp với Hệ Thống Khác:
Liên kết với hệ thống quản lý học sinh và giáo viên hiện tại
Đồng bộ lịch với các ứng dụng phổ biến như Google Calendar
g Chức Năng Đăng Nhập và Bảo Mật:
Đăng nhập an toàn cho người dùng và quản trị viên
Bảo mật thông tin cá nhân và dữ liệu sự kiện
h Hỗ Trợ Đa Ngôn Ngữ:
Hỗ trợ nhiều ngôn ngữ để phục vụ đa dạng cộng đồng học
1.3 Yêu Cầu Hệ Thống:
Giao diện thân thiện và dễ sử dụng
Quản lý dễ dàng với người quản lý
Dễ nâng cấp và bảo trì phần mềm
1.4 Thời Gian và Kinh Phí:
Thời gian hoàn thành từ 02/05/2022 đến 19/06/2022
Kinh phí dự án là 50.000.000 VND, với kinh phí dự trữ 10% tổng kinh phí
2 SRS: Software Specification :
Chức năng 1: Đăng ký sự kiện
Mô tả:
- Giáo viên có thể tạo sự kiện mới bằng cách nhập thông tin như tên sự kiện, ngày, giờ, địa điểm và mô tả sự kiện
- Sinh viên có thể đăng ký tham gia sự kiện đã được tạo
Yêu cầu chi tiết :
- Hệ thống phải cung cấp giao diện cho giáo viên để tạo sự kiện mới
- Thông tin về sự kiện như tên, ngày, giờ, địa điểm và mô tả phải được lưu trữ và hiển thị đúng cách trong hệ thống
- Sinh viên phải có thể xem danh sách sự kiện và đăng ký tham gia một sự kiện cụ thể
Chức năng 2: Quản lý danh sách tham gia
Mô tả :
- Hệ thống tự động cập nhật danh sách sinh viên đã đăng ký tham gia mỗi sự kiện
- Gửi thông báo đến sinh viên và giáo viên về việc tham gia sự kiện
Yêu cầu chi tiết :
- Hệ thống phải tự động cập nhật danh sách đăng ký mỗi khi có thay đổi
- Gửi thông báo qua email hoặc thông báo trực tuyến đến tất cả các sinh viên và giáo viên liên quan về sự kiện
Chức năng 3: Đánh giá sự kiện
Mô tả :
- Sinh viên có thể đánh giá sự kiện sau khi kết thúc, cung cấp phản hồi cho giáo viên và sinh viên khác
Yêu cầu chi tiết :
Trang 6- Hệ thống phải có giao diện để sinh viên đánh giá sự kiện.
- Đánh giá và phản hồi của sinh viên phải được lưu trữ và hiển thị cho mọi người xem
- Giáo viên cũng có thể xem đánh giá để cải thiện sự kiện trong tương lai
Chức năng 4: Thông Báo và Giao Tiếp
Mô Tả: Chức năng này cung cấp các kênh giao tiếp và thông báo về sự kiện.
Yêu Cầu Chi Tiết:
- Hệ thống thông báo tự động qua email, tin nhắn và ứng dụng di động
- Diễn đàn hoặc phòng trò chuyện để tương tác và thảo luận về sự kiện
Chức năng 5: Chức Năng Đăng Nhập và Bảo Mật
Mô Tả: Chức năng này đảm bảo tính riêng tư và bảo mật thông tin.
Yêu Cầu Chi Tiết:
- Đăng nhập an toàn với các cấp độ quyền hạn cho người dùng và quản trị viên
- Bảo mật thông tin cá nhân và dữ liệu sự kiện
3 Design :
3.1 Class Diagram:
Class Diagram:
- Class Diagram mô tả cấu trúc của hệ thống và mối quan hệ giữa các đối tượng
- Lớp Event chứa thông tin về sự kiện và các phương thức để quản lý sự kiện
- Lớp User đại diện cho cả giáo viên và sinh viên, có các thuộc tính như tên người dùng và danh sách sự kiện đã đăng ký
- Mối quan hệ giữa Event và User được thể hiện thông qua phương thức registerForEvent(), đồng thời Event có thể được đánh giá bởi User thông qua phương thức evaluateEvent()
Lớp Event :
Thuộc tính: + eventName (tên sự kiện)
+ date (ngày diễn ra sự kiện)
+ time (thời gian diễn ra sự kiện)
+ location (địa điểm sự kiện)
+ description (mô tả sự kiện)
Phương thức:
- createEvent(): Tạo sự kiện mới và lưu vào hệ thống
- registerForEvent(): Đăng ký tham gia sự kiện và cập nhật danh sách đăng ký
- evaluateEvent(): Đánh giá sự kiện sau khi kết thúc
Lớp User:
Thuộc tính: + username (tên người dùng)
+ userType (loại người dùng, có thể là giáo viên hoặc sinh viên)
+ registeredEvents (danh sách sự kiện đã đăng ký tham gia)
Phương thức:
- login(): Đăng nhập vào hệ thống
Trang 7- viewEvents(): Xem danh sách sự kiện và thông tin chi tiết.
- registerForEvent(): Đăng ký tham gia sự kiện và cập nhật danh sách đăng ký
3.2 Sequence Diagram:
Sequence Diagram:
- Sequence Diagram mô tả quá trình tương tác giữa các đối tượng trong một khoảnh khắc
cụ thể
- Diagram 1 mô tả quy trình đăng ký sự kiện, trong đó Sinh viên tương tác với Hệ thống để đăng ký tham gia sự kiện và nhận thông báo xác nhận
- Diagram 2 mô tả cách Hệ thống tự động cập nhật danh sách đăng ký và gửi thông báo cho sinh viên và giáo viên
Diagram 1: Đăng ký sự kiện
- Người dùng: Sinh viên
- Hành động:
1 Sinh viên chọn sự kiện mà họ muốn tham gia
2 Hệ thống xác nhận và cập nhật danh sách đăng ký của sự kiện
3 Hệ thống gửi thông báo xác nhận đăng ký cho sinh viên
Diagram 2: Quản lý danh sách tham gia
- Người dùng: Hệ thống
- Hành động:
1 Hệ thống tự động cập nhật danh sách đăng ký cho mỗi sự kiện
2 Hệ thống gửi thông báo cho sinh viên và giáo viên về việc tham gia sự kiện
4 Common Defect Checklist:
4.1 Lỗi cú pháp (Syntax Errors):
Cũng giống như ngôn ngữ của con người, ngôn ngữ máy tính có các quy tắc ngữ pháp Tuy nhiên, trong khi con người, ở một số trường hợp, có thể giao tiếp với ngữ pháp linh hoạt, thì máy tính lại không thể bỏ qua các lỗi ngữ pháp Ví dụ: cú pháp chính xác là print(‘hello’) Nếu bạn quên một trong các dấu ngoặc đơn, lỗi cú pháp sẽ xảy ra và khiến chương trình ngừng chạy Một số trình soạn thảo văn bản hoặc môi trường phát triển tích hợp (IDE) sẽ có khả năng cảnh báo bạn về các lỗi cú pháp tại thời điểm viết code
4.2 Lỗi logic:
Trang 8Đây có thể là lỗi khó phát hiện nhất Trong những trường hợp này, về mặt kỹ thuật, chương trình là đúng, tuy nhiên, kết quả lại không như mong đợi Lỗi logic xảy ra nếu bạn không kiểm tra kỹ các yêu cầu hoặc chưa hiểu rõ hoạt động của code Trình biên dịch không thể xác định được lỗi logic, do đó lập trình viên phải là người kiểm tra toàn bộ từng dòng code
4.3 Lỗi biên dịch:
Một số ngôn ngữ lập trình yêu cầu một bước biên dịch Đây là thao tác chuyển đổi ngôn ngữ bậc cao thành ngôn ngữ bậc thấp hơn để giúp máy tính dễ dàng hiểu được Lỗi biên dịch xảy ra khi trình biên dịch không thực hiện thành công việc chuyển đổi này Trong ví dụ về print(‘hello’), nếu thiếu một dấu ngoặc đơn, trình biên dịch sẽ dừng lại và thông báo rằng không thể chuyển đổi sang ngôn ngữ bậc thấp Nếu xảy ra lỗi compile-time, bạn sẽ không thể kiểm tra hoặc khởi chạy phần mềm
4.4 Lỗi thực thi (Runtime Errors):
Lỗi thực thi xảy ra khi code không hoạt động tốt trên các máy tính khác ngoài máy của lập trình viên Lỗi thực thi đặc biệt khó chịu, bởi nó ảnh hưởng trực tiếp đến người dùng cuối, làm cho ứng dụng trở nên thiếu tin cậy, thậm chí hỏng hoàn toàn Để từng bước hạn chế lỗi này, bạn có thể tham khảo các framework và code do cộng đồng bảo trì, bởi nó đã được triển khai trong nhiều dự án và khắc phục nhiều vấn đề
Trang 94.5 Lỗi số học (Arithmetic Errors):
Lỗi số học là một loại lỗi logic nhưng liên quan đến toán học Ví dụ điển hình khi thực hiện một phương trình chia là bạn không thể chia cho 0, chẳng hạn như age.max / age.min có thể trả về lỗi nếu age.max hoặc age.min bằng 0 Lỗi số học, đôi khi, sẽ tạo ra lỗi logic hoặc thậm chí là lỗi thực thi (với trường hợp kể trên khi chia cho 0) Để hạn chế lỗi số học, bạn hãy tận dụng các kiểm tra tính năng bao hàm edge-cases như số 0 hoặc số âm
4.6 Lỗi tài nguyên:
Máy tính sẽ phân bổ một lượng tài nguyên cố định để chạy chương trình Trong trường hợp code yêu cầu nhiều tài nguyên hơn, lỗi tài nguyên sẽ xảy ra Lỗi tài nguyên có thể khó khắc phục vì máy của lập trình viên thường có chất lượng cao hơn so với máy chủ chạy code Để khắc phục lỗi này, cần sự tham gia của đội ngũ vận hành, thay vì là những người phát triển Hiện nay, có rất nhiều ứng dụng và dịch vụ kiểm tra lưu lượng giúp bạn lường trước được kết quả khi nhiều người dùng thử và chạy code cùng một lúc Từ những ứng dụng này, bạn có thể thực hiện một số điều chỉnh cho phù hợp với thực tế sử dụng
4.7 Lỗi giao diện:
Hầu hết mọi thứ trong phần mềm đều tuân theo các tiêu chuẩn Nếu thông tin đầu vào của chương trình không đúng với tiêu chuẩn, bạn có thể gặp phải lỗi giao diện Ví dụ: lỗi giao diện xảy ra nếu bạn có một API yêu cầu đặt các thông số cụ thể, nhưng điều này không được thực hiện
4.8 Lỗi bảo mật:
Lỗi bảo mật là lỗi xảy ra khi code không an toàn Ví dụ, bạn có thể tiết lộ thông tin nhạy cảm hoặc tạo ra lỗ hổng bảo mật
4.9 Lỗi hiệu suất:
Lỗi hiệu suất là lỗi khiến ứng dụng hoạt động chậm hoặc kém hiệu quả Ví dụ, bạn có thể
sử dụng các vòng lặp lặp đi lặp lại hoặc truy cập bộ nhớ thường xuyên
Trang 104.10 Lỗi khả năng mở rộng:
Lỗi khả năng mở rộng là lỗi khiến ứng dụng khó mở rộng hoặc sửa đổi Ví dụ, bạn có thể
sử dụng các hàm phụ thuộc hoặc không sử dụng các mô hình thiết kế tốt
5 Bảng thu hoạch kết thúc môn học :
Quy trình phát triển
phần mềm
Hiểu về các giai đoạn và hoạt động trong quy trình phát triển phần mềm
Phân tích yêu cầu Nắm bắt được yêu cầu của khách hàng và người dùng cuối
là chìa khóa để xây dựng một hệ thống phần mềm phản ánh đúng nhu cầu và mong muốn của họ Việc mô tả chức năng cần phải chi tiết và rõ ràng để tránh nhầm lẫn trong quá trình phát triển
Thiết kế phần mềm Hiểu về các phương pháp và kỹ thuật thiết kế phần mềm, áp
dụng các phương pháp và kỹ thuật để tạo ra kiến trúc hệ thống, đảm bảo tính linh hoạt, dễ bảo trì và mở rộng trong tương lai
Lập trình Có kiến thức về ngôn ngữ lập trình và kỹ năng lập trình cơ
bản Kiểm thử phần mềm Biết cách kiểm thử và xác nhận tính đúng đắn của phần
mềm Quản lý dự án phần
mềm
Hiểu biết về các phương pháp quản lý dự án, tổ chức, theo dõi và điều hành dự án một cách hiệu quả, giữ cho mọi thứ được kiểm soát và đạt được mục tiêu dự án
Công nghệ mới trong
phát triển phần mềm
Cập nhật với các công nghệ mới và xu hướng trong lĩnh vực phát triển phần mềm tạo ra sản phẩm tiên tiến hơn
Tương tác và giao tiếp Ngoài kiến thức chuyên sâu, khả năng tương tác và giao
tiếp hiệu quả cũng rất quan trọng Kỹ năng này không chỉ
hỗ trợ trong việc làm việc nhóm mà còn giúp truyền đạt ý tưởng và tiếp thu phản hồi từ đồng đội, khách hàng, và các bên liên quan khác
Quản Quản lý thay đổi Trong quá trình phát triển, thay đổi là điều không thể tránh
khỏi Khả năng quản lý thay đổi linh hoạt và hiệu quả là yếu
tố then chốt để đảm bảo rằng dự án vẫn tiến triển mà không gặp phải những vấn đề lớn do thay đổi
Bảo mật phần mềm Hiểu biết về các vấn đề bảo mật phần mềm là quan trọng để
bảo vệ thông tin và dữ liệu quan trọng Việc tích hợp các biện pháp an ninh từ giai đoạn thiết kế đến triển khai là cần thiết để đối mặt với các thách thức bảo mật ngày càng phức