- Một HiringForm có thể thanh tốn nhiều lần khác nhau, do đó có nhiềuReceipt khác nhau. Vậy quan hệ giữa HiringForm và Receipt là 1 – n. Receipt khác nhau. Vậy quan hệ giữa HiringForm và Receipt là 1 – n. Một User cũng có thể lập nhiều Receipt khác nhau cho các HiringForm do đó, quan hệ giữa User và Receipt là quan hệ 1 – n.
2.4 Trích các lớp biên, các lớp điều khiển cho module. Vẽ sơ đồ lớp từ cáclớp đã trích được của module lớp đã trích được của module
Đề xuất lớp điều khiển cho module:
- Lớp điều khiển cho module Book: BookManagerCtr - Lớp điều khiển cho module Reader: ReaderManagerCtr
- Lớp điều khiển cho module HiringForm: HiringFormManagerCtr - Lớp điều khiển cho module Receipt: ReceiptManagerCtr
Đề xuất lớp biên cho module “Trả truyện và thanh tốn” Giao diện chính: ReaderManagerFrm
Chức năng tìm kiếm khách hàng được gộp trong giao diện chính Chức năng thêm tình trạng truyện khi trả: ReturnStatusFrm Chức năng xác nhận hóa đơn: ReceiptManagerFrm
2.5 Xây dựng thẻ CRC cho các lớp điều khiển module
2.6 Xây dựng sơ đồ hoạt động (statechart) cho module và viết lại scenariovới các lớp đã trích được của module với các lớp đã trích được của module
Scenario cho Module “Khách hàng trả truyện và thanh toán”:
1, Nhân viên A sau khi login, chọn menu tìm danh sách truyện mượn theo tên khách hàng.
2, Lớp ReaderManagerFrm hiện ra với ô nhập Tên khách hàng và nút: Tìm kiếm ở trên đầu màn hình.
3, Nhân viên A hỏi tên khách hàng, nhập vào ô nhập và click vào nút Tìm kiếm để tìm kiếm danh sách các khách hàng có tên vừa nhập.
4, Lớp ReaderManagerFrm gọi lớp ReaderManagerCtr để tìm kiếm các đối tượng Reader có thơng tin tên khách hàng trùng với tên vừa được nhập.
5, Sau khi tìm kiếm xong, lớp ReaderManagerCtr trả về cho lớp ReaderManagerFrm danh sách các Reader có tên trùng với tìm kiếm.
6, Lớp ReaderManagerFrm hiển thị ra danh sách các khách hàng có tên như tên vừa nhập.
7, Nhân viên A click vào dòng của khách hàng hiện tại.
8, Lớp ReaderManagerFrm gọi lớp HiringFormCtr để lấy danh sách các đầu truyện mà khách hàng đó đang mượn. Lớp HiringFormCtr trả về cho lớp
ReaderManagerFrm 1 danh sách các đầu truyện.
9, Lớp ReaderManagerFrm hiển thị ra màn hình danh sách các đầu truyện đó, mỗi dịng có đầy đủ thơng tin về đầu truyện, ngày mượn, giá mượn, số tiền thuê tính đến ngày trả và 1 nút “Chọn trả”.
10, Nhân viên A click vào nút “Chọn trả” của đầu sách mà khách hàng muốn trả. 11, Lớp ReaderManagerFrm gọi lớp ReturnStatusFrm yêu cầu hiển thị.
12, Lớp ReturnStatusFrm hiện ra với các ô nhập: Tình trạng sách, Tiền phạt và 1 nút “Thanh tốn”.
13, Nhân viên A nhập vào tình trạng sách và tiền phạt (nếu có), sau đó click vào nút "Thanh toán”.
14, Lớp ReturnStatusFrm gọi lớp HiringFormCtr để cập nhật lại danh sách các đầu truyện khách hàng đó mượn. Lớp ReturnStatusFrm gọi lớp Receipt để đóng gói các thơng tin khách hàng, thơng tin đầu truyện và số tiền thanh tốn.
15, Lớp Receipt đóng gói thơng tin và trả về 1 đối tượng Receipt cho lớp ReturnStatusFrm.
16, Lớp ReturnStatusFrm gọi lớp ReceiptManagerFrm và truyền đối tượng Receipt vừa nhận được vào.
17, Lớp ReceiptManagerFrm hiện ra thơng tin về hóa đơn và 1 nút “Xác nhận”. 18, Nhân viên A click vào nút “Xác nhận”.
19, Lớp ReceiptManagerFrm gọi lớp ReceiptManagerCtr, lớp ReceiptManagerCtr lưu thơng tin hóa đón vào CSDL.
20, Lớp ReceiptManagerCtr thơng báo cho lớp ReceiptManagerFrm đã thanh tốn thành cơng.
21, Lớp ReceiptManagerFrm hiển thị đã thanh tốn thành cơng.
2.7 Thực tế hóa scenario thành sơ đồ tuần tự cho module