Bài giảng Phân tích thiết kế hướng đối tượng - Vũ Thị Dương - Bài 5: Mô hình hóa hành vi, mô hình hóa sự tương tác
Hành vi (behavior) là cách hành động, cách cư xử của
một hệ thống
Mô hình hóa hành vi là sự diễn tả khía cạnh động của hệ
thống.
Có 3 cách tiếp cận hành vi hệ thống
Hành vi thể hiện trong sự tương tác giữa các đối tượng, tạo nên
kịch bản
Hành vi biểu lộ cách ứng xử của mỗi đối tượng trước các sự kiện
xảy ra với nó
Hành vi bộc lộ ở công việc và luồng công việc
UML có những biểu đồ khác nhau đáp ứng 3 cách tiếp
cận đó với hành vi của hệ thống
Nếu cần làm rõ thời kỳ hoạt động của đối tượng thì đưa thêm tiêu trình điều khiển Nếu làm rõ ràng buộc thời gian thì thêm các ký hiệu và nếu cần đưa thêm tiền điều kiện, hậu điều kiện nếu cần Phân tích thiết kế hướng đối tượng Bài - 17/34 Biểu đồ trình tự Thí dụ: Gọi điện thoại Hệ thống điện thoại 1: Nhấc máy 2: Tín hiệu sẵn sàng 3: Quay số 4: Chuông 5: Chuông phản hồi 6: Nhấc máy 7: Hội thoại Người gọi Người nghe Phân tích thiết kế hướng đối tượng Bài - 18/34 Mô tả đối tượng trong biểu đồ tương tác Đặc tả đối tượng Đặt tên Ánh xạ sang lớp Duy trì Đa hiện thực Phân tích thiết kế hướng đối tượng Bài - 19/34 Mô tả đối tượng trong biểu đồ tương tác Đặt tên đối tượng Tên đối tượng là cụ thể, tên lớp là tên khái quát Ánh xạ đối tượng sang lớp Mỗi đối tượng trong biểu đồ tương tác được ánh xạ sang lớp Thí dụ, Máy bay số VN358 ánh xạ sang lớp Máy bay Có thể ánh xạ vào lớp mới hay lớp có sẵn trong biểu đồ Lựa chọn duy trì cho đối tượng Persistent: có thể lưu trữ vào CSDL hay theo khuôn dạng khác Static: tồn tại trong bộ nhớ cho đến khi chương trình kết thúc Transient: tồn tại trong bộ nhớ với khoảng thời gian ngắn Đa hiện thực đối tượng (Multiple Instance) UML có ký pháp dành cho đa hiện thực lớp Thể hiện danh sách (nhân viên) trong biểu đồ Ký pháp đồ họa đa hiện thực đối tượng trong biểu đồ cộng tác Employees : Person Phân tích thiết kế hướng đối tượng Bài - 20/34 Xây dựng biểu đồ trình tự Sau khi vẽ đối tượng trong biểu đồ, cần vẽ liên kết các đối tượng bổ sung thông điệp cho chúng Đặc tả thông điệp Đặt tên thông điệp Ánh xạ thông điệp vào thao tác Đặt đặc tính đồng bộ cho thông điệp Đặt tần số cho thông điệp Phân tích thiết kế hướng đối tượng Bài - 21/34 Xây dựng biểu đồ trình tự Đặc tả thông điệp Đặt tên thông điệp Tên chỉ ra mục tiêu của thông điệp Ánh xạ thông điệp vào thao tác Trước khi phát sinh mã trình phải ánh xạ mọi thông điệp thành thao tác Đặt tần số cho thông điệp Đánh dấu thông điệp sẽ được gửi đều đặn, thí dụ mỗi 30s Hai loại Periodic: cho biết thông điệp được gửi đều đặn theo chu kỳ Aperiodic: cho biết thông điệp không được gửi đều đặn mà được gửi một lần hay theo thời điểm không đều Đặc tả đặc tính tương tranh cho thông điệp Phân tích thiết kế hướng đối tượng Bài - 22/34 Xây dựng biểu đồ trình tự Đặc tả thông điệp Đặt tên thông điệp Ánh xạ thông điệp vào thao tác Đặt tần số cho thông điệp Đặt đặc tính tương tranh cho thông điệp Đơn (Simple): Giá trị mặc định của thông điệp, cho biết thông điệp chạy trong đơn tiến trình Đồng bộ (Synchronous): Client gửi thông điệp, chờ đến khi Supplier xử lý xong thông điệp Cản trở (Balking / Rendez-vous): Client gửi thông điệp, nếu Supplier không sẵn sàng xử lý ngay thông điệp hủy bỏ Hết hạn (Timeout): Client gửi thông điệp chờ đến Supplier xử lý trong khoảng thời gian nhất định Dị bộ (Asynchronous): Client gửi thông điệp không chờ để Supplier xử lý xong mà tiếp tục làm công việc khác Lời gọi thủ tục (Procedure Call): Client gửi thông điệp đến Supplier, chờ đến khi mọi trình tự lặp của các thông điệp được xử lý xong (mũi tên đặc) Trở về (Return): Mô tả trở về từ lời gọi thủ tục (mũi tên nét đứt) Phân tích thiết kế hướng đối tượng Bài - 23/34 Xây dựng biểu đồ trình tự Client Supplier 1: Simple Message Client Supplier 1: Sychronous Message Client Supplier 1: Balking Message Client Supplier 1: Timeout Message Client Supplier 1: Asynchronous Message Client Supplier 1: Procedure Call 2: Return Message Client Supplier 1: Procedure Call Các loại đồng bộ thông điệp trong biểu đồ trình tự Phân tích thiết kế hướng đối tượng Bài - 24/34 Lifeline trong biểu đồ trình tự Từ phiên bản Rose 2001A trở đi có khả năng Biểu diễn đối tượng vào thời điểm nó được tạo lập ra Đánh dấu kết thúc lifeline nơi nó bị phá hủy Object1 Object2 Object3 Object4 1: Perform function 2: Instantiate 3: Perform some processing 4: Destroy 5: Perform some more processing Phân tích thiết kế hướng đối tượng Bài - 25/34 Scripts trong biểu đồ trình tự 1996 Buschman bổ sung scripts cho biểu đồ trình tự của UML Diễn tả chú thích làm rõ các thông điệp Diễn tả điều kiện logíc trong biểu đồ Biểu diễn tổng quát của scripts Object A Object B 1: *[X] Message * - Ký hiệu lặp [] – Ký hiệu điều kiện lặp Phân tích thiết kế hướng đối tượng Bài - 26/34 Ví dụ: chọn môn giảng/thêm lớp : Thay giao : W_Thay : W_LopGiang : QLLopThay : LopGiangtoan : MonHoc dangNhap(mk) KiemTraMK yc/ChonHK chonHK ycChonViec chonThem hienThi() chonMon(toan) layLopGiang() layLopGiang() layLopGiang() ketQua ketQua ketQua hienThi() chonLopGiang() nhanLopGiang() themThay() themThay() Phân tích thiết kế hướng đối tượng Bài 5 - 27/38 Nội dung chính Cách xây dựng biểu đồ tương tác Biểu đồ trình tự Biểu đồ cộng tác Phân tích thiết kế hướng đối tượng Bài 28/34 Biểu đồ cộng tác Tương tự biểu đồ trình tự, biểu đồ cộng tác (Collaboration diagram) chỉ ra luồng thực hiện trong kịch bản của UC Biểu đồ cộng tác tập trung vào quan hệ giữa các đối tượng cấu trúc tổ chức của các đối tượng luồng dữ liệu trong kịch bản Tương đối khó quan sát trình tự các thông điệp trong biểu đồ cộng tác Do vậy, các dự án thường hay xây dựng cả hai loại biểu đồ này Trong Rose: Có thể tự động chuyển đổi qua lại giữa biểu đồ trình tự và biểu đồ cộng tác (nhấn phím F5) Phân tích thiết kế hướng đối tượng Bài - 29/34 Thí dụ biểu đồ cộng tác Thí dụ: Luồng sự kiện Khách hàng đặt chỗ cho chuyến bay : Customer Credit Form Credit Processor : Credit System Confirmation Form Invalid Credit Form 4: ReserveSite 5: GenerateConfirmationCode 1: SubmitCreditInfo 2: CheckCredit 3: CheckCredit 6: DisplayConfirmation 9: Display 7: DisplayConfirmation 8: Confirm Phân tích thiết kế hướng đối tượng Bài - 30/34 Biểu đồ cộng tác Cả biểu đồ trình tự và biểu đồ cộng tác đều mô tả luồng điều khiển trong kịch bản Khác biệt giữa biểu đồ trình tự và biểu đồ cộng tác biểu đồ cộng tác mô tả luồng dữ liệu biểu đồ trình tự không mô tả luồng dữ liệu Luồng dữ liệu được sử dụng để mô tả thông tin trả lại khi một đối tượng gửi thông điệp đến đối tượng kia Không nên bổ sung mọi luồng dữ liệu bào biểu đồ vì nó sẽ làm rối Sử dụng nó khi thấy cần thiết Thông điệp được biểu diễn bằng mũi tên nhỏ vẽ dọc theo một kết nối giữa hai đối tượng Object1 Object2 1: Perform function Data flow Phân tích thiết kế hướng đối tượng Bài - 31/34 Biểu đồ cộng tác Cả biểu đồ trình tự và biểu đồ cộng tác đều mô tả luồng điều khiển trong kịch bản Khác biệt giữa biểu đồ trình tự và biểu đồ cộng tác biểu đồ cộng tác mô tả luồng dữ liệu biểu đồ trình tự không mô tả luồng dữ liệu Luồng dữ liệu được sử dụng để mô tả thông tin trả lại khi một đối tượng gửi thông điệp đến đối tượng kia Không nên bổ sung mọi luồng dữ liệu bào biểu đồ vì nó sẽ làm rối Sử dụng nó khi thấy cần thiết Object1 Object2 1: Perform function Data flow Phân tích thiết kế hướng đối tượng Bài - 32/34 Biểu đồ cộng tác Thông điệp được biểu diễn bằng mũi tên nhỏ vẽ dọc theo một kết nối giữa hai đối tượng Tiêu đề của thông điệp có cú pháp Trả lời:=tên thông điệp (ds tham số) Biểu thức trình tự: là dãy số theo sau là dấu hai chấm (:) diễn tả trình tự tiếp nỗi các thông điệp Ví dụ: Thông điệp 2.1.3 tiếp sau thông điệp 2.1.2 và cả 2 đều được gửi đi bởi cùng thao tác thực hiện thông điệp 2.1. Trả loài là tên của kết quả trả về bên gửi. Tên này có thể là một thuộc tính của đối tượng gửi. Tên Thông điệp (ds tham số): là tên của thông điệp kèm theo danh sách tham số, tên này thường lấy trùng với thao tác cần được huy động ở bên nhận Phân tích thiết kế hướng đối tượng Bài - 33/34 Xây dựng biểu đồ cộng tác Xem lai các lớp tham gia ca sử dụng để xác định cá thể của lớp nào tham gia thực sự vào kịch bản đang xét Vẽ các đối tượng như là đỉnh của đồ thị. Bố trí đối tượng quan trọng vào giữa, đối tượng khác ở xung quanh Xã định các kết nỗi giữa các đối tượng cùng các thông điệp có thể có trên đó Vẽ liên kết trước, vẽ các kết nỗi và ghi chú khuôn dập nếu cần Xuất phát với thông điệp khởi đầu tương tác, bố trí các thông điệp tiếp theo trên các kết nối, thêm các số tự tự Phân tích thiết kế hướng đối tượng Bài - 34/34 : W_Thay : Thay giao : W_LopGiang : LopGiang toan : MonHoc 2: KiemTraMK 15: hienThi() : QLLopThay 7: hienThi() 1: dangNhap(mk) 4: chonHK 5: ycChonViec 6: chonThem 3: yc/ChonHK 8: chonMon(toan) 16: chonLopGiang() 9: layLopGiang() 17: nhanLopGiang()14: ketQua 10: layLopGiang() 18: themThay() 13: ketQua 11: layLopGiang() 19: themThay() 12: ketQua Phân tích thiết kế hướng đối tượng Bài - 35/34 Tóm tắt Bài này đã xem xét các vấn đề sau Các loại biểu đồ tương tác Biểu đồ trình tự Biểu đồ cộng tác Tìm kiếm đối tượng, thông điệp của luồng sự kiện trong UC Đặc tả các phần tử mô hình xây dựng biểu đồ tương tác Kỹ thuật xây dựng biểu đồ trình tự Kỹ thuật xây dựng biểu đồ cộng tác Phân tích thiết kế hướng đối tượng Bài - 36/34 Bài tập 1. Biểu đồ tương tác dùng để làm gì. 2. Phân biệt hai kiểu biểu đồ tương tác: biểu đồ tuần tự và biểu đồ cộng tác 3. Một liên kết trong biểu đồ cộng tác biểu diễn cái gì 4. Các biểu đồ tương tác được xây dựng chủ yếu dựa trên nguồn nào sau đây: A. Biểu đồ trạng thái B. Các biểu đồ use case C. Biểu đồ lớp D. Biểu đồ hoạt động Phân tích thiết kế hướng đối tượng Bài - 37/34 Biểu đồ tuần tự (sequence diagram) nào sau đây là không phù hợp nếu nó nằm trong cùng mô hình với biểu đồ họat động đã cho. Giải thích Phân tích thiết kế hướng đối tượng Bài - 38/34 Biểu đồ tuần tự (sequence diagram) Giải quyết PIN không hợp lệ”. Phân tích thiết kế hướng đối tượng Bài - 39/34 Biểu đồ tuần tự (sequence diagram) Rút tiền
File đính kèm:
- Bài giảng Phân tích thiết kế hướng đối tượng - Vũ Thị Dương - Bài 5 Mô hình hóa hành vi, mô hình hóa sự tương tác.pdf