Phân tích thiết kế hướng đối tượng - Mô hình hóa hành vi( biểu đồ tương tác, trạng thái)

pdf 39 trang vanle 3340
Bạn đang xem 20 trang mẫu của tài liệu "Phân tích thiết kế hướng đối tượng - Mô hình hóa hành vi( biểu đồ tương tác, trạng thái)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfphan_tich_thiet_ke_huong_doi_tuong_mo_hinh_hoa_hanh_vi_bieu.pdf

Nội dung text: Phân tích thiết kế hướng đối tượng - Mô hình hóa hành vi( biểu đồ tương tác, trạng thái)

  1. Trường Đại học công nghiệp Hà Nội KHOA CÔNG NGHỆ THÔNG TIN PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG Gv: Vũ Thị Dương Email: duongvt01@gmail.com
  2. Nội dung chi tiết 1. Các khái niệm hướng đối tượng 2. Tổng quan về ngôn ngữ mô hình hóa UML 3. Mô hình hóa yêu cầu (biểu đồ ca sử dụng) 4. Mô hình hóa lĩnh vực ứng dụng (biểu đồ lớp lĩnh vực) 5. Mô hình hóa hành vi( biểu đồ tương tác, trạng thái) 6. Biểu đồ kiến trúc vật lý và phát sinh mã trình 7. Mô hình hóa dữ liệu 2010 Phân tích thiết kế hướng đối tượng Bài 5 – 2/38
  3. Bài 5 Mô hình hóa hành vi. Mô hình hóa sự tương tác
  4. Mô hình hóa hành vi  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 Phân tích thiết kế hướng đối tượng Bài 5 - 4/38
  5. Mô hình hóa tương tác đối tượng  Mục đích: Nhằm tạo ra các kịch bản của mỗi ca sử dụng của hệ thống  Hai loại biểu đồ được sử dụng để mô hình hóa đối tượng  Biểu đồ trình tự (Sequence diagram)  Tập trung vào mô tả điều khiển  Biểu đồ cộng tác (Colaboration diagram)  Tập trung vào mô tả dữ liệu  Biểu đồ trình tự và biểu đồ cộng tác đều chỉ ra cùng loại thông tin. Gọi tên chung cho hai loại biểu đồ này là biểu đồ tương tác (Interaction diagram)  Biểu đồ tương tác giúp xác định hệ thống làm việc như thế nào? Phân tích thiết kế hướng đối tượng Bài 5 - 5/38
  6. Nội dung chính  Cách xây dựng biểu đồ tương tác  Tìm kiếm đối tượng  Tìm kiếm tác nhân  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 5 - 6/38
  7. Xây dựng biểu đồ tương tác  Để xây dựng biểu đồ tương tác ta bắt đầu từ luồng sự kiện  Xây dựng từng biểu đồ cho  luồng chính, luồng thay thế, luồng lỗi  Nếu hai luồng thay thế và luồng lỗi tương tự nhau thì gộp chúng lại  Các bước xây dựng biểu đồ tương tác  Tìm kiếm đối tượng  Tìm kiếm tác nhân  Bổ sung thông điệp vào biểu đồ Phân tích thiết kế hướng đối tượng Bài 5 - 7/38
  8. Tìm kiếm đối tượng  Khảo sát các danh từ trong luồng sự kiện  Tìm đối tượng trong tài liệu kịch bản  Mỗi luồng sự kiện có nhiều kịch bản  Mỗi UC có thể có nhiều biểu đồ tương tác  Mỗi biểu đồ được xây dựng cho một kịch bản thông qua luồng sự kiện  Tìm đối tượng không được mô tả trong luồng sự kiện  Các đối tượng cho phép tác nhân nhập và quan sát thông tin  Các đối tượng tham gia điều khiển trình tự luồng xuyên qua UC  Tìm đối tượng tương ứng với khái niệm trừu tượng khi phân tích  Thí dụ Tên sách, Tên tạp chí là trừu tượng không tương ứng với đối tượng nào trong thế giới thực Phân tích thiết kế hướng đối tượng Bài - 8/34
  9. Tìm kiếm đối tượng  Có thể hình thành các biểu đồ tương tác  Ở mức cao: để chỉ ra hệ thống giao tiếp như thế nào  Ở mức rất thấp: để chỉ ra lớp nào cần tham gia vào kịch bản  Nên xem xét các nhóm đối tượng sau khi tìm kiếm chúng  Đối tượng thực thể (Entity)  Lưu trữ thông tin, có thể ánh xạ sang bảng, trường của CSDL  Nhiều danh từ trong luồng sự kiện thuộc loại này  Thí dụ: Chuyến bay VN358, Hành khách John, Vé số #1347A  Đối tượng biên (Boundary)  Là đối tượng tại biên hệ thống và thế giới bên ngoài  Là các Forms, cửa sổ của ứng dụng và giao diện với các ứng dụng khác  Đối tượng điều khiển (Control)  Là các đối tượng bổ sung, không thực hiện chức năng nghiệp vụ nào  Nó điều phối các đối tượng khác và điều khiển toàn bộ luồng logíc Phân tích thiết kế hướng đối tượng Bài - 9/34
  10. Tìm kiếm tác nhân  Sau khi xác định đối tượng, ta tìm kiếm tác nhân cho biểu đồ tương tác  Tác nhân trong biểu đồ tương tác là sự kích hoạt từ ngoài để khởi động luồng công việc của luồng sự kiện  Tìm kiếm tác nhân trong luống sự kiện  Ai hay cái gì khởi xướng tiến trình?  Có thể có nhiều tác nhân cho một biểu đồ tương tác  Nếu tác nhân nhận hay gửi thông điệp cho hệ thống theo kịch bản nào đó thì chúng phải có mặt trong biểu đồ tương tác của kịch bản đó Phân tích thiết kế hướng đối tượng Bài - 10/34
  11. Sử dụng biểu đồ tương tác  Từ biểu đồ tương tác người thiết kế và người phát triển xác định các  lớp sẽ xây dựng  quan hệ giữa các lớp  thao tác và các trách nhiệm của lớp  Biểu đồ trình tự theo thứ tự thời gian  Giúp người sử dụng quan sát luồng logíc thông qua kịch bản  Biểu đồ cộng tác tập trung vào tổ chức cấu trúc của các đối tượng  Giúp dễ dàng quan sát đối tượng nào giao tiếp với các đối tượng nào  Khi thay đổi đối tượng, dẽ dàng nhận thấy tác động trên các đối tượng khác? Phân tích thiết kế hướng đối tượng Bài - 11/34
  12. Xây dựng biểu đồ tương tác  Biểu đồ tương tác bao gồm các thành phần sau  Đối tượng (Objects)  Biểu đồ tương tác sử dụng tên đối tượng, tên lớp hay cả hai  Thông điệp (Messages)  Thông qua thông điệp, một đối tượng hay lớp có thể yêu cầu lớp hay đối tượng khác thực hiện vài chức năng cụ thể  Thí dụ: Form yêu cầu đối tượng Report tự in  Liên kết (Links)  Là hiện thực của quan hệ kết hợp giữa các đối tượng  Chú thích (Notes) và ràng buộc Phân tích thiết kế hướng đối tượng Bài - 12/34
  13. Xây dựng biểu đồ tương tác  Khi tạo lập biểu đồ tương tác có nghĩa là gán trách nhiệm cho đối tượng  Gán trách nhiệm cho đối tượng nhận thông điệp  Phải gán trách nhiệm cho đối tượng một cách phù hợp  Thí dụ không gán trách nhiệm nghiệp vụ cho đối tượng Form, Screen  Dựa trên các loại lớp để cân nhắc hình thành trách nhiệm cho chúng  Lớp Entity: lưu trữ thông tin và thực hiện các chức năng nghiệp vụ  Lớp Boundary  form và windows: hiển thị và nhận thông tin. Có thể xử lý vài nghiệp vụ rất nhỏ  interfaces: trao đổi thông tin với hệ thống khác. Xử lý vài nghiệp vụ rất nhỏ  Lớp Control: theo dõi trình tự thực hiện Phân tích thiết kế hướng đối tượng Bài - 13/34
  14. 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 5 - 14/38
  15. Biểu đồ trình tự  Biểu đồ trình tự là biểu đồ theo thứ tự thời gian  Đọc biểu đồ từ đỉnh xuống đáy  Đọc biểu đồ bằng quan sát các đối tượng và thông điệp  Mỗi đối tượng có vòng đời (Lifeline)  Bắt đầu khi hình thành đối tượng, kết thúc khi phá hủy đối tượng  Thông điệp được vẽ giữa hai đối tượng – thể hiện đối tượng gọi hàm đối tượng khác  Thông điệp phản thân Phân tích thiết kế hướng đối tượng Bài - 15/34
  16. Xây dựng biểu đồ trình tự cho các đối tượng tham gia ca sử dụng)  Xem lại biểu đồ lớp tham gia của các ca sử dụng (ở bước trước) để  Tìm xem các cá thể nào thực sự tham gia vào kịch bản đang xét  Xem các đối tượng đóng vai trò gì trong bước đó  Dàn các đối tượng thành hàng ngang trên đỉnh biểu đồ. Bố trí đối tượng quan trọng ở giữa, phụ trợ phải, đối tác (nếu có) đặt bên trái  Vẽ đường đời cho các đối tượng  Xuất phát từ thông điệp khởi đầu, bố tría các thông điệp tiếp lần lượt từ trên xuố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 - 16/34
  17. Biểu đồ trình tự  Thí dụ: Gọi điện thoại Hệ thống điện thoại Người gọi Người nghe 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 Phân tích thiết kế hướng đối tượng Bài - 17/34
  18. 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 - 18/34
  19. 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 đồ Employees : Person  Ký pháp đồ họa đa hiện thực đối tượng trong biểu đồ cộng tác Phân tích thiết kế hướng đối tượng Bài - 19/34
  20. 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 - 20/34
  21. 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 - 21/34
  22. 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 - 22/34
  23. Xây dựng biểu đồ trình tự Client Supplier Client Supplier Client Supplier 1: Simple Message 1: Sychronous Message 1: Balking Message Client Supplier Client Supplier Client Supplier 1: Procedure Call 1: Asynchronous Message 1: Timeout Message 2: Return Message Client Supplier Các loại đồng bộ thông điệp 1: Procedure Call trong biểu đồ trình tự Phân tích thiết kế hướng đối tượng Bài - 23/34
  24. 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 Object4 1: Perform function Object3 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 - 24/34
  25. 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 - 25/34
  26. Ví dụ: chọn môn giảng/thêm lớp : Thay giao : W_Thay : W_LopGiang : QLLopThaytoan : MonHoc : LopGiang 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 - 26/34
  27. 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 5 - 27/38
  28. 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 28/34
  29. 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 4: ReserveSite 5: GenerateConfirmationCode 3: CheckCredit Credit 2: CheckCredit 1: SubmitCreditInfo Form Credit : Credit System Processor : Customer 8: Confirm 9: Display 7: DisplayConfirmation 6: DisplayConfirmation Confirmation Form Invalid Credit Form Phân tích thiết kế hướng đối tượng Bài - 29/34
  30. 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 1: Perform function Data flow Object1 Object2 Phân tích thiết kế hướng đối tượng Bài - 30/34
  31. 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 1: Perform function Data flow Object1 Object2 Phân tích thiết kế hướng đối tượng Bài - 31/34
  32. 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 - 32/34
  33. 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 - 33/34
  34. 2: KiemTraMK 1: dangNhap(mk) 4: chonHK 5: ycChonViec : W_Thay 6: chonThem 3: yc/ChonHK 7: hienThi() : Thay giao 8: chonMon(toan) 16: chonLopGiang() 15: hienThi() : W_LopGiang 9: layLopGiang() 14: ketQua 17: nhanLopGiang() : QLLopThay 13: ketQua 10: layLopGiang() 18: themThay() toan : MonHoc 11: layLopGiang() 19: themThay() 12: ketQua Phân tích thiết kế hướng đối tượng Bài - 34/34 : LopGiang
  35. 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 - 35/34
  36. 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 - 36/34
  37. 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 - 37/34
  38. 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 - 38/34
  39. Biểu đồ tuần tự (sequence diagram) Rút tiền Phân tích thiết kế hướng đối tượng Bài - 39/34