Chúng ta tiếp tục xây dựng một số biểu đồ trình tự mô tả các hành vi của hệ thống bán hàng HBH. Hành vi của hệ thống được thể hiện trong các biểu đồ trình tự thông qua sự tương tác của các đối tượng với nhau. Sự tương tác đó được thể hiện bằng các lời gọi hàm và sẽđược khai báo công khai (public) trong các lớp.
Biểu đồ mô tả hoạt động của người bán hàng và hệ thống
Như trong các kịch bản đã phân tích ở trên, sau khi chọn đủ hàng, người mua sẽ đưa giỏ (hoặc xe) hàng đến quầy để trả tiền. Người bán hàng phải nhập vào các thông tin và số lượng của mỗi mặt hàng. Những thông tin về mặt thường được xác định thông qua mã sản phẩm upc (thuộc lớp UPC – Universal Product Code). Vậy đối tượng :NguoiBan phải gửi đến cho :HeThong (một hệ thống bán hàng) thông điệp
enterItems()(upc, n), để nhập vào mã sản phẩm upc và n đơn vị hàng cần mua. Khi đã nhập xong tất cả các mặt hàng của khách muốn mua thì phải báo cho hệ thống biết là
đã nhập xong bằng cách nhấn nút Kết thúc, nghĩa là gửi cho hệ thống thông điệp
endSale(). Hệ thống sẽ thông báo cho khách mua hàng biết tổng số tiền phải trả. Nếu khách hàng trả bằng tiền mặt thì :NguoiBan gửi tiếp đến cho :HeThong thông điệp
makePayment(soTien).
Các hoạt động trên được mô tả trong biểu đồ trình tự như hình 5-5.
Hình 5-5 Biểu đồ trình tự mô tả sự tương tác giữa người bán và hệ thống
Biểu đồ trình tự mô tả ca sử dụng “Thanh toán tiền mặt”
Khi đối tượng :HeThong nhận được yêu cầu thanh toán của khách hàng thông qua người bán, nghĩa là nó nhận được thông điệp makePayment(soTien) thì nó phải gửi cho một đối tượng một phiên bán hàng: PhienBanHang một yêu cầu tương tự. Đối tượng một phiên bán hàng lại yêu cầu đối tượng tạo ra một đối tượng một lần thanh toán: ThanhToan để thanh toán theo soTien mà khách đưa. Đối tượng một lần thanh toán gửi lại thông điệp balance() cho hệ thống :HeThong biết số tiền dư (soTien khách
đưa trừ đi số tiền mua hàng) phải trả lại cho khách và để hiển thị (displayBalance()) lên màn hình, để người bán thông báo lại cho khách hàng khi khách trả tiền mặt. Biểu
:HeThong enterItems(upc, n)
endSale()()
makePayment(soTien) :NguoiBan
đồ trình tự mô tả dãy các hành động trao đổi giữa các đối tượng nêu trên được thiết lập như sau:
Hình 5-6 Biểu đồ trình tự mô tả ca sử dụng “Thanh toán (tiền mặt)”
Biểu đồ trình tự mô tả ca sử dụng “Thanh toán bằng thẻ tín dụng”
Khi thanh toán tiền hàng, khách hàng có thể trả bằng thẻ tín dụng. Thẻ tín dụng
được xác định thông qua soHieuThe (số hiệu thẻ) và hanSD (hạn sử dụng). Điều đó
được thể hiện bằng việc gửi một thông điệp makeCreditPayment(soHieuThe, hanSD)
cho hệ thống. Thông thường hệ thống phải gửi một yêu cầu kiểm duyệt thẻ
requestApproval(yeuCau)) tới bộ phận kiểm duyệt thẻ tín dụng là tác nhân ngoài của hệ thống. Hệ thống sẽ dựa vào kết quả trả lời của bộ phận kiểm duyệt để thanh toán với khách hàng bằng cách trừđi số tiền mua hàng trong thẻ tín dụng nếu nó hợp pháp, nghĩa là thực hiện handleCreditReply() (xử lý thẻđã kiểm duyệt), dựa vào kết quả của
bộ phận kiểm duyệt. Biểu đồ trình tự mô tả sự tương tác giữa người bán hàng, hệ thống và bộ phận kiểm duyệt thẻKiemDuyetđược thiết lập như sau:
Hình 5-7 Biểu đồ trình tự mô tả sự trao đổi giữa người bán, hệ thống và bộ phận kiểm duyệt
: HeThong NguoiBan : PhienBanHang : ThanhToan makePayment(soTien) makePayment(soTien) makePayment(soTien) balance() balance() displayBalance() : HeThong KiemDuyet makeCreditPayment(soHieuThe, hanSD) handleCreditReply() requestApproval(yeuCau) NguoiBan displayApproval()
Tương tự như trên, chúng ta có thể tạo ra những biểu đồ trình tự cho các ca sử
dụng khác của hệ thống.