Professional Documents
Culture Documents
Nhóm 01 17 Quản Lý Trung Tâm Ngoại Ngữ
Nhóm 01 17 Quản Lý Trung Tâm Ngoại Ngữ
Nhóm lớp : 08
Thành viên :
I. Module chấm công cho giảng viên theo các buổi của lịch
3) GDChonGV gọi lớp GiangVienDAO yêu cầu tìm danh sách của giảng viên
12) GDChonKip nhận thông tin của giảng viên được chọn
13) GDChonKip gọi lớp LichDayDAO
15) Hàm getLichDay() gọi lớp LichDay để đóng gói thông tin
34) Sau khi them hết kip vào KipIter() thì GDChonKip hiển thị
3. Biểu đồ tuần tự
4. Biểu đồ giao tiếp
5. Các pattern đã sử dụng: iterator, state
6. Lý do sử dụng
● Lý do sử dụng state: sử dụng state chong lưu trạng thái của kíp dạy để có thể dễ
dàng thay đổi trạng thái và hành vi đối với từng trạng thái riêng biệt. giúp cho việc
mở rộng thêm hoặc thay đổi chức năng cho từng trạng thái nghỉ dạy hay đi dạy
riêng hoặc lịch chưa đến. Giúp cho nhà phát triển dễ dàng cập nhật code.
● Lý do sử dụng iterator: để có thể dễ dàng truy cập được hết các phần tử theo lần
lượt mà không cần lưu hết toàn bộ danh sách mà vẫn có thể hiển thị danh sách.
Đặc biệt khi ta thay đổi cấu trúc của kip thì ta cũng không cần thay đổi code của
KipIter()
II. Module trả công cho giảng viên theo tuần, tháng, đợt
3) GDChonGV gọi lớp GiangVienDAO yêu cầu tìm danh sách của giảng viên
32) Hàm addHoaDon() thực hiện thêm hóa đơn vào cơ sở dữ liệu
3. Biểu đồ tuần tự
4. Biểu đồ giao tiếp
5. Các pattern được sử dụng: Strategy, builder
6. Lý do sử dụng:
● Strategy pattern: Vì mỗi nhân viên có một cách tính lương khác nhau và có thể
thay đổi cách tính lương nên e chon strategy pattern để có thể dễ dàng đổi cách
tính lương mà không phải sửa lại code mà còn có thể hỗ trợ nhiều cách tính
lương cùng một lúc
● Builder pattern: Vì hóa đơn mỗi lần trả lương cho nhân viên có rất nhiều thuộc
tính phức tạp vì vậy e chọn builder pattern để tạo hóa đơn hạn chế gây lỗi mà
sau này còn có thể dễ dàng thay đổi hóa đơn nếu muốn thay đổi.
4. Lý do
Bởi vì module đăng ký có nhiệm vụ chủ yếu là thêm, sửa, xóa lịch dạy của giáo viên
cho nên những hành động này sẽ được tái sử dụng rất nhiều lần. Vì vậy ta sẽ thêm
những hành động này vào một lớp abstract để có thể tái sử dụng nhiều lần.
IV.Module lên lịch dạy chính thức cho giáo viên
1.Hoạt động của module
-Giáo viên đăng nhâp :
- Mô tả :
+ Học viên có thể vào trong trang đăng kí học, chọn khóa học, lịch học theo ý
muốn.
- Vấn đề :
+ Với mỗi cơ sở dữ liệu khác nhau, sẽ có những câu lệnh truy vấn khác nhau,
do đó ta cần một lớp có thể bao bọc quá trình tạo lệnh truy vấn và thực thi câu
lệnh kết quả bởi DAO.
- Sơ đồ lớp :
- Sơ đồ hoạt động :
● Học viên thanh toán học phí (Nguyễn Viết Huy B19DCCN315)
- Giao diện :
- Mô tả :
+ Học viên sau khi đăng kí các khóa học sẽ cần thanh toán lệ phi mà khóa học
quy định.
+ Học viên có thể sẽ sử dụng những loại hình thức thanh toán học phí khác
nhau..
- Vấn đề :
+ Ban đầu chỉ có phương thức thanh toán thông qua thẻ tín dụng, ta chỉ việc
viết thuật toán này ở bất kỳ chỗ nào cần sử dụng.
+ Nhưng sau này khi yêu cầu tăng lên như phải hỗ trợ thêm việc thanh toán
qua nhiều phương thức khác (Ví dụ Paypal) sẽ dẫn đến phải thay đổi thuật
toán ở những chỗ đã sử dụng. Việc thay đổi thuật toán liên tục sẽ dẫn tới hậu
quả khiến chương trình trở nên khó maintain và gây nên những bug trên
những phần đang hoạt động tốt.
- Sơ đồ lớp :
- Mô tả hoạt động khái quát :
Khi MakePaymentController được yêu cầu xử lí request thanh toán từ người
dùng. Nó sẽ gọi hàm makePayment() từ IPaymentStrategy với tham số đầu
vào là một lớp PaymentModel được cung cấp bởi người dùng.
IPaymentStrategy sẽ kiểm tra kiểu lớp khai triển của IPaymentModel. Tùy
vào đó mà nó sẽ gọi những IPaymentService phù hợp.
Kết quả trả về là true khi thành công (và ngược lại). Nếu thanh toán thành
công, MakePaymentController sẽ thực hiện các tác vụ thêm như xuất hóa đơn,
xử lí CSDL, thông báo, v.v…
- Sơ đồ hoạt động :