Báo cáo Modul liên quan đến Nhà hàng Lotteria - Công nghệ phần mềm PTIT Đây là báo cáo cá nhân của mình nên sẽ còn một số sai sót, cũng như chưa được hoàn thiện Các bạn có thể tham khảo và phát triển thêm Mình cảm ơn!
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 1
Chuỗi nhà hàng đồ ăn nhanh Lotteria đặt hàng anh chị phát
triển một phần mềm giúp họ quản lí phân công và chấm công nhân
Trang 2viên làm thêm theo giờ (parttime) với mô tả như sau:
● Chuỗi nhà hàng có nhiều nhà hàng Mỗi nhà hàng có nhiềunhân viên làm theo giờ Mỗi ngày làm việc có 2 ca, ca 1 từ8-16h, ca 2 từ 16-24h Mức tiền công theo giờ là giống
nhau cho tất cả nhân viên làm theo giờ
● Mỗi nhân viên, sau khi kí hợp đồng, được đăng kí những
buổi nào rảnh để có thể đến làm việc Số buổi có thể làm
việc trong mỗi tuần mà mỗi nhân viên đăng kí phải đạt
ngưỡng tối thiểu theo quy định Thông tin này có thể thay
đổi hàng tuần, trước khi lên lịch làm việc cho tuần tiếp
theo
● Quản lí sẽ dựa trên lịch đăng kí của từng nhân viên để lên
lịch cho tuần tiếp theo Đảm bảo mỗi ca có đủ N nhân viênlàm việc Nếu có ca nào đó mà số nhân viên đăng kí lớn
hơn N, thì ưu tiên những nhân viên đang có số giờ làm ít
hơn xếp trước Lịch tuần tiếp theo sẽ được thông báo cho
toàn bộ nhân viên để tiện chuẩn bị
● Khi đến làm việc, nhân viên quét thẻ checkin giờ vào làm,
khi về, nhân viên quét thẻ checkout để về
● Tiền lương nhân viên tính theo số giờ thực làm của nhân
viên và được trả theo tuần Ca nào nhân viên làm quá 8h
thì mức tiền công cho phần thời gian đội thêm được tính
thêm 20% ca nào nhân viên đến muộn hoặc về sớm thì
thời gian vắng mặt sẽ bị trừ tiền đội thêm 50%
Anh/chị hãy thực hiện modul "Tính công tuần này" với các
bước sau đây: QL chọn chức năng tính tiền công cho NV trong
tuần → Giao diện tính công hiện lên với ô nhập khoảng thời gian
tính công → QL nhập ngày bắt đầu, ngày kết thúc của tuần vừa rồi
→ Giao diện hiện lên danh sách bảng tiền công cho tất cả các NV
trong tuần đó, mỗi NV trên 1 dòng, xếp theo thứ tự tên: mã, tên, số
đt, tổng số giờ làm trong ca, tổng tiền trong ca, tổng số giờ thừa ca,tổng tiền thừa ca, tổng số giờ đi chậm về sớm, tổng số tiền bị phạt,tổng tiền thực nhận cuối cùng → QL click chọn vào 1 dòng để xemchi tiết → Giao diện hiện lên bảng thống kê chi tiết giờ làm của
NV được chọn trong tuần đó, mỗi dòng tương ứng 1 ca làm việc,
xếp theo thứ tự thời gian: thứ, ngày, ca, giờ checkin, giờ checkout,
số giờ trong ca, số tiền trong ca, số giờ thừa ca, số tiền thừa ca, số
giờ đi chậm về sớm, số tiền bị phạt, tổng tiền thực nhận của ca
1 Danh sách các từ chuyên dụng trong lĩnh vực ứng dụng ( glossary) 3
Trang 32 Mô tả hệ thống chi tiết bằng ngôn ngữ tự nhiên 5
2.2 Những người được phép sử dụng phần mềm và được làm các chức năng 6 2.3 Thông tin đối tượng cần xử lý 6 2.4 Quan hệ giữa các đối tượng 6 2.5 Mô tả chi tiết hoạt động 6 2.7 Chi tiết modul “ Tính công tuần này “ 8
1 Trích các lớp thực thể cho toàn hệ thống 9
3.2 Thẻ CRC cho lớp điều khiển 13
5 Scenario với các lớp được trích 14
6 Sequence chart của modul 17
1 Sơ đồ thực thể toàn hệ thống 17
2 Thiết kế cơ sở dữ liệu 18
3 Thiết kế mô hình MVC với thực thể thuần 19
4 Sơ đồ tuần tự pha thiết kế 22
1 Lập kế hoạch test cho modul 23
I Tài liệu pha đặc tả
1 Danh sách các từ chuyên dụng trong lĩnh vực ứng dụng ( glossary)
Trang 4STT Tên Tiếng
Việt
Tên TiếngAnh
Giải thích
thống, có quyềntính công và sắpxếp ca làm chonhân viên
Calculation
Quá trình ghinhận và tính toán
số giờ công củanhân viên
công
PayrollCalculation
Quá trình ghinhận và tính toán
số tiền công củanhân viên dựatrên số giờ công
công Payroll Table Danh sách hiểnthị thông tin về
tiền công củanhân viên
kê StatisticsTabel Bảng hiển thịthông tin chi tiết
về dữ liệu
mỗi nhân viênphải làm việc( cốđịnh )
heck-out Check-in/Check-out Thời điểm nhânviên bắt đầu và
kết thúc côngviệc
Trang 52 Mô tả hệ thống chi tiết bằng ngôn ngữ tự nhiên2.1 Phạm vi phần mềm
- Hỗ trợ quản lý tiền công, chia ca làm cho các nhân viên.
STT Tên Tiếng
Việt
Tên TiếngAnh
Giải thích
thống, có quyềntính công và sắpxếp ca làm chonhân viên
Calculation
Quá trình ghinhận và tính toán
số giờ công củanhân viên
công
PayrollCalculation
Quá trình ghinhận và tính toán
số tiền công củanhân viên dựatrên số giờ công
thừa/thiếuca
Excess/DeficitHours Số giờ mà mỗinhân viên làm
việc thêm hoặcthiếu
9 Số tiền bị
phạt
PenaltyAmount
Số tiền mà nhânviên phải trả khi
vi phạm quyđịnh
10 Tổng tiền
lương nhận
Total Salary Số tiền mà nhân
viên sẽ nhậnđược
cửa hàng
Trang 6- Hỗ trợ nhân viên đăng ký ca và checkin/checkout.
- Chỉ có nhân viên của cửa hàng Lotteria mới được sử dụng
phần mềm ( quản lý và nhân viên)
2.2 Những người được phép sử dụng phần mềm và được làm các chức năng
- Quản lý:
+ Quản lý nhân viên
+ Lên lịch làm việc cho nhân viên
+ Tính tiền công cho nhân viên
+ Thống kê nhân viên
+ Tham gia vào Checkin/Checkout của nhân viên
- Nhân viên:
+ Đăng kí ca làm
+ Checkin/Checkout
2.3 Thông tin đối tượng cần xử lý
- Quản lý: Mã quản lý, thông tin
- Nhân viên: thông tin, ca làm việc, lương,Checkin/Checkout,
- Ca làm: 2 ca
- Lịch làm việc tuần tới: gồm nhiều ca làm
2.4 Quan hệ giữa các đối tượng
- Quản lý: Quản lý các nhân viên.
- Nhân viên đăng ký các ca làm.
- Quản lý lên lịch làm việc cho nhân viên.
2.5 Mô tả chi tiết hoạt động
- Nhân viên muốn chọn ca làm: Đăng nhập vào hệ thống ->Chọn chức năng đăng ký ca làm -> Danh sách ca làm trongtuần -> Chọn ca làm mong muốn -> Đăng ký -> Hệ thống lưuthông tin
Trang 7- Nhân viên muốn checkin/checkout: QL trực tiếp cập nhậttrên máy tính: QL chọn chức năng checkin (hoặc checkout)
→ Giao diện nhập mã NV hiện lên → QL nhập mã NV vàclick submit → Hệ thống lưu và báo thời điểm checkin
(checkout) của NV là thời điểm hiện tại
- Quản lý muốn lên lịch làm việc tuần tới: QL chọn chức nănglên lịch làm việc tuần tới cho nhân viên 1 nhà hàng → Giaodiện lên lịch hiện lên gồm một bảng có 7 dòng tương ứng 7ngày của tuần tới, mỗi dòng có 2 cột tương ứng 2 ca củangày Mỗi cột chứa tên các NV đã chọn cho ca đó → QLclick chọn vào 1 ca → Giao diện hiện lên danh sách các NV
đã đăng kí làm việc cho ca đó và chưa được xếp làm cho ca
đó, mỗi NV trên 1 dòng: tên, số điện thoại, tổng giờ đã lênlịch cho tuần tới, sắp xếp theo chiều tăng dần của tổng giờ đãlên lịch cho tuần tới → QL click chọn một số NV và clicknút chọn → Giao diện quay về trang lên lịch với thông tincác NV được chọn được thêm vào cột của ca tương ứng →
QL lặp lại các bước chọn trên cho đến hết số ca của tuần tới
và click lưu → Hệ thống lưu lại và thông báo thành công,đồng thời in lịch ra để QL phát cho từng NV
2.6 Sơ đồ use-case của toàn bộ hệ thống
Trang 82.7 Chi tiết modul “ Tính công tuần này “
a Modul “Tính công tuần này”
b Chi tiết use-case
- Đăng nhập: Use-case cho phép quản lý đăng nhập vào hệthống
- Đăng xuất: Use-case cho phép quản lý đăng xuất khỏi hệthống
- Tính công tuần này: Use-case cho phép quản lý tính công
- Tìm kiếm khoảng thời gian: Use-case cho phép quản lý tìmkiếm khoảng thời gian chấm công với việc nhập ngày bắt đầu
- Xem chi tiết nhân viên: Chi tiết của nhân viên bao gồm thứ,ngày, ca, giờ checkin, giờ checkout, số giờ trong ca, số tiềntrong ca, số giờ thừa ca, số tiền thừa ca, số giờ đi chậm vềsớm, số tiền bị phạt, tổng tiền thực nhận của ca
Trang 9II Tài liệu pha phân tích
● Nhân viên: Lớp thực thể: NhanVien02(id) - kế thừa từEmployee
● Lịch làm việc tuần tới: Lớp thực thể:
LichLamViec02(id,nv,ngaybatdau,ngayketthuc) – Lịchlàm việc của nhân viên trong tuần tiếp theo do quản lýlên lịch
● Tiền công: Lớp thực thể:
TienCong02(id,tongsogiolamtrongca,tongtientrongca,tongsogiotangca,tongtientangca,tongsogiodimuonvesom,tongtiendimuonvesom,tongtiennhan) – Tiền công nhânviên trong tuần làm việc
● Checkin: Lớp thực thể: Checkin(giobatdau) - Giờ nhânviên bắt đầu làm việc
● Checkout: Lớp thực thể: Checkout(gioketthuc) - Giờnhân viên kết thúc ca làm
● Lịch đăng ký: Lớp thực thể:
LichDangKy02(id,nv,ql)-lịch do nhân viên đăng ký vớiquản lý
● Giờ làm nhân viên: Lớp thực thể: GioLamNhanVien02
- Chi tiết các giờ làm, thời gian checkin, checkout củanhân viên trong 1 ca làm việc
● Các danh từ trừu tượng không nằm trong hệ thống:Hợp đồng, buổi rảnh
- Quan hệ giữa các lớp thực thể:
● Một nhà hàng có nhiều nhân viên, một nhân viên chỉ
Trang 10thuộc vào một nhà hàng.
● Một quản lý có thể lên nhiều lịch làm việc tuần tới
● Một ca có thể có nhiều nhân viên, một nhân viên có thểlàm nhiều ca -> đề xuất thêm một lớp NhanVienCa(id,NhanVien, Ca)
● Nhân viên chỉ có thể checkin và checkout 1 lần trong
cùng 1 ca,một lượt checkin và checkout chỉ thuộc và
một NhanVienCa duy nhất
● Mỗi một nhân viên thì sẽ có nhiều tiền công, mỗi một
tiền công chỉ thuộc vào một nhân viên
● Tiền công sẽ được tính dựa trên một mảng Giờ làm
nhân viên -> Thêm một lớp BangCongNhanVien02 đểquản lý về mặt giao diện
2 Scenario của modul
Use case Tính công tuần này
Tiền điều kiện Quản lý đăng nhập thành công, khi đến ngày
chấm công cho các nhân viên ( cuối tuần).Hậu điều kiện Quản lý xem lại tiền công cho nhân viên và xác
nhận tiền công cho nhân viên
Trang 11Kịch bản
chính
1 Sau khi quản lý A đăng nhập thành công,chọn chức năng “Tính công tuần này”.Quản lý A muốn tính công cho nhân viêntrong tuần
2 Giao diện hiện lên với 2 ô nhập là ngàybắt đầu và ngày kết thúc và 2 nút “ Tìmkiếm” và “Quay lại”
3 Quản lý A nhập ngày bắt đầu và ngày kếtthúc trong tuần, sau đó bấm “Tìm kiếm”
4 Giao diện hiện lên danh sách bảngtiền công cho tất cả các NV trongtuần đó, mỗi NV trên 1 dòng, xếptheo thứ tự tên: mã, tên, số đt, tổng
số giờ làm trong ca, tổng tiền trong
ca, tổng số giờ thừa ca, tổng tiềnthừa ca, tổng số giờ đi chậm về sớm,tổng số tiền bị phạt, tổng tiền thựcnhận cuối cùng
5 Nhân viên quản lý A chọn 1 dòngbất kỳ để xem chi tiết ca làm củanhân viên đó
6 Giao diện hiện lên bảng thống kê chitiết giờ làm của NV được chọn trongtuần đó, mỗi dòng tương ứng 1 calàm việc, xếp theo thứ tự thời gian:
thứ, ngày, ca, giờ checkin, giờcheckout, số giờ trong ca, số tiềntrong ca, số giờ thừa ca, số tiền thừa
ca, số giờ đi chậm về sớm, số tiền bịphạt, tổng tiền thực nhận của ca và 2nút “Xác nhận”,” Quay lại”
7 Quản lý A xem lại các thông tin và chỉnhsửa nếu có và bấm nút “ Xác nhận”
8 Giao diện hiện lên “ Chấm côngnhân viên thành công”
9 Hệ thống quay về giao diện trongbước 4
10 Sau khi hoàn thành chấm côngcho các nhân viên, nhân viên quản
lý A click vào nút “ Quay lại “
11 Hệ thống trở về trang chủ củangười lý
Trang 12Ngoại lệ 3.1 Nhập ngày bắt đầu lớn hơn ngày kết thúc.
3.1.1 Hệ thống yêu cầu người dùng nhập lạingày
3 Sơ đồ lớp của modul
- Lớp điều khiển: ChamChongCtr02
Sơ đồ lớp cho modul “ Tính công tuần này “:
Trang 133.2 Thẻ CRC cho lớp điều khiển
Trang 144 State chart của modul
5 Scenario với các lớp được trích
Use case Tính công tuần này
3 Quản lý A nhập ngày bắt đầu và ngày kếtthúc trong tuần, sau đó bấm “Tìm kiếm”
4 Lớp TimKiemNgayFrm02 gửi yêu cầu
Trang 15lấy Danh sách tiền công nhân viên trongkhoảng thời gian đó tới lớp
ChamCongCtr02
5 Lớp ChamCongCtr02 lấy danh sách tiềncông trong CSDL
6 Lớp ChamCongCtr02 chọn ra danh sáchtiền công trong khoảng thời gian đã
nhập
7 Lớp ChamCongCtr02 gọi lớp TienCong02
để đóng gói thông tin thành danh sách cácđối tượng kiểu TienCong02
8 Lớp TienCong02 đóng gói thông tin và trảlại danh sách các đối tượng kiểu
TienCong02 cho lớp ChamCongCtr02
9 Lớp ChamCongCtr02 chuyển đối tượngTienCong02 cho lớp
DanhSachCongNhanVienFrm02 để hiển thị
10 Lớp DanhSachCongNhanVienFrm02 hiệnlên danh sách bảng tiền công cho tất cả các
NV trong tuần đó, mỗi NV trên 1 dòng, xếptheo thứ tự tên: mã, tên, số đt, tổng số giờlàm trong ca, tổng tiền trong ca, tổng số giờthừa ca, tổng tiền thừa ca, tổng số giờ đichậm về sớm, tổng số tiền bị phạt, tổng tiềnthực nhận cuối cùng
11 Quản lý A click chọn vào một dòng
của nhân viên trên danh sách
12 Lớp DanhSachCongNhanVienFrm02gọi và truyền đối tượng vừa được chọn
cho lớp ChiTietCongNhanVienFrm02
13 Lớp ChiTietCongNhanVienFrm02
hiện ra bảng thống kê chi tiết giờ làm
của NV được chọn trong tuần đó, mỗi
dòng tương ứng 1 ca làm việc, xếp theothứ tự thời gian: thứ, ngày, ca, giờ
checkin, giờ checkout, số giờ trong ca,
số tiền trong ca, số giờ thừa ca, số tiền
thừa ca, số giờ đi chậm về sớm, số tiền
bị phạt, tổng tiền thực nhận của ca
14 Quản lý A xem lại các thông tin và
bấm “Xác nhận”
15 Lớp ChiTietCongNhanVienFrm02
Trang 16gửi thông tin trên form đến lớpBangCongNhanVien02 để đóng gói đốitượng BangCongNhanVien02.
16 Lớp BangCongNhanVien02 đóng góithông tin thành một đối tượng
BangCongNhanVien02
17 Lớp ChiTietCongNhanVienFrm02truyền đối tượng BangCongNhanVien02cho lớp ChamCongCtr02
18 Lớp ChamCongCtr02 cập nhật thôngtin vào CSDL
19 Lớp ChamCongCtr02 thông báo cholớp ChiTietCongNhanVienFrm02 đã cậpnhật thành công
20 Lớp ChiTietCongNhanVienFrm02thông báo đã cập nhật thành công choquản lý A
Ngoại lệ 3.1 Nhập ngày bắt đầu lớn hơn ngày kết thúc
3.1.1 Hệ thống yêu cầu người dùng nhập lại ngày
Trang 176 Sequence chart của modul
III Pha thiết kế
1 Sơ đồ thực thể toàn hệ thống
Trang 182 Thiết kế cơ sở dữ liệu
- Mỗi lớp thực thể đề xuất thành 1 bảng tương ứng trong
- Mô tả quan hệ giữa các lớp sang quan hệ giữa các bảng:
● Lớp NhanVien02 và lớp Employee02 có quan hệ
● Lớp QuanLy02 và lớp LichLamViec02 có quan
hệ kết hợp -> bảng tblQuanLy02 vàtblLichLamViec02 có quan hệ 1-n
● Lớp NhanVien02 và lớp NhanVienCa02 có quan
hệ kết hợp -> bảng tblNhanVien02 vàtblNhanVienCa02 có quan hệ 1-n
● Lớp Ca02 và lớp NhanVienCa02 có quan hệ kếthợp -> bảng tblCa02 và tblNhanVienCa02 cóquan hệ 1-n
Trang 19Hình ảnh thiết kế CSDL
3 Thiết kế mô hình MVC với thực thể thuần
- Dùng thẻ CRC và 3 nguyên lí thiết kế phương thức đểgán phương thức cho lớp
Trang 21- Định nghĩa khuôn mẫu cho từng phương thức:
● Với TimKiemNgayFrm02 phải có các phương thức:hiển thị Form, xử lý sự kiện nút “Tìm kiếm”
● Với DanhSachCongNhanVienFrm02 phải có các
phương thức: hiển thị Form danh sách tiền công củanhân viên, xử lý sự kiện khi click vào 1 dòng của nhânviên
● Với ChamCongDAO02 phải có các phương thức lưuthông tin vào CSDL, lấy danh sách tiền công của nhânviên và bảng tiền công chi tiết của nhân viên
Trang 22- Sơ đồ lớp chi tiết
4 Sơ đồ tuần tự pha thiết kế.
Trang 23IV Pha kiểm thử
1 Lập kế hoạch test cho modul
Tính công tuần này cho nhân
Bảng tblTienCong02:
tongtientr
ongca
tongsogiothua
tongsotienthuaca
tongsogiodichamvesom
tongsotienphat
tongtiennhan
Trang 24ID id thu ngay giobatdau gioketthuc
sogiotrongca
Trang 25Tính công tuần này
Giao diện hiện ra Form tìmkiếm ngày và nút Tìm kiếm
2 Quản lý nhập ngày trong
tuần và bấm nút tìmkiếm
Giao diện hiện lên với danhsách tiền công nhân viên nhưsau
chỉ
Tổng giờlàm trongca
1 NV01 Nguyễn Văn A 09699xxxxx Hà
Nội
36
Trang 26Tổngtiền thừa
Tổng giờphạt
Tổngtiền phạt
Tổngtiền nhận
3 Quản lý click vào nhân
viên Nguyễn Văn A
Giao diện hiện lên với chi tiếttiền công của nhân viên
Nguyễn Văn A như sau:
ca Checkin Checkout Số giờtrong
ca
Số tiềntrongca
Số giờ phạt Tổng tiền
phạt
Tổng tiềnnhận
Trang 27V Cài đặt
- Lớp Ca02
Trang 28Lớp NhanVien02:
Trang 29Lớp NhanVienCa02:
Trang 32Lớp TienCong02:
Trang 34DanhSachCongNhanVienFrm02:
Trang 35ChamCongDAO02: