Professional Documents
Culture Documents
Báo cáo bài tập lớn - Nhóm 17
Báo cáo bài tập lớn - Nhóm 17
5. Hệ Tính toán dữ liệu dựa trên thời gian ra, vào, công
thống nhân.
Mô tả Cho phép nhân viên xem thông tin chấm công của tháng hiện tại.
Tiền điều Nhân viên đăng nhập thành công vào hệ thống chấm công của công
kiện ty.
STT Thực hiện bởi Hành động
Luồng sự
kiện chính
(thành công) 1 Nhân viên Đăng nhập thành công vào hệ thống
Luồng sự Không
kiện thay
thế
Hậu điều Không
kiện
Mã usecase UC002 Tên usecase Xem thông tin chấm
công tháng bất kỳ
Mô tả Cho phép nhân viên xem thông tin chấm công của 1 tháng bất kỳ.
Tiền điều Nhân viên đăng nhập thành công vào hệ thống.
kiện
STT Thực hiện bởi Hành động
Luồng sự
kiện chính
(thành 1 Nhân viên Đăng nhập thành công vào hệ thống
công)
2 Hệ thống Giao diện bảng chấm công, mục chọn
tháng dạng dropdown
Luồng sự Không
kiện thay
thế
Hậu điều Không
kiện
Mã UC003 Tên usecase Xem lịch sử chấm công
usecase trên máy chấm công
Mô tả Cho phép xem chi tiết(lịch sử) các lần chấm công
3 Nhân viên Nhập thông tin thời gian, nhấn nút tìm
kiếm
Mô tả Cho phép nhân viên xem thông tin về chấm công bù, đơn chấm công
do làm remote, đơn OT, đơn đi muộn về sớm và đơn xin nghỉ phép.
Mô tả Cho phép manager xem thông tin chấm công của tháng hiện tại của
nhân viên.
Tiền điều Manager đăng nhập thành công vào hệ thống chấm công của công ty.
kiện
STT Thực hiện bởi Hành động
Luồng sự
kiện
chính 1 Manager Đăng nhập thành công vào hệ thống
(thành
công) 2 Hệ thống Hiển thị giao diện trang chủ
Hậu điều Xem được chi tiết chính xác nhân viên đó
kiện
Mã UC006 Tên usecase Xem thông tin chấm
usecas công tháng bất kỳ
e của nhân viên
Tác Manager
nhân
Mô tả Cho phép Manager xem thông tin chấm công của 1 tháng bất
kỳ.
Hậu Không
điều
kiện
Mã UC007 Tên usecase Xem thông tin chấm
usecas công bù, xin làm
e remote, đơn OT, đơn
- Biểu đồ usecase chi tiết
xin nghỉ phép, đơn đi
muộn về sớm
Tác Manager
nhân
Mô tả Cho phép Manager xem thông tin về chấm công bù, đơn chấm
công do làm remote, đơn OT, đơn đi muộn về sớm và đơn xin
nghỉ phép.
Hậu Không
điều
kiện
+ Biểu đồ xem thông tin tháng hiện tại hoặc tháng bất kì
+ Biểu đồ xem thông tin chấm công bù, xin làm remote, đơn OT, đơn xin nghỉ phép, đơn
đi muộn về sớm:
+ Biểu đồ UC quản lý xem thông tin chấm công nhân viên:
+ Biểu đồ UC quản lý xem thông tin chấm công nhân viên, nghỉ, OT,đi muộn về sớm,
chấm công bù:
c. Đặc tả usecase nhập dữ liệu chấm công
Tác nhân HR
Precondition Người dùng đăng nhập với vai trò quản lý nhân sự
Hệ thống Kiểm tr nếu file tải lên không phù hợp định dạng
4.
Hệ thống Kiểm tra file tải lên có phải rỗng hay không
5.
5a. Hệ thống Thông báo file tải lên rỗng, thông báo nhập lại
7a. Hệ thống Thông báo dữ liệu trong file không đúng format.
Yêu cầu sửa và tải lại
- Activity diagram
d. Đặc tả usecase sửa thông tin chấm công
Quản lý nhân sự Chọn xem chi tiết thông tin chấm công theo ngày
5.
6a. Hệ thống Lấy dữ liệu thông tin chấm công của công nhân
tháng được chọn
Luồng
sự kiện Stt Thực Hành động
chính hiện bởi
(Thành 1. 1. Quản lý Chọn tính năng thống kê chấm công
công) nhân sự theo tháng
2. Hệ Lấy dữ liệu thời điểm hiện tại
thống
3. Hệ Hiển thị dữ liệu tổng hợp các tháng
thống bao gồm đã thống kê hoặc chưa thống
kê và trạng thái
4. Quản lý Chọn tháng (tháng chưa thống kê)
nhân sự
5. Hệ Lấy dữ liệu chấm công từ máy vân tay
thống
6. Hệ Xử lý dữ liệu trong bản ghi trả về bảng
thống dữ liệu thông tin tổng hợp theo tháng
7. Hệ Hiển thị danh sách thông tin chấm
thống công tổng hợp
8. Quản lý Chọn xuất thống kê chấm công
nhân sự
9. Hệ Xử lý dữ liệu (Thống kê tổng số giờ
thống làm việc, giờ tăng ca, giờ đi muộn, giờ
về sớm của tất cả nhân viên trong
doanh nghiệp theo tháng).
10. Hệ Hiển thi kết quả thống kê chấm công
thống
11. Quản lý Ấn xác nhận lưu dữ liệu
nhân sự
12. Hệ Hiển thị lưu thành công
thống
Luồng STT Thực hiện Hành động
sự kiện bởi
thay 4a Quản lý Chọn tháng (tháng đã thống kê)
thế nhân sự
5a Hệ thống Lấy dữ liệu
6a Hệ thống Hiển thị ra thông tin chấm công
tổng hợp và thống kê chấm công
7a Quản lý Xem thông tin của tháng đó
nhân sự
6b Hệ thống Không nhận được phản hồi từ máy
vân tay
7b Hệ thống Đưa ra phản hồi lỗi
8b Quản lý Tiến hành kiểm tra lại
nhân sự
Thống kê chấm công được thực hiện chính xác và đầy đủ.
Hậu
Thống kê chấm công được lưu trữ an toàn.
điều
kiện
- Activity diagram
3. Mô tả thiết kế chi tiết phần mềm
-
- Sequense diagram
- Communication diagram
b. Thiết kế chi tiết thông tin chấm công
- Class diagram
-
- Communication diagram
- Sequense diagram
c. Thiết kế chi tiết sửa thông tin chấm công
d. Thiết kế chi tiết nhập dữ liệu chấm công
- Class diagram
- Communication diagram
- Sequense diagram
-
e. Thiết kế chi tiết thống kê chấm công
- Communication diagram
- Sequense diagram
-
4. Các nguyên lý thiết kế và mẫu thiết kế nhóm đã áp dụng, kèm phân tích giải
thích lợi ích đem lại
- Nguyên lý này nói rằng không nên có hơn 1 lý do để một lớp (class) thay đổi. Nghĩa là, nên thiết
kế class của bạn sao cho mỗi class chỉ phục vụ cho một mục đích.
=> Khi áp dụng nguyên tắc này, nhóm em đã tách các class thành các lớp đơn lẻ phục vụ mục
địch riêng hơn.
+ Ví dụ : Phân thành các model con như ChamCongInterface, StaffInterface và
HRInterface và để chỉ ra rằng, các model này chỉ có chức năng như một biến, chỉ cho một mục
đích là get và set dữ liệu vào một đối tượng Object.
b) Open/Closed Priciple:
- Nguyên lý này nói rằng các thực thể phần mềm như: classs, modules, functions,… thì có thể
thoải mái viết code để mở rộng nhưng hạn chế cho việc sửa đổi.
- Ví dụ: một lớp cơ sở ChamCong chứa tất cả các thuộc tính và phương thức lấy dữ liệu chấm
công cơ bản. Lớp này có thể được mở rộng bởi các lớp ChamCongRepository khác nhau cho các
người sử dụng khác nhau(nhân viên or manager) để phục vụ các chức năng của họ. Do đó, nó
được mở rộng dễ dàng và thoải mái nhưng hạn chế việc thay đổi.
c) Liscov Substitution Priciple:
- Nguyên ly này nói rằng các đối tượng của lớp con có thể thay thế được các đối tượng của lớp
cha mà vẫn đảm bảo tính đúng đắn của chương trình.
=> Nhóm đã áp dụng nguyên lý này cho các phương thức xem chấm công bù, xin nghỉ, đơn OT,
đơn đi muộn về sớm.
+ Ví dụ: Model đơn từ có thể được kế thừa từ các model con như chấm công bù, xin
nghỉ, đơn OT, đơn đi muộn về sớm. Vì các phương thức này cũng khá giống nhau nên việc mở
rộng và thay thế phương thức lớp cha để phù hợp với lớp con là hoàn toàn hợp lý.
d) Interface Segregation Priciple
- Nguyên lý này nói rằng thay vì dùng 1 interface lớn, ta nên tách thành nhiều interface nhỏ với
nhiều mục đích cụ thể.
=> Ví dụ ở cách thiết kế class trên, nhóm đã phân thành các interface nhỏ hơn như
ChamCongInterface, StaffInterface và DonTuInterface, rồi ném vào interface lớn như
ChamCongRepositoryInterface.
- Dễ bảo trì, dễ dàng trace code đồng thời dễ tìm bug vì áp dụng nguyên lý Single Responsibility
Priciple, nguyên lý thiết kế giúp tạo ra mã nguồn dễ đọc, hiểu và bảo trì. Điều này giúp nhóm
phát triển phần mềm dễ dàng thực hiện các cải tiến, sửa lỗi và nâng cấp hệ thống mà không gặp
nhiều khó khăn.
- Có khả năng mở rộng vì áp dụng nguyên lý Open/Closed Priciple.
- Có khả năng tái sử dụng vì áp dụng nguyên lý Liscov Substitution Priciple, nguyên lý thiết kế giúp
tạo ra các lớp con, có khả năng tái sử dụng lại lớp cha.
- Hiệu suất (Performance): Thiết kế chặt chẽ và tuân thủ nguyên lý giúp tối ưu hóa hiệu suất của
phần mềm. Các thuật toán và cấu trúc dữ liệu có thể được tối ưu hóa để đảm bảo phần mềm
chạy mượt mà và đáp ứng nhanh chóng.
- Dễ dàng quản lý, dễ dàng đọc đồng thời tuân theo một quy chuẩn nhất định của Framework vì
áp dụng nguyên lý Interface Segregation Priciple
Tóm lại, việc áp dụng các nguyên lý thiết kế trong phát triển phần mềm không chỉ giúp tạo ra
sản phẩm chất lượng cao mà còn giảm thiểu rủi ro, chi phí và thời gian liên quan đến quá
trình phát triển và duy trì.
5. Nhật ký làm việc nhóm:
22/9 -> 29/9: Đọc yêu cầu phần mềm chấm công + phân công rõ các usecase cho từng
người.
29/9 -> 6/10: Họp nhóm để report tiến độ + làm homeword 01
6/10 -> 13/10: Họp nhóm + làm homeword 02
13/10 -> 20/10: Làm homeword 03
20/10->27/10: Họp nhóm để bàn tiến độ công việc, đồng thời thống nhất với nhau cách
thiết kế giao diện. Và làm homework 04.
27/10 -> 3/11: Làm homework 05.
3/11 -> 10/11: Làm homework 06.
10/11 -> 01/12: Họp làm homework 07 -> bắt đầu code phần mềm.
01/12 -> 21/12: Làm báo cáo nhóm + báo cáo cá nhân