Created by Trang Hồng Sơn - 1 - SYSTEM SEQUENCE DIAGRAM 1. Tổng quan: - System Sequence Diagram (SSD): + Là sơ ñồ tuần tự chuỗi sự kiện trong Use Case, biểu diễn các sự kiện tương tác (tác ñộng và phản hồi) của Actor bên ngoài và hệ thống bên trong (ñược xem như black-box). + SSD bao gồm: . Các Actor bên ngoài và hệ thống bên trong. . Các yêu cầu tác ñộng của Actor vào hệ thống. . Các kết quả trả về tương ứng (nếu có) của hệ thống. . Các ñoạn lặp có thể có trong quá trình tương tác giữa Actor và hệ thống. : Cashier :System Simple cash-only Process Sale scenario: 1. Customer arrives at a POS checkout with goods and/or services to purchase. 2. Cashier starts a new sale. 3. Cashier enters item identifier. 4. System records sale line item and presents item description, price, and running total. Cashier repeats steps 3-4 until indicates done. 5. System presents total with taxes calculated. 6. Cashier tells Customer the total, and asks for payment. 7. Customer pays and System handles payment. enterItem(itemID, quantity) endSale makePayment(amount) description, total total with taxes change due, receipt makeNewSale [ more items ] loop Process Sale Scenario Created by Trang Hồng Sơn - 2 - enterItem(itemID, quantity) :System : Cashier endSale makePayment(amount) a UML loop interaction frame, with a boolean guard expression external actor to system Process Sale Scenario system as black box the name could be "NextGenPOS" but "System" keeps it simple the ":" and underline imply an instance, and are explained in a later chapter on sequence diagram notation in the UML a message with parameters it is an abstraction representing the system event of entering the payment data by some mechanism description, total return value(s) associated with the previous message an abstraction that ignores presentation and medium the return line is optional if nothing is returned total with taxes change due, receipt makeNewSale [ more items ] loop - System Operations: là các yêu cầu tác ñộng của Actor vào hệ thống. : Cashier enterItem(itemID, quantity) endSale() makePayment(amount) description, total total with taxes change due, receipt makeNewSale() these input system events invoke system operations the system event enterItem invokes a system operation called enterItem and so forth this is the same as in object- oriented programming when we say the message foo invokes the method (handling operation) foo [ more items ] loop :System Process Sale Scenario Created by Trang Hồng Sơn - 3 - - Operation Contract: ñặc tả các System Operations. Operation: enterItem(…) Post-conditions: - . . . Operation Contracts Sale date . . . Sales LineItem quantity 1 * 1 . . . . . . Domain Model Use-Case Model Design Model : Register enterItem (itemID, quantity) : ProductCatalog spec = getProductSpec( itemID ) addLineItem( spec, quantity ) : Sale Require- ments Business Modeling Design Sample UP Artifact Relationships : System enterItem (id, quantity) Use Case Text System Sequence Diagrams make NewSale() system events Cashier Process Sale : Cashier use case names system operations Use Case Diagram Vision Supplementary Specification Glossary starting events to design for, and more detailed requirements that must be satisfied by the software Process Sale 1. Customer arrives 2. 3. Cashier enters item identifier. the domain objects, attributes, and associations that undergo changes requirements that must be satisfied by the software ideas for the post- conditions Mã contract (Contract ID) Tên contract Tên thao tác (Operation Name) Tên thao tác và các tham số (nếu có) Tham chiếu (Cross References) Tên Use Case chứa thao tác Tiền ñiều kiện (Preconditions) Những ñiều kiện giả ñịnh phải có trước khi thực hiện thao tác Hậu ñiều kiện (Postconditions) Trạng thái của ñối tượng sau khi thực hiện xong thao tác + Ví dụ: Contract 01 makeNewSale Operation Name makeNewSale() Cross References UC: Process Sale Preconditions None Created by Trang Hồng Sơn - 4 - Postconditions - A Sale instance “s” was created (instance creation). - “s” was associated with a Register (association formed). - Attributes of “s” were initialized. Contract 02 enterItem Operation Name enterItem(itemID: ItemID, quantity: integer) Cross References UC: Process Sale Preconditions There is a sale underway Postconditions - A SalesLineItem instance “sli” was created (instance creation). - “sli” was associated with the current Sale (association formed). - “sli.quantity” became quantity (attribute modification). - “sli” was associated with a ProductDescription, based on itemID match (association formed). 2. Các bước xây dựng: - Chọn Use Case. - Biểu diễn chuỗi các sự kiện tương tác. - Xác ñịnh các System Operation. - ðặc tả các System Operation Operation Contract. 3. Case study “Hệ thống thư viện ñiện tử”: - Use Case “ðăng nhập”: Tên Use Case Dang_nhap Tác nhân chính Thủ thư Mức 1 Tiền ñiều kiện Thủ thư phải có tài khoản Kích hoạt Thủ thư chọn chức năng ñăng nhập trong trang chủ ðảm bảo thành công Chuyển ñến trang chủ quản lý của thủ thư Chuỗi sự kiện chính 1. Thủ thư chọn chức năng ñăng nhập. 2. Hệ thống hiển thị form ñăng nhập và yêu cầu thủ thư nhập username, password. 3. Thủ thư nhập username, password và nhấn nút “ðăng nhập”. 4. Hệ thống kiểm tra thông tin ñăng nhập. 5. Hệ thống chuyển ñến trang quản lý của thủ thư. Ngoại lệ 4. Thông tin ñăng nhập sai, quay lại bước 1. Created by Trang Hồng Sơn - 5 - : Thu thu :System 1: Yeu cau dang nhap 2: Yeu cau nhap username, password 3: Nhap username, password 4: Kiem tra username, password 5: Chuyen den trang quan ly - Use Case “Tra cứu sách”: Tên Use Case Tra_cuu_sach Tác nhân chính Bạn ñọc Mức 1 Tiền ñiều kiện Không có Kích hoạt Bạn ñọc chọn chức năng tra cứu sách trong menu ðảm bảo thành công Thông tin sách mới ñược thêm vào CSDL Chuỗi sự kiện chính 1. Bạn ñọc chọn chức năng tra cứu sách. 2. Hệ thống hiển thị form tra cứu sách và yêu cầu bạn ñọc nhập từ khoá, chọn các tiêu chí sách cần tìm. 3. Bạn ñọc nhập từ khoá, chọn các tiêu chí và nhấn nút “Tìm kiếm”. 4. Hệ thống thực hiện việc tìm kiếm dựa trên từ khoá và các tiêu chí. 5. Hệ thống hiển thị danh sách các sách tìm ñược. 6. Bạn ñọc chọn một quyển sách ñể xem thông tin chi tiết. 7. Hệ thống hiển thị thông tin chi tiết sách. Ngoại lệ 4. Hệ thống thông báo không có sách thoả từ khoá và các tiêu chí: 1. Hệ thống hỏi bạn ñọc có muốn nhập từ khoá, chọn các tiêu chí cần tìm khác. 2. Bạn ñọc nhập lại từ khoá, chọn các tiêu chí khác, quay lại bước 4. Created by Trang Hồng Sơn - 6 - : Ban Doc :System 1: Yeu cau tra cuu sach 2: Yeu cau nhap tu khoa, chon cac tieu chi 3: Nhap tu khoa, chon cac tieu chi 4: Thuc hien tim kiem 5: Danh sach cac quyen sach tim duoc 6: Chon mot quyen sach 7: Thong tin chi tiet sach - Use Case “Thêm sách”: Tên Use Case Them_sach Tác nhân chính Thủ thư Mức 2 Tiền ñiều kiện Thủ thư ñã ñăng nhập vào hệ thống Kích hoạt Thủ thư chọn chức năng thêm sách trong menu ðảm bảo thành công Thông tin sách mới ñược thêm vào CSDL Chuỗi sự kiện chính 1. Thủ thư chọn chức năng thêm sách. 2. Hệ thống hiển thị form thêm sách và yêu cầu thủ thư ñưa vào thông tin sách. 3. Thủ thư nhập thông tin về sách mới và nhấn nút “Thêm sách”. 4. Hệ thống kiểm tra thông tin sách và xác nhận thông tin sách hợp lệ. 5. Hệ thống thêm thông tin sách mới vào CSDL. 6. Hệ thống thông báo ñã thêm sách thành công. Created by Trang Hồng Sơn - 7 - Ngoại lệ 4a. Hệ thống thông báo sách ñã có trong CSDL: 1. Hệ thống hỏi thủ thư có thêm số lượng sách hay không. 2. Thủ thư thêm số lượng sách. 3. Hệ thống thêm số lượng cho sách ñã có. 4. Hệ thống thông báo ñã thêm sách thành công. 4b. Hệ thống thông báo thông tin sách không hợp lệ: 1. Hệ thống yêu cầu thủ thư nhập lại thông tin sách. 2. Thủ thư nhập lại thông tin sách. : Thu thu :System 1: Yeu cau them sach 3: Nhap thong tin sach moi 6: Thong bao them sach thanh cong 2: Yeu cau nhap thong tin sach 4: Kiem tra thong tin sach 5: Them sach moi . Actor bên ngoài và hệ thống bên trong. . Các yêu cầu tác ñộng của Actor vào hệ thống. . Các kết quả trả về tương ứng (nếu có) của hệ thống. . Các ñoạn lặp có thể có trong quá trình tương. giả ñịnh phải có trước khi thực hiện thao tác Hậu ñiều kiện (Postconditions) Trạng thái của ñối tượng sau khi thực hiện xong thao tác + Ví dụ: Contract 01 makeNewSale Operation Name makeNewSale()